Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel #12

Open
wants to merge 300 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
45ba043
Updated wording.
Sep 18, 2015
9659b78
Updated wording.
Sep 18, 2015
a2c4890
Updated RHEL 7 netCDF4 installation instructions.
Sep 18, 2015
a3b1327
Updated RHEL 7 netCDF4 installation instructions.
Sep 18, 2015
c58a564
Updated dataset manager
Sep 25, 2015
1cd72ca
Updated dataset manager
Sep 25, 2015
f1b4f53
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Sep 25, 2015
c52f909
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Sep 25, 2015
ea1715f
Updated scripts for CKAN 2.5
Sep 29, 2015
4cbfa99
Updated scripts for CKAN 2.5
Sep 29, 2015
6a50f5a
Updated dataset maanger
Sep 30, 2015
3217c1e
Updated dataset maanger
Sep 30, 2015
33cab41
Modified code to upload geoserver floodmap files as layer groups
Oct 6, 2015
0430913
Modified code to upload geoserver floodmap files as layer groups
Oct 6, 2015
c897501
Updated AutoRoute
Oct 6, 2015
73fedd5
Updated AutoRoute
Oct 6, 2015
1ff8446
Modified directory delete method
Oct 6, 2015
0f633d6
Updated dataset manager
Oct 6, 2015
11633e9
Updated dataset manager
Oct 6, 2015
1f66408
remove old file
Oct 9, 2015
04aab5d
remove old file
Oct 9, 2015
4636d3f
merge
Oct 9, 2015
07f57ab
merge
Oct 9, 2015
279b43d
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Oct 9, 2015
c5b4ff2
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Oct 9, 2015
ce70f53
added ftp function
Oct 9, 2015
4887eec
added ftp function
Oct 9, 2015
8c01ee8
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Oct 9, 2015
3850e43
Fixed bug
Oct 9, 2015
00783be
Updated dataset manager
Oct 9, 2015
5a2246e
Updated indents for loops
Oct 9, 2015
8647d2e
Made it so that your passwords and usernames in file not uploaded to …
Oct 13, 2015
849f4d5
Syntax bug fix
Oct 14, 2015
b54176e
Updated prereq installation instructions
Oct 14, 2015
0d81f90
Updated redhat dependencies
Oct 14, 2015
da4e962
Added waiting for request to complete due to connection timeouts
Oct 19, 2015
5d1a02c
Added error catching for AutoRAPID process GeoServer Upload
Oct 19, 2015
ae6aae4
Updated dataset manager
Oct 19, 2015
1faa75b
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Oct 19, 2015
e6f4528
Improved download method to include multiple attempts until wait time…
Oct 19, 2015
3c327d8
Updated RAPID installation steps
Oct 27, 2015
44fda32
Added RedHat instructions for HTCondor
Oct 30, 2015
0f2219c
updated error exception for geoserver
Oct 30, 2015
979ad7a
updated cron to work with RedHat
Oct 30, 2015
8d97f7f
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Oct 30, 2015
f4eb0bb
FIxed geoserver import method
Nov 10, 2015
7d245e6
Added method to run ECMWF low res at full resolution
Nov 10, 2015
e22bbd3
Modified code to run ecmwf low res at full temporal resolution
Nov 10, 2015
21afe81
Added old code for reference and fixed max wait time
Nov 10, 2015
24afea1
Improved datetime search in forecast name to remove characters
Nov 10, 2015
aeb9eaf
Modified query to search for full resolution forecasts
Nov 10, 2015
7dadd4e
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Nov 10, 2015
0ca995b
Updated ZS_dtM
Nov 10, 2015
753261c
Updated to work with full resolution of the data
Nov 10, 2015
0e91b2b
Remove reduntant operation for extracting high res data
Nov 10, 2015
6ef5528
Bug fix for name of variable
Nov 10, 2015
bae535b
Updated AutoRoutePy version
Nov 10, 2015
30ec48c
Updated function name to new verison
Nov 10, 2015
cb56ad6
Updated version of AutoRoutePy
Nov 10, 2015
4b2807d
Added sorting and filtering
Nov 10, 2015
1f725a9
Updated code to work with AutoRoute-py multiprocess mode
Nov 12, 2015
b235acd
Remove submodule AutoRoute-py
Nov 12, 2015
b9cf631
Updated README to reflect installation of AutoRoute-py
Nov 12, 2015
e6076b9
Fixed name
Nov 12, 2015
172562b
Modified code to look for return period file
Nov 16, 2015
c75574f
Updated dataset manager to new version
Dec 17, 2015
a96defb
Updated script for backwards compatibility, bug fixes
Dec 17, 2015
1702c18
Made comid_lat_lon_z file optional.
Dec 31, 2015
7983ef2
Updated clean log script to skip unrecognized files.
Jan 4, 2016
42fbe7b
Updated AutoRoutePy name
Jan 19, 2016
bb8d3fc
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Jan 26, 2016
ebe21d9
updated river id to always be rivid. Set fill_value to zero
Feb 9, 2016
c2a2dc0
Remove negative values and noise from simulations
Feb 11, 2016
a20a03e
Modified code to use RAPIDDataset
Feb 11, 2016
daf751f
Added initial attempt at seasonal initialization method.
Feb 11, 2016
943565f
Removed debug comments
Feb 11, 2016
f4d1e06
Removed unnecessary weight table info loading.
Feb 16, 2016
2347d2a
Move seasonal init at beginning to use multiprocessing
Feb 19, 2016
0876f09
Modified to unzip gz files
Feb 19, 2016
73a35b2
Modified to use extractnested code
Feb 19, 2016
faf3645
Fixed folder name deriving method. Moved attempt for ftpclient in try…
Feb 22, 2016
f97a9c0
Added identification for new ECMWF grids and weight table name function
Feb 22, 2016
ee70aef
Modified method to search for weight table name.
Feb 22, 2016
77e0670
Added search for new forecast files
Feb 22, 2016
328167d
dataIdentify/getWeightTableName bug fixes
Feb 22, 2016
d651750
Added date_string option
Feb 26, 2016
fc00166
modified code to identify grid for unit conversions
Feb 26, 2016
d7007fb
Bug fix with new grid name function use
Feb 26, 2016
1d25fc3
Bug fix with weight table name search.
Feb 26, 2016
60e9740
Bug fix with weight table file search
Feb 26, 2016
27f51dd
Bug fix in intit script
Mar 7, 2016
1098024
fixed import statement helper_functions
Mar 7, 2016
26e917a
Reorganized streamfow assimilation functions
Mar 7, 2016
0cae8eb
new folder name bug fix
Mar 7, 2016
8bdd8c9
Bug fix getting ensemble number from qout
Mar 7, 2016
3db11c4
Bug fix
Mar 7, 2016
1fd2139
updated dataset manager
Mar 9, 2016
06c0339
Updated licensing.
Mar 9, 2016
6d43039
Changed to BSD-3 Clause
Mar 9, 2016
532684e
Added license badge
Mar 9, 2016
a4643a5
Removed unecessary print statements
Mar 9, 2016
ce7dbbf
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Mar 9, 2016
2b525b8
Added zenodo badge
Mar 10, 2016
3300f8a
Added option for using multiprocessing instead of htcondor
Mar 15, 2016
8010353
Fixed file name in comments
Mar 15, 2016
7b62dfb
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Mar 15, 2016
096f191
Updated readme for new multiprocess version. Modified htcondor instal…
Mar 15, 2016
30905b7
header fix
Mar 15, 2016
e934cbe
reorder
Mar 15, 2016
d404020
condor restart instructions
Mar 15, 2016
ea9d9db
Updated RAPIDpy imports
Mar 28, 2016
2a59dc1
Update ftp_ecmwf_download.py
Apr 5, 2016
cc64b6f
Update ftp_ecmwf_download.py
Apr 5, 2016
cefcdfe
Added RAPIDpy watershed generation info
Apr 6, 2016
5450bdc
updated dataset manager
Apr 7, 2016
b79e521
Modified warning point generation to give the time of peak.
Apr 7, 2016
6589403
Trim date for peak
Apr 7, 2016
e072205
Delete forecast file daily to save space
May 3, 2016
6d5a21c
Merge branch 'master' of https://github.com/CI-WATER/spt_ecmwf_autora…
May 3, 2016
899995e
Undo personal stuff for merge with alan's code
crae2244 May 3, 2016
a7c8e8f
Merge pull request #2 from CI-WATER/curtisdev
May 3, 2016
2f84a7c
modified for graduated thresholds
May 13, 2016
e252705
bug fix naming return period variables
May 16, 2016
d69c955
modified to reflect most recent autoroute version
Jun 2, 2016
7e24599
Merge branch 'master' of https://github.com/erdc-cm/spt_ecmwf_autorap…
Jun 2, 2016
13f425e
bug fix multiprocess get job output
Jun 22, 2016
c9522e7
added info for how it works
Jun 22, 2016
dd3d000
bug fix multiprocessing set job info outside of if statement
Jun 22, 2016
f6adcd7
modified path for qinit file
Jun 22, 2016
4435f31
changed COMID to rivid
Jun 22, 2016
c6fa8bc
Added JAWRA publication
Jun 29, 2016
fa0bccc
bug fix as first Qinit file is in RAPID input directory
Jul 26, 2016
8228fd4
updated dataset manager
Aug 29, 2016
4d46be1
reorganize repo, make python write logfile
Aug 29, 2016
632b586
modified print functions for python 2/3
Aug 29, 2016
739d7d6
modified print to be python 2/3 compatible
Aug 29, 2016
3559244
fixed imports to be compatible with python 2/3
Aug 29, 2016
2026748
updated README with table for function and examples of use
Aug 29, 2016
7f08cce
fixed table
Aug 29, 2016
d20f6a3
updated spacing
Aug 29, 2016
48e6d40
minor update
Aug 29, 2016
7412c78
minor fixes
Aug 29, 2016
133bb8c
header changes
Aug 29, 2016
fef5530
added tethys_dataset_services to dependencies
Aug 29, 2016
fa29754
added seasonal initialization from seasonal average file
Aug 29, 2016
c171483
fixed import netCDF4
Aug 29, 2016
e165ea8
modified run mode to be hourly with lock file
Aug 29, 2016
c496644
modified method for lock based on last forecast date
Aug 30, 2016
d0eda95
updated cron instructions
Aug 30, 2016
912fe08
made AutoRoute install optional
Aug 30, 2016
a65bec4
minor modification for directory name example
Aug 30, 2016
78b468a
added full path to folder when downloading
Aug 30, 2016
28a9746
added comment about commented testing code
Aug 30, 2016
b61d45f
updated path for forecasts to download folder
Aug 30, 2016
68c4f08
added lock release if no forecasts found
Aug 30, 2016
bdb90da
modified job name
Aug 31, 2016
4b36ae5
added traceback to print exception
Aug 31, 2016
2f2bc86
moved new version to default for forecast file search
Aug 31, 2016
1e23bf2
Update README.md
Sep 7, 2016
367b9a7
added rivid attribute to warning point output
Sep 16, 2016
82dd39d
converted rivid to int before json dumps
Sep 20, 2016
fbe6bac
modified code to reset lock info file & instructions
Nov 3, 2016
82c06e1
updated docs
Nov 3, 2016
18357bb
added lock reset function to init import
Nov 3, 2016
ff994af
updated instructions for file name
Nov 3, 2016
4949b3e
modified code to work with spt_dataset_manager as package
Dec 7, 2016
0eb758a
Added option to not delete past forecasts
Dec 19, 2016
e4c952f
bug fix if statement
Dec 19, 2016
4501561
added conda env yml file for creating environment in conda
Mar 30, 2017
1a359a8
updated headers
Mar 30, 2017
ef145a7
made spt_dataset_manager optional
Apr 27, 2017
0ff4495
Fixed geojson format output and typo errors in mean_peak and mean_plu…
roverallover Apr 27, 2017
6697876
Merge pull request #6 from roverallover/geojson2
Apr 27, 2017
f6f69b9
added ignore for pycharm .idea
Jun 14, 2017
b90ac0e
moved rapid_process.py to ecmwf_rapid_process.py
Jun 14, 2017
946cb5c
renamed spt_ecmwf_autorapid_process to spt_process
Jun 14, 2017
0f85e6c
rename to spt_compute; move process lock to separate file
Jun 14, 2017
c07dfa8
fixed comment to be spt_compute
Jun 14, 2017
5210474
initial design for SPT WRF process
Jun 14, 2017
26de765
renamed to spt_compute; renamed to ecmwf_forecast_process; added lsm_…
Jun 16, 2017
e3b727b
fixed print statements for py3
Jun 16, 2017
d41dfc0
removed unused functions; fix for clean logs
Jun 16, 2017
cf18670
added start of function to generate streamflow init
Jun 16, 2017
2c1093e
fixed import for determine_start_end_timestep; added new init function
Jun 16, 2017
56ae5c6
remve m3 file generated
Jun 16, 2017
d7f60d8
added tests for wrf forecast
Jun 16, 2017
4ffc087
removed commented out cleanup method
Jun 16, 2017
33f6b15
added comparison of Qout file using xarray
Jun 16, 2017
d9718e8
fix getting date by sorting input list of wrf grids; update Qout file…
Jun 16, 2017
1ef2c18
added historical tests generating warning points; fix tests to cleanu…
Jun 20, 2017
277672a
added historical setup
Jun 20, 2017
b548753
removed duplicate test
Jun 20, 2017
9b11648
added seasonal input to tests
Jun 21, 2017
df71e8c
added time selection for qinit
Jun 21, 2017
c53e36d
modified tests to compare the warning json files produced
Jun 21, 2017
7c9fa20
modified to allow to run by region in collaboration with Mohit 3d274eb
Jun 24, 2017
e0f924b
fix lock file name
Jun 24, 2017
3258a96
python 3 fixes; improved debugging
Jun 24, 2017
fdeaf04
added traceback printing for exceptions
Jun 24, 2017
1e4587f
added Travis CI yml for testing
Jul 7, 2017
f486fe6
added badge for testing
Jul 7, 2017
2c49e28
added travis yml for testing
Jul 7, 2017
2b53c54
removed python pin
Jul 7, 2017
e06a443
added test requirments
Jul 7, 2017
edac3f8
added installation for gfortran; removed osx miniconda install
Jul 7, 2017
46c972e
added unicode literals for python2
Jul 7, 2017
defaa04
modified warnings to use unicode literals
Jul 7, 2017
f61f97b
Merge pull request #7 from erdc-cm/wrf
Jul 7, 2017
d3d9a6f
added basic ECMWF forecast test
Jul 11, 2017
92fe73f
relaxed decimal comparison from 7 to 5
Jul 11, 2017
02e2049
updated tests to 20161221 tag of RAPID
Jul 11, 2017
184a82f
Merge pull request #8 from erdc-cm/tests
Jul 11, 2017
2b78fd2
Update README.md
Jul 19, 2017
ba57893
Update README.md
Jul 19, 2017
83853d2
Update README.md
Jul 19, 2017
b86a321
Update README.md
Jul 19, 2017
dd918e8
modified to only generate geojson
Aug 11, 2017
3d190e8
Added test for generating ecmwf warnings
Aug 11, 2017
63118fa
updated paths to build links
Aug 11, 2017
727aeb0
Merge branch 'geojson'
Aug 11, 2017
b504647
formatting
Aug 11, 2017
2147ce5
updated tests for seasonal initialization for ecmwf
Aug 11, 2017
acd5f8b
compressed warning points geojson files
Aug 14, 2017
fb26a16
added pandas dependency
Aug 14, 2017
9954848
update warning points generation file formatting
Aug 14, 2017
c19307c
updated to format required packages array
Aug 14, 2017
f870144
use xarray to analyze data for generating warning points
Aug 14, 2017
10f48c1
use xarray instead of RAPIDDataset
Aug 14, 2017
dca1fb4
added ignore for pylint
Aug 14, 2017
d412f7c
added option for return period threshold to generate warting; updated…
Aug 14, 2017
afbac26
modified return period to have warnings in all bins
Aug 14, 2017
156287b
added parameter for warning flow threshold for LSM forecast
Aug 14, 2017
0b6e654
typo fix
Aug 14, 2017
dfed745
updated to import from spt_compute
Aug 29, 2017
d76dcaa
added qforcing file search
Aug 29, 2017
f1c5475
added forcing option for forecasts. However only supports constant flow
Aug 29, 2017
d8f0802
merged in HPC testing stuff
Aug 29, 2017
09b0a41
update helper functions
Aug 29, 2017
abc601c
update folder date
Aug 29, 2017
665c9d4
Merge pull request #9 from erdc-cm/hpc
Aug 29, 2017
08080a3
to 2.0.1
Aug 30, 2017
f1c5184
Fix travis badge path.
Sep 14, 2017
62a67b8
Update README.md
Sep 14, 2017
4517b44
Exposed RAPIDpy parallel fields to spt_compute under multiprocessing …
May 9, 2018
f33a75a
Added check to limit slots to the number of available models to preve…
May 9, 2018
f5a338d
Changed default from htcondor to multiprocess
May 9, 2018
51d4931
Added temporary code to allow benchmarking of the model runs with var…
May 9, 2018
080450c
Bug fixes for improved multiprocessing implementation
May 10, 2018
e8152e5
'all references to "erdc-cm" changed to "erdc"'
hamiltch Aug 11, 2022
d54bdf0
'all references to "erdc-cm" changed to "erdc"'
hamiltch Aug 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,10 @@ docs/_build/

# PyBuilder
target/

# pycharm
.idea/

#other
*~
run.py
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
[submodule "spt_dataset_manager"]
path = spt_dataset_manager
url = https://github.com/erdc-cm/spt_dataset_manager.git
[submodule "AutoRoutePy"]
path = AutoRoutePy
url = https://github.com/erdc-cm/AutoRoute-py
70 changes: 70 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#-------------------------------------------------------------------------------
# .travis.yml
# Author: Alan D. Snow, 2017
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#System specifications for Travis CI
#-------------------------------------------------------------------------------
language: c
os:
- linux
env:
- TRAVIS_PYTHON_VERSION="2.7"
- TRAVIS_PYTHON_VERSION="3.5"
- TRAVIS_PYTHON_VERSION="3.6"
notifications:
email: false

before_install:
#-----------------------------------------------------------------------------
# Install gcc, g++, gfortran
#-----------------------------------------------------------------------------
- sudo apt-get update -qq
- sudo apt-get install -y g++ gfortran
#-----------------------------------------------------------------------------
# Install minconda
#-----------------------------------------------------------------------------
- wget -O miniconda.sh http://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-Linux-x86_64.sh
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH=$HOME/miniconda/bin:$PATH
- conda config --set always_yes yes
- conda config --add channels conda-forge
- conda update conda python
#-----------------------------------------------------------------------------
# Create conda environment for spt_compute
#-----------------------------------------------------------------------------
- conda create -n spt_compute python=$TRAVIS_PYTHON_VERSION
- source activate spt_compute
- conda env update -n spt_compute -f conda_env.yml
- source deactivate
- source activate spt_compute
#-------------------------------------------------------------------------------
#Creating directory for installation of libraries used by RAPID & RAPIDpy
#-------------------------------------------------------------------------------
- export INSTALLZ_DIR=$TRAVIS_BUILD_DIR/installz
- mkdir $INSTALLZ_DIR
#-------------------------------------------------------------------------------
#Installing RAPID
#-------------------------------------------------------------------------------
- cd $TRAVIS_BUILD_DIR/..
- git clone https://github.com/c-h-david/rapid.git --branch 20161221
- cd rapid
- bash rapid_install_prereqs.sh -i=$INSTALLZ_DIR
- source rapid_specify_varpath.sh $INSTALLZ_DIR
- cd src
- make rapid
#-------------------------------------------------------------------------------
# Install spt_compute
#-------------------------------------------------------------------------------
install:
- cd $TRAVIS_BUILD_DIR
- pip install -e .[tests]
script:
- py.test --cov-report term-missing --cov=spt_compute
#- flake8 --ignore=F401 spt_compute setup.py tests
#- pylint spt_compute
#-------------------------------------------------------------------------------
# Coveralls stats for code coverage
#-------------------------------------------------------------------------------
after_success:
- coveralls
1 change: 0 additions & 1 deletion AutoRoutePy
Submodule AutoRoutePy deleted from 7e61fd
39 changes: 22 additions & 17 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
The MIT License (MIT)
Copyright (c) 2016, ERDC Computational Mechanics
All rights reserved.

Copyright (c) 2015 CI-WATER
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
* Neither the name of spt_ecmwf_autorapid_process nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Loading