diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index be11501be5..bc6574f54f 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -19,6 +19,29 @@ jobs: - uses: psf/black@stable with: version: "22.6.0" + + detect-changes: + name: Detect changed rulesets + runs-on: ubuntu-latest + outputs: + ashrae9012019: ${{ steps.filter.outputs.ashrae9012019 }} + ashrae9012022: ${{ steps.filter.outputs.ashrae9012022 }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Detect file changes + id: filter + uses: dorny/paths-filter@v3 + with: + filters: | + ashrae9012019: + - 'rct229/rulesets/ashrae9012019/**' + - 'rct229/ruletest_engine/ruletest_jsons/ashrae9012019/**' + ashrae9012022: + - 'rct229/rulesets/ashrae9012022/**' + - 'rct229/ruletest_engine/ruletest_jsons/ashrae9012022/**' + run-unit-tests: name: Run unit tests runs-on: 'ubuntu-latest' @@ -35,7 +58,52 @@ jobs: - name: Install venv run: poetry install - name: Run pytests - # This will halt the action if any of the tests fail run: poetry run pytest -v - - name: Run rule tests - run: poetry run rct229 test -rs ashrae9012019 \ No newline at end of file + + run-ruletests-2019: + name: Run 2019 rule tests + runs-on: ubuntu-latest + needs: detect-changes + if: needs.detect-changes.outputs.ashrae9012019 == 'true' + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install Poetry + run: | + curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 + + - name: Install dependencies + run: poetry install + + - name: Run rule tests for 90.1-2019 + run: poetry run rct229 test -rs ashrae9012019 + + run-ruletests-2022: + name: Run 2022 rule tests + runs-on: ubuntu-latest + needs: detect-changes + if: needs.detect-changes.outputs.ashrae9012022 == 'true' + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install Poetry + run: | + curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 + + - name: Install dependencies + run: poetry install + + - name: Run rule tests for 90.1-2022 + run: poetry run rct229 test -rs ashrae9012022 \ No newline at end of file diff --git a/DISCLAIMER.md b/DISCLAIMER.md index 51b83b61d8..b21cc3280d 100644 --- a/DISCLAIMER.md +++ b/DISCLAIMER.md @@ -1,16 +1,23 @@ -Disclaimer - -This material was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents that its use would not infringe privately owned rights. - -Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof. - -PACIFIC NORTHWEST NATIONAL LABORATORY -operated by - -BATTELLE - -for the - -UNITED STATES DEPARTMENT OF ENERGY - -under Contract DE-AC05-76RL0183 \ No newline at end of file +DISCLAIMER +This material was prepared as an account of work sponsored by an agency of the +United States Government. Neither the United States Government nor the United +States Department of Energy, nor Battelle, nor any of their employees, nor any +jurisdiction or organization that has cooperated in the development of these +materials, makes any warranty, express or implied, or assumes any legal +liability or responsibility for the accuracy, completeness, or usefulness or +any information, apparatus, product, software, or process disclosed, or +represents that its use would not infringe privately owned rights. + +Reference herein to any specific commercial product, process, or service by +trade name, trademark, manufacturer, or otherwise does not necessarily +constitute or imply its endorsement, recommendation, or favoring by the United +States Government or any agency thereof, or Battelle Memorial Institute. The +views and opinions of authors expressed herein do not necessarily state or +reflect those of the United States Government or any agency thereof. + + PACIFIC NORTHWEST NATIONAL LABORATORY + operated by + BATTELLE + for the + UNITED STATES DEPARTMENT OF ENERGY + under Contract DE-AC05-76RL01830 \ No newline at end of file diff --git a/LICENSE b/LICENSE index 5416e5204e..3a46cf16a7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,10 +1,23 @@ -Ruleset Checking Tool -Copyright © 2021, Battelle Memorial Institute -All rights reserved. - -1. Battelle Memorial Institute (hereinafter Battelle) hereby grants permission to any person or entity lawfully obtaining a copy of this software and associated documentation files (hereinafter “the Software”) to redistribute and use the Software in source and binary forms, with or without modification. Such person or entity may use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and may permit others 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 disclaimers. -• 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. -• Other than as used herein, neither the name Battelle Memorial Institute or Battelle may be used in any form whatsoever without the express written consent of Battelle. - -2. 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 BATTELLE 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. +LICENSE +Copyright Battelle Memorial Institute 2021 + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +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. \ No newline at end of file diff --git a/README.md b/README.md index 7e4f0fe8f8..4e24352a2b 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,16 @@ Ruleset Checking Tool for ANSI/ASHRAE/IES Standard 90.1-2019 Appendix G This package provides a reference implementation of a Ruleset Checking Tool (RCT) in support of ASHRAE Standard 229P. The RCT is not intended to be a normative part of the proposed standard, so use with Std 229P is optional. This RCT implementation is specific to ANSI/ASHRAE/IES Standard 90.1-2019 Appendix G and does not support any other rulesets. Final release of this package is dependent upon acceptance and publication of ASHRAE Standard 229P. ## Install it from PyPI - +By default, the package includes the ASHRAE 90.1-2019 PRM ruleset. ```bash pip install ruleset-checking-tool ``` +To install additional rulesets, you can install them as optional dependencies. For example, to install the ASHRAE 90.1-2022 ruleset, you can run: +```bash +pip install ruleset-checking-tool[ashrae9012022] +``` + ## Usage ```py @@ -113,17 +118,25 @@ The following provides some useful commands as you get started developing the RC This package is developed using Poetry to manage packages during the build process. First, follow the instruction from [poetry](https://python-poetry.org/docs/) to install the package. Any new dependencies that are added to the package must be included in the pyproject.toml. The package is currently being developed for Python 3.10. This version of Python must be installed on your machine for Poetry to work properly. -Now tests can be run by first installing dependencies and then running pytest. -1. `poetry install` -2. `poetry run pytest` - - To see a coverage report, use `poetry run pytest --cov` - - To have pytest watch for file changes, use `poetry run ptw` +By default, the RCT package includes the ASHRAE 90.1-2019 PRM ruleset. +`poetry install` + +To install additional rulesets, you can install them as optional dependencies. For example, to install the ASHRAE 90.1-2022 ruleset, you can run: +`poetry install --extras ashrae9012022` + +You can also install all available rulesets by running: +`poetry install --all-extras` + +Now tests can be run by first installing dependencies and then running pytest. +`poetry run pytest` +- To see a coverage report, use `poetry run pytest --cov` +- To have pytest watch for file changes, use `poetry run ptw` -You can also package with poetry to test the CLI tool. -2. `poetry run rct229 test` +You can also package with poetry to test the CLI tool. +`poetry run rct229 test` -Run with example ASHRAE 90.1 2019 RPDs. -1. `poetry run rct229 evaluate -rs ashrae9012019 -f examples\chicago_demo\baseline_model.json -f examples\chicago_demo\proposed_model.json -f examples\chicago_demo\user_model.json -r ASHRAE9012019_DETAIL` +Run with example ASHRAE 90.1 2019 RPDs. +`poetry run rct229 evaluate -rs ashrae9012019 -f examples\chicago_demo\baseline_model.json -f examples\chicago_demo\proposed_model.json -f examples\chicago_demo\user_model.json -r ASHRAE9012019_DETAIL` ### Developer Notes @@ -165,7 +178,7 @@ Before committing changes you should run the following commands from the `rulese 2. Add a new item to the `rules_dict` in the rulset's `rct229/rulesets//__init__.py` file with the unique rule ID and desired rule section and number. 3. Create the new rule module in the ruleset directory following the typical procedure, but using the unique rule ID as the rule's class name. ```python - class PRM9012019Rule86h31(RuleDefinitionBase): +class PRM9012019Rule86h31(RuleDefinitionBase): ``` - For renumbering a rule to remain in the same section: diff --git a/docs/_toc.md b/docs/_toc.md index fa7048c485..6d9096c4c7 100644 --- a/docs/_toc.md +++ b/docs/_toc.md @@ -1,7 +1,9 @@ # Rule Definition Development Strategy ### Introduction -The following documentation provides a technical description of ASHRAE 90.1-2019 Appendix G rules as defined in the ASHRAE 229P Test Case Descriptions (TCD) based on the construct of the Ruleset Checking Tool (RCT) Rule Definitions. This document serves as a bridge between the ASHRAE 229 TCDs, which are in the form of the ruleset, and the RCT Rule Definitions, which are in the form of Python classes. Each Rule Definition Development Strategy document seeks to describe a TCD Rule in pseudocode that can be understood by ASHRAE 90.1 professionals and Python developers alike. The documents are organized based on 90.1 section and TCD Rule. Front matter is included that describes any standard conventions, nomenclature or use of pseudocode functions. The purpose of this document is not to provide direct Python code, rather to convey the logic necessary to develop code that meets the intent of the 229 TCDs. +This documentation provides a technical description of ASHRAE Appendix G rules as defined in the ASHRAE 229P Test Case Descriptions (TCD). It serves as a bridge between the ruleset described by ASHRAE 229 TCDs and the Ruleset Checking Tool (RCT) Rule Definitions, which are presented as Python classes. The goal is to outline each rule in pseudocode that can be interpreted by professionals familiar with ASHRAE standards as well as Python developers. + +The documents are organized systematically to facilitate understanding and implementation, with a focus on translating building energy standards into actionable logic. Front matter is included to clarify conventions, nomenclature, and the usage of pseudocode functions. Rather than providing direct Python code, the documentation aims to convey the conceptual structure and logic necessary for rule development. ### Notes on Evaluating Rules Separately for Buildings Most rules documented in the RDS apply to data groups that are located within the *buildings* array. It is typical that an RMD will only include a single *building* object. In the case where multiple *building* objects exists in an RMD, each rule will be evaluated independently for each *building* object. The following is a list of sections that will be evaluated for each *building* object in the RMD per the previous description: @@ -9,10 +11,7 @@ Most rules documented in the RDS apply to data groups that are located within th - 6 - 12 - 16 - - 17 - -The *transformers* data group is handled differently, since the data group exists at the top level of the RMD schema. For any rules related to distribution transformers, the rule is evaluated only the *transformers* list and *buildings* are ignored in the rule evaluation. This is only applicable to the following section: -- 15 + - 17 These conventions are used in all RDS below, and the logic of evaluating rules for each *building* or *transformer* are not described in the individual RDS document. @@ -20,421 +19,5 @@ These conventions are used in all RDS below, and the logic of evaluating rules f * [Rule Template](_rule_template.md): Template file for creating a new Rule Definition Development Strategy document * [Functions](_functions.md): A list of functions used within the Rule Definition Development Strategy documents -## Ruleset Functions - -### General ruleset functions - * [get_lighting_status_type](ruleset_functions/get_lighting_status_type.md): This function would determine whether the space lighting status type is 1). not-yet designed or match Table 9_5_1, 2). as-designed or as-existing. - * [get_opaque_surface_type](ruleset_functions/get_opaque_surface_type.md): This function would determine whether it is a wall, ceiling or floor. - * [get_surface_conditioning_category](ruleset_functions/get_surface_conditioning_category.md): This function would cycle through each surface in a zone and categorize it as exterior res, exterior non res, exterior mixed, semi-exterior or unregulated. - * [get_wwr](ruleset_functions/get_wwr.md): This function would determine window wall ratio for a building segment. - * [get_zone_conditioning_category.md](ruleset_functions/get_zone_conditioning_category.md): Determine the Zone Conditioning Category for each zone. This function would cycle through each zone in an RMD and categorize it as ‘conditioned’, 'semi-heated’, 'unenclosed' or ‘unconditioned’. If ‘conditioned’ it will also categorize the space as ‘residential’ or ‘non-residential’. - * [normalize_interior_lighting_schedules](ruleset_functions/normalize_interior_lighting_schedules.md):This function would determine a normalized schedule for a data element in space. - * [compare_schedules](ruleset_functions/compare_schedules.md): This function would compare two schedules and determine if they match with or without a comparison factor when applicable. - * [get_fuels_modeled_in_RMD](ruleset_functions/get_fuels_modeled_in_RMD.md): Get a list of the fuels used in the RMD. Includes fuels used by HVAC systems including terminal units, chillers, boilers, ExternalFluidSources, and SWHs. - * [get_primary_secondary_loops_dict](ruleset_functions/get_primary_secondary_loops_dict.md): Get the list of primary and secondary loops for CHW for a B-RMD. - * [get_hvac_systems_5_6_serving_multiple_floors_b](ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md): Get a dictionary of the system 5, 5a, 5b, 6, 6a, 6b hvac system IDs that are modeled as serving more than one floor in the baseline design model. The dictionary consists of the hvac system ids as the key and the number of floors served as the value associated with the key. - * [get_HVAC_systems_primarily_serving_comp_rooms](ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md): Returns a list of HVAC systems in which greater than 50% of the area served by the HVAC system is computer room space. - * [get_dict_of_zones_and_terminal_units_served_by_hvac_sys](ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md): Returns a dictionary of zones and terminal unit IDs associated with each HVAC system in the RMD. - * [get_baseline_system_type](ruleset_functions/get_baseline_system_types.md): Identify all the baseline system types modeled in a B-RMD. - * [get_hvac_zone_list_w_area](ruleset_functions/get_hvac_zone_list_w_area.md): Get the list of zones and their total floor area served by each HVAC system in a RMD. - * [check_purchased_chw_hhw_status_dict](ruleset_functions/check_purchased_chw_hhw_status_dict.md): Check if RMD is modeled with purchased chilled water as space cooling source or purchased hot water/steam as space heating source. If any system in RMD uses purchased chilled water, function shall return True for purchased chilled water as space cooling source. Similarly, if any system in RMD uses purchased hot water or steam, function shall return True for purchased hot water/steam as space heating source. - * [get_proposed_hvac_modeled_with_virtual_heating](ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md): Get the list of HeatingVentilationAirAconditioningSystem in which Appendix G Table G3.1 #10 c is applicable (i.e. space heating is modeled in the P_RMR but not the U_RMR). Table G3.1 #10 c states that "where no heating system exists or no heating system has been submitted with design documents, the system type shall be the same system as modeled in the baseline building design and shall comply with but not exceed the requirements of Section 6." - * [get_fan_object_electric_power](ruleset_functions/get_fan_object_electric_power.md): Get the fan power associated with a fan object. - * [get_heat_rejection_loops_connected_to_baseline_systems](ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md): Get a list of all heat rejection loops in an RMD that are connected to a baseline HVAC System (Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11.1b, 12b) - * [get_fan_system_object_supply_return_exhaust_relief_total_kW_CFM](ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_kW_CFM.md): Get the supply, return, exhaust, and relief total fan power, CFM, quantity, and information about whether the pressure drop is consistent across the fans if more than one for a fan system object. The function returns a dictionary that saves the supply, return, exhaust, and relief fan power as a list, saves the supply, return, exhaust, and relief cfm as a list, saves the supply, return, exhaust, and relief quantity as a list, and saves for each fan whether the pressure drop is undefined, identical, or different across fans (if only one it will return undefined or identical) but returns the quantity and information about the pressure drop across fans to help assess whether series or parallel. - * [are_all_hvac_sys_fan_objs_autosized](ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md): Returns true or false. The function returns true if all supply fan objects associated with an hvac system are autosized. - * [is_economizer_modeled_in_proposed](ruleset_functions/is_economizer_modeled_in_proposed.md): Returns true or false. The function returns true if at least one zone served by the baseline HVAC system sent to the function is served by an hvac system with an economizer in the proposed design. The function returns false otherwise. - * [get_most_used_weekday_hourly_schedule](ruleset_functions/get_most_used_weekday_hourly_schedule.md): Get the most used weekday hourly schedule from an annual 8760 schedule as list of hourly values for a 24 hour period. - * [get_aggregated_zone_hvac_fan_operating_schedule](ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md): This function loops through all of the HVAC system fan operating schedules associated with a specific zone and creates an aggregated fan operating schedule for the zone. More specifically, if any of the fan operating schedules associated with any of the hvac systems serving the zone have a 1 for a particular hour of the year then the aggregated schedule will equal 1 for that particular hour of the year. The function will check this for each hour of the year and return an 8760 aggregated fan operating schedule. - * [get_zone_supply_return_exhaust_relief_terminal_fan_power_dict](ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md): Get the supply, return, exhaust, relief, and terminal total fan power for each zone. The function returns a dictionary that saves each zone's supply, return, exhaust, relief and terminal unit fan power as a list {zone.id: [supply fan power kW, return fan power kW, exhaust fan power kW, relief fan power kW, terminal fan power]}. Values will be equal to zero where not defined for a fan system. Zonal exhaust and non-mechanical cooling is not included. - * [get_hvac_sys_and_assoc_zones_largest_exhaust_source](ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md): Returns a list with the sum of the hvac fan system exhaust fan cfm values, the maximum zone level exhaust source across the zones associated with the HVAC system, the number of exhaust fans associated with the hvac fan system, and the maximum cfm of all of the exhaust fans associated with the hvac system fan system [hvac_sys_exhaust_cfm_sum, maximum_zone_exhaust, num_hvac_exhaust_fans, maximum_hvac_exhaust]. This is for evaluating G3.1.2.10 exception 6 which states "Where the largest exhaust source is less than 75% of the design outdoor airflow. This exception shall only be used if exhaust air energy recovery is not used in the proposed design. " - * [get_zone_target_baseline_system](ruleset_functions/get_zone_target_baseline_system.md): Following G3.1.1, determines the baseline system type for each zone in a building - * [get_lab_zone_hvac_systems](ruleset_functions/get_lab_zone_hvac_systems.md): returns a list of HVAC systems serving only lab zones. - * [get_SWH_bats_and_SWH_use](ruleset_functions/get_SWH_bats_and_SWH_use.md): This function gets all the SWH Uses and the SWH space types and sorts them into a dictionary where the keys are the ServiceWaterHeatingBuildingAreaOptions2019ASHRAE901 and values are a list if ServiceWaterHeatingUse.ids - * [get_SWH_uses_associated_with_each_building_segment](ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md): This function gets all the SWH uses connected to a building segment. This function is primarily to encapsulate getting service water heating uses in one function so that if a change is made in the schema as to how service water heating use is specified, the RCT only needs to change in one place. - * [get_building_segment_SWH_bat](ruleset_functions/get_building_segment_SWH_bat.md): This function determines the SWH BAT for the given building segment. - * [get_SWH_components_associated_with_each_SWH_bat](ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md): This function gets all the SWH equipment connected to a particular SWH use type. The information is stored in a dictionary where the keys are the ServiceWaterHeatingSpaceOptions2019ASHRAE901 and values are a dictionary giving the ServiceWaterHeatingDistributionSystem, ServiceWaterHeatingEquipment, and Pumps connected to the particular use type. There is also an entry for the total energy required to heat all SWH uses for a year: "EnergyRequired" - * [get_SWH_components_associated_with_each_swh_distribution_system](ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md): This function gets all the SWH equipment connected to a SWH distribution system. The information is stored in a dictionary where the keys are the SWH Distribution System Ids and values are a dictionary giving the ServiceWaterHeatingEquipment, and Pumps connected to the particular SWH distribution system. - * [get_swh_equipment_type](ruleset_functions/get_swh_equipment_type.md): This function determines whether the swh equipment type is one of: (ELECTRIC_RESISTANCE_INSTANTANEOUS, ELECTRIC_RESISTANCE_STORAGE, GAS_STORAGE, OTHER) - * [get_energy_required_to_heat_swh_use](ruleset_functions/get_energy_required_to_heat_swh_use.md): This function calculates the total energy required to heat the SWH use over the course of a year in btu. Note - this function does not work for service water heating uses with use_units == "OTHER". In this case, it will return 0. - * [get_spaces_served_by_SWH_use](ruleset_functions/get_spaces_served_by_SWH_use.md): This function determines the spaces served by a given SWH use. The convention is that if any spaces reference the swh_use, then the service water heating use applies to only those spaces. If no spaces reference the service water heating use, it applies to all spaces in the building segment. - -### G3.1.1 Exception Check Functions - * [does_zone_meet_G3_1_1c](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md): Determines whether a given zone meets the G3_1_1c exception "If the baseline HVAC system type is 5, 6, 7, 8 use separate single-zone systems conforming with the requirements of system 3 or system 4 (depending on building heating source) for any spaces that have occupancy or process loads or schedules that differ significantly from the rest of the building. Peak thermal loads that differ by 10 Btu/h·ft2 (2.930710 W/sf) or more from the average of other spaces served by the system, or schedules that differ by more than 40 equivalent full-load hours per week from other spaces served by the system, are considered to differ significantly. Examples where this exception may be applicable include but are not limited to natatoriums and continually occupied security areas. This exception does not apply to computer rooms." - * [does_zone_meet_G3_1_1d](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md): Determines whether a given zone meets the G3_1_1d exception "For laboratory spaces in a building having a total laboratory exhaust rate greater than 15,000 cfm, use a single system of type 5 or 7 serving only those spaces. - * [does_zone_meet_G3_1_1e](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md): Determines whether a given zone meets the G3_1_1e exception "Thermal zones designed with heating-only systems in the proposed design serving storage rooms, stairwells, vestibules, electrical/mechanical rooms, and restrooms not exhausting or transferring air from mechanically cooled thermal zones in the proposed design shall use system type 9 or 10 in the baseline building design. - * [does_zone_meet_G3_1_1f](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md): Determines whether a given zone meets the G3_1_1f exception "If the baseline HVAC system type is 9 or 10, use additional system types for all HVAC zones that are mechanically cooled in the proposed design." - this function is only called if the expected baseline system type has already been confirmed to be system type 9 or 10 - * [does_zone_meet_G3_1_1g](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md): Returns a boolean value indicating whether the zone meets G3_1_1g. - -### G3.1.1 HVAC sub-functions - * [is_CZ_0_to_3a](ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md): Determines whether the building is in climate zone 0 to 3a - used for Appendix G Table G3.1.1-3. - * [get_zone_HVAC_BAT](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md): Get a dictionary of the HVAC_BAT and areas for a given zone. - * [get_HVAC_building_area_types_and_zones](ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md): Get a dictionary of the zone_ids associated with each building area type associated with U_RMR, P_RMR, or B_RMR. Also returns the total floor area of each building area type and the source of the information (BUILDING_SEGMENT_HVAC_BAT, BUILDING_SEGMENT_LIGHTING or SPACE_LIGHTING) - * [expected_system_type_from_table_g3_1_1a](ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md): returns the expected system type based on the BAT, the number of floors of the building and the area of the BAT, and climate zone. - * [get_zones_on_same_floor](ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md): Provides a list of zones that are on the floor as the starting zone. - * [is_zone_mechanically_cooled](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md): Determines whether a zone is cooled. Checks for transfer air - * [get_zones_computer_rooms](ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md): Returns a dictionary with the zones that have at least one computer room space associated with them in the RMD as the keys. The values associated with each key are in a list form. The list associated with each key contains the computer room floor area as the first item in the list and the total zone floor area as the second item in the list. - * [get_zone_peak_internal_load_floor_area](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md): finds the peak coincident internal loads of a zone and returns the value in btu/h/ft2 - * [get_building_lab_zones](ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md): returns a list of all of the zones in the building that include a laboratory space - * [get_building_total_lab_exhaust_from_zone_exhaust_fans](ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md): determines the total exhaust air flow rate for zone exhaust fans in zones that have laboratory spaces. - * [is_space_a_computer_room](ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md): Returns true or false as to whether space is a computer room. The criteria is such that it is considered a computer room if the lighting space type definition equals COMPUTER_ROOM, or, if the space type is not defined, if the total misc W/sf exceeds 20 W/sf per the definition of a computer room in 90.1 Section 3. - * [get_zone_eflh](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md): provides the equivalent full load hours of the zone. Equivalent full load hours are defined as: any hour where the occupancy fraction is greater than 5% AND the HVAC system is in occupied mode. For this function, we are recognizing the HVAC system as being in occupied mode if ANY of the HVAC systems serving the zone are in occupied mode. - * [is_zone_likely_a_vestibule](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md): following the guidelines in ASHRAE that a vestibule is defined as a space with at least one exterior door and with a surface area of no more than the greater of 50ft2 or 2% of the total area of the floor. - * [get_predominant_hvac_building_area_type](ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md): returns a String `predominant_HVAC_building_area_type` which is one of the HVAC building area types - * [is_zone_likely_a_vestibule](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md): following the guidelines in ASHRAE that a vestibule is defined as a space with at least one exterior door and with a surface area of no more than the greater of 50ft2 or 2% of the total area of the floor. - * [get_computer_zones_peak_cooling_load](ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md): return peak load of computer zones in the building - * [get_number_of_floors](ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md): gets the number of floors in the building. Parking Garages are not counted. - -### HVAC type functions - * [is_baseline_system_1](ruleset_functions/baseline_systems/is_baseline_system_1.md): Get either Sys-1, Sys-1a, Sys-1b, Sys-1c, or Not_Sys_1 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 1 (PTAC), system 1a (system 1 with purchased CHW), system 1b (system 1 with purchased heating), system 1c (system 1 with purchased CHW and purchased HW). - * [is_baseline_system_1a](ruleset_functions/baseline_systems/is_baseline_system_1a.md): Returns true or false to whether the baseline system type is 1a (system 1 with purchased CHW and HW served by a boiler). - * [is_baseline_system_1c](ruleset_functions/baseline_systems/is_baseline_system_1c.md): Returns true or false to whether the baseline system type is 1c (system 1 with purchased CHW and purchased HW). - * [is_baseline_system_2](ruleset_functions/baseline_systems/is_baseline_system_2.md): Get either Sys-2 or Not_Sys_2 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 2 (PTHP). - * [is_baseline_system_3](ruleset_functions/baseline_systems/is_baseline_system_3.md): Get either Sys-3, Sys-3a, Sys-3b, Sys-3c, or Not_Sys_3 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 3 (PSZ), system 3a (system 3 with purchased CHW), system 3b (system 3 with purchased heating), system 3c (system 3 with purchased CHW and purchased HW). - * [is_baseline_system_4](ruleset_functions/baseline_systems/is_baseline_system_4.md): Get either Sys-4 or Not_Sys_4 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 4 (PSZ-HP). - * [is_baseline_system_5](ruleset_functions/baseline_systems/is_baseline_system_5.md): Get either Sys-5, Sys-5b, or Not_Sys_5 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 5 (Package VAV with Reheat) or system 5b (system 5 with purchased heating). - * [is_baseline_system_6](ruleset_functions/baseline_systems/is_baseline_system_6.md): Get either Sys-6, Sys-6b, or Not_Sys_6 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 6 (Package VAV with PFP Boxes) or system 6b (system 6 with purchased heating). - * [is_baseline_system_7](ruleset_functions/baseline_systems/is_baseline_system_7.md): Get either Sys-7, Sys-7a, Sys-7b, Sys-7c or Not_Sys_7 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 7 (VAV with Reheat), system 7a (system 7 with purchased CHW), system 7b (system 7 with purchased heating), pr system 7c (system 7 with purchased heating and purchased CHW). - * [is_baseline_system_8](ruleset_functions/baseline_systems/is_baseline_system_8.md): Get either Sys-8, Sys-8a, Sys-8b, Sys-8c, or Not_Sys_8 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 8 (VAV with Parallel Fan-Powered Boxes and Reheat), system 8a (system 8 with purchased CHW), system 8b (system 8 with purchased heating), or 8c (system 8 with purchased heating and purchased chilled water). - * [is_baseline_system_9](ruleset_functions/baseline_systems/is_baseline_system_9.md): Get either Sys-9, Sys-9b, or Not_Sys_9 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 9 (Heating and Ventilation) or system 9b (system 9 with purchased heating). - * [is_baseline_system_9b](ruleset_functions/baseline_systems/is_baseline_system_9b.md): Returns true or false to whether the baseline system type is 9b (system 9 with purchased HW). - * [is_baseline_system_10](ruleset_functions/baseline_systems/is_baseline_system_10.md): Get either Sys-10 or Not_Sys_10 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 10 (Heating and Ventilation with electric heating). - * [is_baseline_system_11.1](ruleset_functions/baseline_systems/is_baseline_system_11.1.md): Get either Sys-11.1, Sys-11.1a, Sys-11b, Sys-11c, or Not_Sys_11.1 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 11.1 (Single Zone VAV System with Electric Resistance Heating), system 11.1a (system 11.1 with purchased CHW), system 11b (system 11.1 with purchased heating), or system 11c (system 11.1 with purchased CHW and purchased heating). - * [is_baseline_system_11.2](ruleset_functions/baseline_systems/is_baseline_system_11.2.md): Get either Sys-11.2, Sys-11.2a or Not_Sys_11.2 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 11.2 (Single Zone VAV System with Hot Water Heating (Boiler)) or system 11.2a (system 11.2 with purchased CHW). - * [is_baseline_system_12](ruleset_functions/baseline_systems/is_baseline_system_12.md): Get either Sys-12, Sys-12a, Sys-12b, Sys-12c, or Not_Sys_12 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 12 (Single Zone Constant Volume System with CHW and HW), system 12a (system 12 with purchased CHW), system 12b (system 12 with purchased heating), system 12c (system 12 with purchased CHW and purchased HW). - * [is_baseline_system_13](ruleset_functions/baseline_systems/is_baseline_system_13.md): Get either Sys-13, Sys-13a, or Not_Sys_13 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 13 (Single Zone Constant Volume System with CHW and Electric Resistance) or system 13a (system 13 with purchased CHW). - -### HVAC sub functions - * [are_all_terminal_heat_sources_hot_water](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md): Returns TRUE if the heat source associated with all terminal units input to this function is HOT_WATER. It returns FALSE if any terminal unit has a heat source other than HOT_WATER. - * [is_hvac_sys_heating_type_elec_resistance](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md): Returns TRUE if the HVAC system heating system heating type is ELECTRIC_RESISTANCE. Returns FALSE if the HVAC system heating system has anything other than ELECTRIC_RESISTANCE. - * [is_hvac_sys_cooling_type_none](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md): Returns TRUE if the HVAC system cooling type is None or Null. Returns FALSE if the HVAC system has anything other than None or Null for the cooling type or if it has more than 1 or no cooling system. - * [do_all_terminals_have_one_fan](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md): Returns TRUE if the fan data element associated with all terminal units input to this function are equal to one (i.e., there is only one fan associated with the terminal unit). It returns FALSE if any terminal unit has a fan data element not equal to one (i.e., there is NOT only one fan associated with the terminal unit). - * [are_all_terminal_fan_configs_parallel](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md): Returns TRUE if the fan configuration associated with all terminal units input to this function are parallel. It returns FALSE if any terminal unit has a fan configuration other than parallel. - * [are_all_terminal_heat_sources_electric](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md): Returns TRUE if the heat source associated with all terminal units input to this function are electric. It returns FALSE if any terminal unit has a heat source other than electric. - * [is_hvac_sys_preheating_type_elec_resistance](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md): Returns TRUE if the HVAC system preheating system heating type is ELECTRIC_RESISTANCE. Returns FALSE if the HVAC system preheating system has anything other than ELECTRIC_RESISTANCE. - * [are_all_terminal_heating_loops_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md): Returns TRUE if the fluid loop associated with the heating_from_loop associated with each terminal unit is purchased heating. Returns FALSE if this is not the case. - * [is_hvac_sys_preheat_fluid_loop_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the preheat system associated with the HVAC system is attached to a boiler. Returns FALSE if this is not the case. - * [is_hvac_sys_preheat_fluid_loop_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md): Returns TRUE if the fluid loop associated with the preheating system associated with the HVAC system is attached to an external purchased heating loop. Returns FALSE if this is not the case. - * [is_hvac_sys_preheating_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md): Returns TRUE if the HVAC system preheating system heating type is fluid loop. Returns FALSE if the HVAC system preheating system has anything other than fluid loop. - * [are_all_terminal_cool_sources_chilled_water](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md): Returns TRUE if the cool source associated with all terminal units is CHILLED_WATER. It returns FALSE if any terminal unit has a cool source other than CHILLED_WATER. - * [are_all_terminal_types_VAV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md): Returns TRUE if all of the terminal unit types input to this function are variable air volume (VAV). It returns FALSE if any of the terminal units are of a type other than variable air volume (VAV). - * [is_hvac_sys_heating_type_furnace](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md): Returns TRUE if the HVAC system heating system heating type is furnace. Returns FALSE if the HVAC system heating system has anything other than furnace or if it has more than 1 heating system. - * [is_hvac_sys_fluid_loop_attached_to_chiller](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md): Returns TRUE if the fluid loop associated with the cooling system associated with the HVAC system is attached to a chiller. Returns FALSE if this is not the case. - * [is_hvac_sys_cooling_type_DX](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md): Returns TRUE if the HVAC system has DX cooling. Returns FALSE if the HVAC system has anything other than DX cooling or if it has more than 1 or no cooling system. - * [is_hvac_sys_fan_sys_CV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md): Returns TRUE if the HVAC system fan system is constant volume. Returns FALSE if the HVAC system fan system is anything other than constant volume. - * [is_hvac_sys_heating_type_heat_pump](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md): Returns TRUE if the HVAC system has heat pump as the heating system type. Returns FALSE if the HVAC system has anything other than heat pump as the heating system type or if it has more than 1 heating system. - * [is_hvac_sys_fluid_loop_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the heating system associated with the HVAC system is attached to a boiler. Returns FALSE if this is not the case. - * [does_hvac_system_serve_single_zone](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md): Returns TRUE if the HVAC system serves a single zone. Returns FALSE if the HVAC system serves multiple zones. - * [is_hvac_sys_heating_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md): Returns TRUE if the HVAC system heating system heating type is fluid loop. Returns FALSE if the HVAC system heating system has anything other than fluid loop or if it has more than 1 heating system. - * [is_hvac_sys_cooling_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md): Returns TRUE if the HVAC system has fluid_loop cooling. Returns FALSE if the HVAC system has anything other than fluid_loop cooling or if it has more than 1 cooling system. - * [are_all_terminal_cool_sources_none_or_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md): Returns TRUE if the cool source associated with all terminal units input to this function are None or Null. It returns FALSE if any terminal unit has a cool source other than None or Null. - * [are_all_terminal_heat_sources_none_or_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md): Returns TRUE if the heat source associated with all terminal units input to this function are None or Null. It returns FALSE if any terminal unit has a heat source other than None or Null. - * [are_all_terminal_supplies_ducted](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md): Returns TRUE if all of the terminal supplies are ducted (i.e., is_supply_ducted = TRUE) for the list of terminal units input to the function. It returns FALSE if any of the terminal supplies are not ducted (i.e., is_supply_ducted = FALSE). - * [are_all_terminal_types_CAV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md): Returns TRUE if all of the terminal unit types input to this function are constant air volume (CAV) or if this data element is undefined. It returns FALSE if any of the terminal units are of a type other than constant air volume (CAV). - * [are_all_terminal_fans_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md): Returns TRUE if the fan data element associated with all terminal units input to this function are equal to Null. It returns FALSE if any terminal unit has a fan data element not equal to Null. - * [does_each_zone_have_only_one_terminal](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md): Returns TRUE if each zone input to this function only has one terminal unit. It returns FALSE if any zone has more than one terminal unit. - * [is_hvac_sys_fluid_loop_purchased_CHW](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md): Returns TRUE if the fluid loop associated with the cooling system associated with the HVAC system is attached to an external purchased chilled water loop. Returns FALSE if this is not the case. - * [is_hvac_sys_fan_sys_VSD](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md): Returns TRUE if the HVAC system fan system is variable speed drive controlled. Returns FALSE if the HVAC system fan system is anything other than variable speed drive controlled. - * [are_all_terminal_heating_loops_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the heating_from_loop associated with each terminal unit is attached to a boiler. Returns FALSE if this is not the case. - * [is_hvac_system_multizone](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md): Returns TRUE if the HVAC system serves multiple zones. Returns FALSE if the HVAC system serves a single or no zones. - * [is_hvac_sys_fluid_loop_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md): Returns TRUE if the fluid loop associated with the heating system associated with the HVAC system is attached to an external purchased heating loop. Returns FALSE if this is not the case. - * [are_all_terminal_types_CAV_With_None_Equal_to_Null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md): Returns TRUE if all of the terminal unit types input to this function are constant air volume (CAV). It returns FALSE if any of the terminal units are of a type other than constant air volume (CAV). - * [get_dict_with_terminal_units_and_zones](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md): Returns a dictionary of zone IDs associated with each terminal unit in the RMD. - * [are_all_terminal_CHW_loops_purchased_cooling](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md): Returns TRUE if the fluid loop associated with the cooling_from_loop associated with each terminal unit is purchased CHW. Returns FALSE if this is not the case. - * [is_zone_mechanically_heated_and_not_cooled](ruleset_functions/is_zone_mechanically_heated_and_not_cooled.md): determines whether a zone is mechanically heated, but not cooled. Checks for transfer air. - -## Data Tables - * [8.4.4](data_tables/Table8-4-4.md): Minimum Nominal Efficiency Levels for Low-Voltage Dry-Type Distribution Transformers - * [G3.1.1-1](data_tables/Table3-1-1-1.md): Baseline Building Vertical Fenestration Percentage of Gross Above-Grade-Wall Area - * G3.1.1-2: Baseline Service Water-Heating System - * G3.1.1-3: Baseline HVAC System Types - * G3.1.1-4: Baseline System Descriptions - * G3.1.2.6: Climate Conditions under which Economizers are Included for Comfort Cooling for Baseline Systems 3 through 8 and 11, 12, 13 - * G3.1.2.9: Baseline Fan Brake Horsepower - * G3.1.3.7: Type and Number of Chillers - * G3.1.3.11: Heat-Rejection Leaving Water Temperature - * G3.1.3.15: Part-Load Performance for VAV Fan Systems - * G3.4-1: Performance Rating Method Building Envelope Requirements for Climate Zones 0 and 1 (A,B) - * G3.4-2: Performance Rating Method Building Envelope Requirements for Climate Zone 2 (A,B) - * G3.4-3: Performance Rating Method Building Envelope Requirements for Climate Zone 3 (A,B,C) - * G3.4-4: Performance Rating Method Building Envelope Requirements for Climate Zone 4 (A,B,C) - * G3.4-5: Performance Rating Method Building Envelope Requirements for Climate Zone 5 (A,B,C) - * G3.4-6: Performance Rating Method Building Envelope Requirements for Climate Zone 6 (A,B) - * G3.4-7: Performance Rating Method Building Envelope Requirements for Climate Zone 7 - * G3.4-8: Performance Rating Method Building Envelope Requirements for Climate Zone 8 - * G3.5.1: Performance Rating Method Air Conditioners (efficiency ratings excludeing supply fan power) - * G3.5.2: Performance Rating Method Electrically Operated Unitary and Applied Heat Pumps -- Minimum Efficiency Requirements (efficiency ratings excluding supply fan power) - * G3.5.3: Performance Rating Method Water Chilling Packages -- Minimum Efficiency Requirements - * G3.5.4: Performance Rating Method Electrically Operated Packaged Terminal Air Conditioners, Packaged Terminal Heat Pumps (efficiency ratings excluding supply fan power) - * G3.5.5: Performance Rating Method Warm-Air Furnaces and Unit Heaters - * G3.5.6: Performance Rating Method Gas-Fired Boilers -- Minimum Efficiency Requirements - * G3.6: Performance Rating Method Lighting Power Densities for Building Exteriors - * G3.7: Performance Rating Method Lighting Power Density Allowances and Occupancy Sensor Reductions Using the Space-by-Space Method - * G3.8: Performance Rating Method Lighting Power Densities Using the Building Area Method - * G3.9.1: Performance Rating Method Motor Efficiency Requirements - * G3.9.2: Performance Rating Method Baseline Elevator Motor - * G3.9.3: Performance Rating Method Hydraulic Elevator Motor Efficiency - * G3.10.1: Performance Rating Method Commercial Refrigerators and Freezers - * G3.10.2: Performance Rating Method Commercial Refrigeration - -## Section 0 - General Requirements - -## Section 1 - General - *[1-1](section1/Rule1-1.md): Building performance factors shall be from Standard 90.1-2019, Table 4.2.1.1, based on the building area type and climate zone. For building area types not listed in Table 4.2.1.1 “All others.” shall be used to determine the BPF. - *[1-2](section1/Rule1-2.md): The performance of the proposed design is calculated in accordance with Standard 90.1-2019 Appendix G, where Performance Cost Index = Proposed building performance (PBP) /Baseline building performance (BBP), where both the PBP and the BBP include all end-use load components associated with the building when calculating the Performance Cost Index (PCI). - *[1-3](section1/Rule1-3.md): The Performance Cost Index-Target (PCIt) shall be calculated using the procedures defined in Section 4.2.1.1. The PCIt shall be equal to [baseline building unregulated energy cost (BBUEC) + BPF x baseline building regulated energy cost (BBREC)]/ BBP - *[1-4](section1/Rule1-4.md): The PCI shall be less than or equal to the PCIt when calculated in accordance with Standard 90.1 2019, Section 4.2.1.1. - *[1-5](section1/Rule1-5.md): When on-site renewable energy generation exceeds the thresholds defined in Section 4.2.1.1, the methodology defined in this section shall be used to calculate the PCIt. - *[1-6](section1/Rule1-6.md): On-site renewable energy shall not be included in the baseline building performance. - -## Section 3 - Space Use Classification - -## Section 4 - Schedules - * [4-1](section4/4-1.md): Temperature Control Setpoints shall be the same for proposed design and baseline building design. - * [4-2](section4/4-2.md): Humidity Control Setpoints shall be the same for proposed design and baseline building design. - * [4-3](section4/4-3.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied. - * [4-4](section4/4-4.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d, heating and/or cooling system fans shall simulated to be cycled ON and OFF to meet heating and cooling loads during occupied hours. - * [4-5](section4/4-5.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours. - * [4-6](section4/4-6.md): HVAC fans in the proposed design model shall remain on during unoccupied hours in systems primarily serving computer rooms. - * [4-8](section4/4-8.md): Schedules may be allowed to differ between proposed design and baseline building design when necessary to model nonstandard efficiency measures, such as automatic natural ventilation controls, automatic demand control ventilation controls. In no case shall schedules differ where the controls are manual. - * [4-10](section4/4-10.md): Schedules for HVAC fans that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules for the proposed building exceptions #s 2 and 3. - * [4-11](section4/4-11.md): Fan schedules shall be modeled identically in the baseline and proposed unless Table G3.1 Section 4 baseline exceptions are applicable. Fan Schedules may be allowed to differ when Section 4 Baseline Column Exceptions #1, #2 Or #3 are applicable. - * [4-12](section4/4-12.md): For Systems 6 and 8, only the terminal-unit fan and reheat coil shall be energized to meet heating set point during unoccupied hours. - * [4-15](section4/4-15.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the B_RMD. - * [4-16](section4/4-16.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in this table, heating and/or cooling system fans shall not be simulated as running continuously during occupied hours but shall be cycled ON and OFF to meet heating and cooling loads during all hours in the B_RMD. - * [4-17](section4/4-17.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the B_RMD. - * [4-18](section4/4-18.md): HVAC fans in the baseline design model shall remain on during unoccupied hours in systems primarily serving computer rooms in the B_RMD. - * [4-19](section4/4-19.md): Schedules for HVAC fans in the baseline design model that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules per the proposed column exceptions #s 2 and 3. - -## Section 5 - Building Envelope - * [5-1](section5/Rule5-1.md): There are four baseline rotations (i.e., four baseline models differing in azimuth by 90 degrees and four sets of baseline model results) if vertical fenestration area per each orientation differ by more than 5%. - * [5-2](section5/Rule5-2.md): Baseline building must be modeled so that it doesn't shade itself - * [5-3](section5/Rule5-3.md): Baseline roof assemblies must conform with assemblies detailed in Appendix A ( Above-grade walls—Steel-framed A2.2) - * [5-4](section5/Rule5-4.md): Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8. - * [5-5](section5/Rule5-5.md): Baseline below-grade walls shall conform with assemblies detailed in Appendix A Concrete block, A4) - * [5-6](section5/Rule5-6.md): Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8 - * [5-7](section5/Rule5-7.md): Baseline above-grade wall assemblies must conform with assemblies detailed in Appendix A (Steel-framed A3.3) - * [5-8](section5/Rule5-8.md): Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8 - * [5-9](section5/Rule5-9.md): Baseline floor assemblies must conform with assemblies detailed in Appendix A (Floors—Steel-joist (A5.3)) - * [5-10](section5/Rule5-10.md): Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9 - * [5-11](section5/Rule5-11.md): Baseline slab-on-grade assemblies must conform with assemblies detailed in Appendix A ( Slab-on-grade floors shall match the F-factor for unheated slabs from the same tables (A6).) - * [5-12](section5/Rule5-12.md): Baseline slab-on-grade floor assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9 - * [5-13](section5/Rule5-13.md): Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same in the baseline as in the proposed design. - * [5-14](section5/Rule5-14.md): For building area types included in Table G3.1.1-1, vertical fenestration areas for new buildings and additions shall equal that in Table G3.1.1-1 based on the area of gross above-grade walls that separate conditioned spaces and semi-heated spaces from the exterior - * [5-15](section5/Rule5-15.md): For building areas not shown in Table G3.1.1-1, vertical fenestration areas for new buildings and additions shall equal that in the proposed design or 40% of gross above-grade wall area, whichever is smaller. - * [5-16](section5/Rule5-16.md): The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design. - * [5-17](section5/Rule5-17.md): The baseline fenestration area for an existing building shall equal the existing fenestration area prior to the proposed work. - * [5-18](section5/Rule5-18.md): Automatically controlled dynamic glazing may be modeled. Manually controlled dynamic glazing shall use the average of the minimum and maximum SHGC and VT. - * [5-19](section5/Rule5-19.md): Vertical fenestration U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMD. - * [5-20](section5/Rule5-20.md): Fenestration (window and skylight) SHGC in the proposed model must match the user model. - * [5-21](section5/Rule5-21.md): Subsurface that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design. - * [5-22](section5/Rule5-22.md): Baseline fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled. - * [5-23](section5/Rule5-23.md): Manual fenestration shading devices, such as blinds or shades, shall be modeled or not modeled the same as in the baseline building design. - * [5-24](section5/Rule5-24.md): If skylight area in the proposed design is 3% or less of the roof surface, the skylight area in baseline shall be equal to that in the proposed design. - * [5-25](section5/Rule5-25.md): If the skylight area of the proposed design is greater than 3%, baseline skylight area shall be decreased by an identical percentage in all roof components in which skylights are located to reach 3%. - * [5-26](section5/Rule5-26.md): Skylight area must be allocated to surfaces in the same proportion in the baseline as in the proposed design; Skylight orientation and tilt shall be the same as in the proposed design. - * [5-27](section5/Rule5-27.md): Skylight U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8. - * [5-28](section5/Rule5-28.md): Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage. - * [5-29](section5/Rule5-29.md): The baseline roof surfaces shall be modeled using a thermal emittance of 0.9. - * [5-30](section5/Rule5-30.md): The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model. - * [5-31](section5/Rule5-31.md): The baseline roof surfaces shall be modeled using a solar reflectance of 0.30. - * [5-32](section5/Rule5-32.md): The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model. - * [5-33](section5/Rule5-33.md): The infiltration modeling method in the baseline includes adjustment for weather and building operation. - * [5-34](section5/Rule5-34.md): The infiltration shall be modeled using the same methodology and adjustments for weather and building operation in both the proposed design and the baseline building design. - * [5-35](section5/Rule5-35.md): The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4. - * [5-36](section5/Rule5-36.md): The air leakage rate in unconditioned and unenclosed spaces must be the same the baseline and proposed design. - * [5-37](section5/Rule5-37.md): The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4. Exceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured. - * [5-38](section5/Rule5-38.md): It is acceptable to use either an annual average ground temperature or monthly average ground temperatures for calculation of heat loss through basement floors. - * [5-39](section5/Rule5-39.md): U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category. - * [5-40](section5/Rule5-40.md): Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be modeled with the same thermal emittance and solar reflectance in the baseline as in the proposed design. - -## Section 6 - Lighting - * [6-1](section6/Rule6-1.md): Proposed building interior lighting power shall not exceel total interior lighting power allowance determined using either G3.7 or G3.8 - * [6-2](section6/Rule6-2.md): Spaces in proposed building with hardwired lighting, including Hotel/Motel Guest Rooms, Dormitory Living Quarters interior lighting power >= Table 9.6.1. and Interior lighting power for 'Dwelling Units' space type in the proposed building shall be >= 0.60 W/ft2. - * [6-3](section6/Rule6-3.md): Where a complete lighting system exists, the actual lighting power for each thermal block shall be used in the model. - * [6-4](section6/Rule6-4.md): Where a complete lighting system exists and where a lighting system has been designed and submitted with design documents, the baseline LPD is equal to expected value in Table G3.7. - * [6-5](section6/Rule6-5.md): Baseline building is modeled with automatic shutoff controls in buildings >5000 ft2 - * [6-6](section6/Rule6-6.md): Baseline building is not modeled with daylighting control - * [6-7](section6/Rule6-7.md): Proposed building is modeled with daylighting controls - * [6-8](section6/Rule6-8.md): Proposed building is modeled with additional occupancy sensor controls using occupancy sensor schedule reduction factors specified in Table G3.7. - * [6-9](section6/Rule6-9.md): Proposed building is modeled with other programmable lighting controls through a 10% schedule reduction in buildings less than 5,000sq.ft. - -## Section 10 - Airside systems - * [10-1](section10/10-1.md): When the proposed design includes humidification and complies with Section 6.5.2.4, then the baseline building design shall use nonadiabatic humidification. When the proposed design includes humidification and does not comply with Section 6.5.2.4 then the baseline building design shall use adiabatic humidification. - * [10-3](section10/10-3.md): For systems serving computer rooms, the baseline building design shall not have reheat for the purpose of dehumidification. - * [10-4](section10/10-4.md): Baseline HVAC systems using fossil fuel shall be modeled using natural gas. Except where natural gas is not available for the proposed building site, propane shall be used as the heating fuel. - * [10-6](section10/10-6.md): For HVAC systems designed, mechanical cooling equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. - * [10-7](section10/10-7.md): Baseline shall be modeled with the COPnfcooling HVAC system efficiency per Tables G3.5.1-G3.5.6. Where multiple HVAC zones or residential spaces are combined into a single thermal block the cooling efficiencies (for baseline HVAC System Types 3 and 4) shall be based on the equipment capacity of the thermal block divided by the number of HVAC zones or residential spaces. - * [10-9](section10/10-9.md): Where multiple HVAC zones or residential spaces are combined into a single thermal block, baseline HVAC System Types 5 or 6 efficiencies shall be based on the cooling equipment capacity of a single floor. - * [10-10](section10/10-10.md): Where no heating system exists or no heating system has been submitted with design documents, the proposed building system type shall be the same system as modeled in the baseline building design and shall comply with but not exceed the requirements of Section 6. - * [10-11](section10/10-11.md): Except for spaces with baseline system 9 or 10, if no cooling system exists or no cooling system has been submitted with design documents, the proposed building cooling system type shall be the same as modeled in the baseline building design and shall comply with the requirements of Section 6. - * [10-13A](section10/10-13A.md): For HVAC systems designed, mechanical heating equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. - * [10-13B](section10/10-13B.md): For proposed HVAC systems designed, mechanical preheating equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. - * [10-14](section10/10-14.md): Baseline shall be modeled with the heating HVAC system efficiency per Tables G3.5.1-G3.5.6 (applies only to the heating efficiency of baseline furnaces and heat pumps). Where multiple HVAC zones or residential spaces are combined into a single thermal block the heating efficiencies (for baseline HVAC System Types 3 and 4) shall be based on the equipment capacity of the thermal block divided by the number of HVAC zones or residential spaces. - * [10-15](section10/10-15.md): The proposed design includes humidification and the baseline building design has been modeled with humidification. - -## Section 11 - Service Hot Water System - * [11-1](section11/Rule11-1.md): Where a complete service water-heating system exists, the proposed design shall reflect the actual system type. Where a service water-heating system has been designed the service waterheating type shall be consistent with design documents. Where no service water-heating system exists or has been designed and submitted with design documents but the building will have service water-heating loads, a service water-heating system shall be modeled that matches the system type in the baseline building design. - * [11-6](section11/Rule11-6.md): Piping losses shall not be modeled. - * [11-7](section11/Rule11-7.md): Except in buildings that will have no service water heating loads, the service water heating system type in the baseline building design shall be as specified in Table G3.1.1-2 for each building area type in the proposed design. - * [11-8](section11/Rule11-8.md): One system per building area type shall be modeled in the baseline. - * [11-9](section11/Rule11-9.md): The baseline system must be sized according to Standard 90.1 2019, Section 7.4.1. - * [11-10](section11/Rule11-10.md): The service water heating system type in the baseline building design shall match the minimum efficiency requirements in Section 7.4.2. - * [11-11](section11/Rule11-11.md): For buildings that will have no service water-heating loads, no service water-heating shall be modeled in baseline building model. - * [11-12](section11/Rule11-12.md): For large, 24-hour-per-day facilities that meet the prescriptive criteria for use of condenser heat recovery systems described in Section 6.5.6.2, a system meeting the requirements of that section shall be included in the baseline building design regardless of the exceptions to Section 6.5.6.2. - * [11-13](section11/Rule11-13.md): Service water-heating energy consumption shall be calculated explicitly based upon the volume of service water heating required and the entering makeup water and the leaving service water-heating temperatures. Entering water temperatures shall be estimated based upon the location. Leaving temperatures shall be based upon the end-use requirements. - * [11-14](section11/Rule11-14.md): Where recirculation pumps are used to ensure prompt availability of service water-heating at the end use, the energy consumption of such pumps shall be calculated explicitly. - * [11-15](section11/Rule11-15.md): Service water loads and use shall be the same for both the proposed design and baseline building design. - * [11-16](section11/Rule11-16.md): Gas water heaters shall be modeled using natural gas as their fuel. Exceptions: Where natural gas is not available for the proposed building site, as determined by the rating authority, gas water heaters shall be modeled using propane as their fuel. - * [11-17](section11/Rule11-17.md): All buildings that will have service water heating loads must include those loads in the simulation - -## Section 12 - Receptacles and Other Loads - * [12-1](section12/Rule12-1.md): Receptacle and process power shall be modeled as identical to the proposed design - * [12-2](section12/Rule12-2.md): Depending on the space type, receptacle controls may be required by 90.1 Section 8.4.2. Receptacle schedules shall be modeled identically to the proposed design except when receptacle controls are specified in the proposed design for spaces where not required by Section 8.4.2. - * [12-3](section12/Rule12-3.md): When receptacle controls are specified in the proposed building design for spaces where not required by Standard 90.1 2019 Section 8.4.2, the hourly receptacle schedule shall be reduced as specified in Standard 90.1-2019 Table G3.1 Section 12 Proposed Building Performance column. - * [12-4](section12/Rule12-4.md): Computer room equipment schedules shall be modeled as a constant fraction of the peak design load per the following monthly schedule: Months 1, 5, 9 — 25%; Months 2, 6, 10 — 50%; Months 3, 7, 11 — 75%; Months 4, 8, 12 — 100%. - -## Section 15 - Distribution Transformers - * [15-1](section15/Rule15-1.md): Number of transformers modeled in User RMD and Baseline RMD are the same - * [15-2](section15/Rule15-2.md): Number of transformers modeled in User RMD and Baseline RMD are the same - * [15-3](section15/Rule15-3.md): User RMD transformer Name in Proposed RMD - * [15-4](section15/Rule15-4.md): User RMD transformer Name in Baseline RMD - * [15-5](section15/Rule15-5.md): Transformer efficiency reported in Baseline RMD equals Table 8.4.4 - * [15-6](section15/Rule15-6.md): Transformer efficiency reported in User RMD equals Table 8.4.4. - -## Section 16 - Elevators - * [16-1](section16/Rule16-1.md): The elevator peak motor power shall be calculated according to the equation in Table G3.1-16 - * [16-2](section16/Rule16-2.md): The baseline elevator motor use shall be modeled with the same schedule as the proposed design. - * [16-3](section16/Rule16-3.md): The elevator cab ventilation fan shall be modeled with the same schedule as the elevator motor. - * [16-4](section16/Rule16-4.md): The elevator cab lights shall be modeled with the same schedule as the elevator motor. - * [16-5](section16/Rule16-5.md): When included in the proposed design, the baseline elevator cab ventilation fan and lights shall operate continuously. - * [16-6](section16/Rule16-6.md): When included in the proposed design, the baseline elevator cab ventilation fan power shall be 0.33 W/cfm - * [16-7](section16/Rule16-7.md): When included in the proposed design, the baseline elevator cab lighting power density shall be 3.14 W/ft2 - -## Section 17 - Refrigeration - -## Section 18 - Air Side - * [18-1](section18/Rule18-1.md): HVAC system type selection is based on ASHRAE 90.1 G3.1.1 (a-h). - * [18-2](section18/Rule18-2.md): Does the modeled system serve the appropriate zones (one system per zone for system types 1, 2, 3, 4, 9, 10, 11, 12, and 13 and one system per floor for system types 5, 6, 7, and 8, with the exception of system types 5 or 7 serving laboratory spaces - these systems should serve ALL laboratory zones in the buidling). - * [18-23](section18/Rule18-23.md): The lab exhaust fan shall be modeled as constant horsepower (kilowatts) reflecting constant-volume stack discharge with outdoor air bypass in the baseline. - -## Section 19 - Air Side Baseline HVAC System - * [19-1](section19/Rule19-1.md): HVAC system coil capacities for the baseline building design shall be oversized by 15% for cooling and 25% for heating. - * [19-2](section19/Rule19-2.md): Baseline building plant capacities shall be based on coincident loads. - * [19-3](section19/Rule19-3.md): Weather conditions used in sizing runs to determine baseline equipment capacities shall be based either on design days developed using 99.6% heating design temperatures and 1% dry-bulb and 1% wet-bulb cooling design temperatures. - * [19-4](section19/Rule19-4.md): For baseline cooling sizing runs in residential dwelling units, the infiltration, occupants, lighting, gas and electricity using equipment hourly schedule shall be the same as the most used hourly weekday schedule from the annual simulation. - * [19-5](section19/Rule19-5.md): Unmet load hours for the proposed design shall not exceed 300 (of the 8760 hours simulated). - * [19-6](section19/Rule19-6.md): Unmet load hours for the baseline design shall not exceed 300 (of the 8760 hours simulated). - * [19-7](section19/Rule19-7.md): Minimum ventilation system outdoor air intake flow shall be the same for the proposed design and baseline building design except when any of the 4 exceptions defined in Section G3.1.2.5 are met. - * [19-8](section19/Rule19-8.md): Demand control ventilation is modeled in the baseline design in systems with outdoor air capacity greater than 3000 cfm serving areas with an average occupant design capacity greater than 100 people per 1000 ft^2. - * [19-9](section19/Rule19-9.md): Air economizers shall not be included in baseline HVAC Systems 1, 2, 9, and 10. - * [19-10](section19/Rule19-10.md): Air economizers shall be included in baseline HVAC Systems 3 through 8, and 11, 12, and 13 based on climate as specified in Section G3.1.2.6 with exceptions. - * [19-11](section19/Rule19-11.md): For systems that serve computer rooms, if the baseline system is HVAC System 11, it shall include an integrated fluid economizer meeting the requirements of Section 6.5.1.2 in the baseline building design. - * [19-12](section19/Rule19-12.md): The baseline system economizer high-limit shutoff shall be a dry-bulb fixed switch with set-point temperatures in accordance with the values in Table G3.1.2.7. - * [19-13](section19/Rule19-13.md): For baseline system types 1-8 and 11-13, system design supply airflow rates shall be based on a supply-air-to-room temperature set-point difference of 20°F or the minimum outdoor airflow rate, or the airflow rate required to comply with applicable codes or accreditation standards, whichever is greater. For systems with multiple zone thermostat setpoints, use the design set point that will result in the lowest supply air cooling set point or highest supply air heating set point. - * [19-14](section19/Rule19-14.md): For baseline system types 1-8 and 11-13, if return or relief fans are specified in the proposed design, the baseline building design shall also be modeled with fans serving the same functions and sized for the baseline system supply fan air quantity less the minimum outdoor air, or 90% of the supply fan air quantity, whichever is larger. - * [19-15](section19/Rule19-15.md): For baseline system types 9 & 10, the system design supply airflow rates shall be based on the temperature difference between a supply air temperature set point of 105°F and the design space-heating temperature set point, the minimum outdoor airflow rate, or the airflow rate required to comply with applicable codes or accreditation standards, whichever is greater. - * [19-16](section19/Rule19-16.md): For zones served by baseline system types 9 & 10, if the proposed design includes a fan or fans sized and controlled to provide non-mechanical cooling, the baseline building design shall include a separate fan to provide nonmechanical cooling, sized and controlled the same as the proposed design. - * [19-17](section19/Rule19-17.md): For baseline system 1 and 2, the total fan electrical power (Pfan) for supply, return, exhaust, and relief shall be = CFMs × 0.3, where, CFMs = the baseline system maximum design supply fan airflow rate, cfm. - * [19-18](section19/Rule19-18.md): For baseline systems 3 through 8, and 11, 12, and 13, the system fan electrical power for supply, return, exhaust, and relief shall be Pfan = bhp × 746/fan motor efficiency. Where, bhp = brake horsepower of baseline fan motor from Table G3.1.2.9; fan motor efficiency = the efficiency from Table G3.9.1 for the next motor size greater than the bhp using a totally enclosed fan cooled motor at 1800 rpm. - * [19-19](section19/Rule19-19.md): For baseline systems 9 and 10 the system fan electrical power (Pfan) for supply, return, exhaust, and relief shall be CFMs × 0.3, where, CFMs = the baseline system maximum design supply fan airflow rate, cfm. If modeling a non-mechanical cooling fan is required by Section G3.1.2.8.2, there is a fan power allowance of Pfan = CFMnmc × 0.054, where, CFMnmc = the baseline non-mechanical cooling fan airflow, cfm for the non-mechanical cooling. - * [19-20](section19/Rule19-20.md): The calculated system fan power shall be distributed to supply, return, exhaust, and relief fans in the same proportion as the proposed design. - * [19-21](section19/Rule19-21.md): Baseline systems with >= 5,000 CFM supply air and >= 70 %OA shall have energy recovery modeled in the baseline design model (this RDS does not check the modeled value for the enthalpy recovery ratio). - * [19-22](section19/Rule19-22.md): Baseline systems modeled with exhaust air energy recovery shall allow bypass or control heat recovery system to permit air economizer operation. - * [19-23](section19/Rule19-23.md): For cooling sizing runs, schedules for internal loads, including those used for infiltration, occupants, lighting, gas and electricity using equipment, shall be equal to the highest hourly value used in the annual simulation runs and applied to the entire design day. For heating sizing runs, schedules for internal loads, including those used for occupants, lighting, gas and electricity using equipment, shall be equal to the lowest hourly value used in the annual simulation runs, and schedules for infiltration shall be equal to the highest hourly value used in the annual simulation runs and applied to the entire design day. - * [19-24](section19/Rule19-24.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the proposed design. - * [19-25](section19/Rule19-25.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the baseline design. - * [19-26](section19/Rule19-26.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the proposed design. - * [19-27](section19/Rule19-27.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the baseline design. - * [19-28](section19/Rule19-28.md): Schedules for HVAC fans that provide outdoor air for ventilation in the proposed design shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules for the proposed building exceptions #s 2 and 3. - * [19-29](section19/Rule19-29.md): Schedules for HVAC fans in the baseline design model that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules per the proposed column exceptions #s 2 and 3. - * [19-30](section19/Rule19-30.md): For Systems 6 and 8, only the terminal-unit fan and reheat coil shall be energized to meet heating set point during unoccupied hours in the baseline design. - * [19-31](section19/Rule19-31.md): HVAC fans in the proposed design model shall remain on during unoccupied hours in systems primarily serving computer rooms. - * [19-32](section19/Rule19-32.md): HVAC fans in the baseline design model shall remain on during unoccupied hours in systems primarily serving computer rooms in the B_RMR. - * [19-33](section19/Rule19-33.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d, heating and/or cooling system fans shall simulated to be cycled ON and OFF to meet heating and cooling loads during occupied hours in the proposed design. - * [19-34](section19/Rule19-34.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in this table, heating and/or cooling system fans shall not be simulated as running continuously during occupied hours but shall be cycled ON and OFF to meet heating and cooling loads during all hours in the baseline design. - * [19-35](section19/Rule19-35.md): For baseline systems serving only laboratory spaces that are prohibited from recirculating return air by code or accreditation standards, the baseline system shall be modeled as 100% outdoor air. Rule only applies when baseline outdoor air CFM is modeled as greater than proposed design outdoor air CFM. - * [19-36](section19/Rule19-36.md): Baseline systems required to model energy recovery per G3.1.2.10 shall be modeled with a 50% enthalpy recovery ratio. - * [19-37](section19/Rule19-37.md): Weather conditions used in sizing runs for the 99.6% heating design temperature and 1% dry-bulb and 1% wet-bulb cooling design temperatures are consistent with the site location. - -## Section 21 - Central Heating Hot Water Systems - * [21-1](section21/Rule21-1.md): For systems using purchased hot water or steam, the heating source shall be modeled as purchased hot water or steam in both the proposed design and baseline building design. If any system in the proposed design uses purchased hot water or steam, all baseline systems with hot water coils shall use the same type of purchased hot water or steam. - * [21-2](section21/Rule21-2.md): For purchased HW/steam in the proposed model, the baseline shall have the same number of pumps as proposed - * [21-3](section21/Rule21-3.md): Heating hot water plant capacity shall be based on coincident loads. - * [21-4](section21/Rule21-4.md): When baseline building does not use purchased heat, baseline systems 1,5,7,11,12 shall be modeled with natural draft boilers. - * [21-5](section21/Rule21-5.md): The baseline building design boiler plant shall be modeled as having a single boiler if the baseline building design plant serves a conditioned floor area of 15,000sq.ft. or less, and as having two equally sized boilers for plants serving more than 15,000sq.ft. - * [21-6](section21/Rule21-6.md): When baseline building includes two boilers each shall stage as required by load. - * [21-7](section21/Rule21-7.md): When baseline building requires boilers, systems 1,5,7,11 and 12 - Model HWST = 180F and return design temp = 130F. - * [21-8](section21/Rule21-8.md): When the baseline building requires boilers, (for baseline system type = 1,5,7,11 and 12), HWST for the baseline building shall be reset using an outdoor air dry-bulb reset schedule. 180F at 20F OAT, 150Fat 50F OAT, ramped linerarly between 150F and 180F. - * [21-9](section21/Rule21-9.md): When baseline building includes boilers, Hot Water Pump Power = 19W/gpm. - * [21-10](section21/Rule21-10.md): When the building is modeled with HHW plant (served by either boiler(s) or purchased hot water/steam), the hot water pump shall be modeled as riding the pump curve if the hot water system serves less than 120,000 ft^2 otherwise it shall be modeled with a VFD. - * [21-11](section21/Rule21-11.md): When the system uses boilers the hot water system shall be modeled as primary only. - * [21-12](section21/Rule21-12.md): When the system uses boilers the hot water system shall be modeled with continuous variable flow. - * [21-13](section21/Rule21-13.md): When the system uses boilers the hot water system shall be modeled with a minimum turndown ratio of 0.25. - * [21-14](section21/Rule21-14.md): When the baseline building is modeled with a hot water plant, served by purchased HW system, hot water supply temperature reset is not modeled. - * [21-15](section21/Rule21-15.md): When the baseline building is modeled with a hot water plant, served by purchased HW system, the hot water pump power shall be 14 W/gpm. - * [21-16](section21/Rule21-16.md): Baseline shall have only one heating hot water plant. - * [21-17](section21/Rule21-17.md): All boilers in the baseline building design shall be modeled at the minimum efficiency levels, both part load and full load, in accordance with Tables G3.5.6. - * [21-18](section21/Rule21-18.md): For baseline building, fossil fuel systems shall be modeled using natural gas as their fuel source. - -## Section 22 - Central Chilled Water Systems - * [22-1](section22/Rule22-1.md): Baseline chilled water design supply temperature shall be modeled at 44F. - * [22-2](section22/Rule22-2.md): Baseline chilled water design supply temperature shall be modeled at 44F. - * [22-3](section22/Rule22-3.md): For Baseline chilled water loop that is not purchased cooling, chilled-water supply temperature shall be reset based on outdoor dry-bulb temperature if loop does not serve any Baseline System Type-11. - * [22-4](section22/Rule22-4.md): For Baseline chilled water loop that is not purchased chilled water and does not serve any computer room HVAC systems, chilled-water supply temperature shall be reset using the following schedule: 44F at outdoor dry-bulb temperature of 80F and above, 54F at 60F and below, and ramped linearly between 44F and 54F at temperature between 80F and 60F. - * [22-5](section22/Rule22-5.md): For Baseline chilled water loop that is not purchased chilled water and serves computer room HVAC systems (System Type-11), chilled-water supply temperature shall be reset higher based on the HVAC system requiring the most cooling. - * [22-6](section22/Rule22-6.md): For Baseline chilled water loop that is not purchased chilled water and serves computer room HVAC systems (System Type-11), The maximum reset chilled-water supply temperature shall be 54F. - * [22-7](section22/Rule22-7.md): Baseline chilled water system that does not use purchased chilled water shall be modeled as primary/secondary systems. - * [22-8](section22/Rule22-8.md): For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary pump shall be modeled with variable-speed drives. - * [22-9](section22/Rule22-9.md): For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary loop shall be modeled with a minimum flow of 25% of the design flow rate. - * [22-10](section22/Rule22-10.md): For Baseline chilled water system with cooling capacity less than 300ton, the secondary pump shall be modeled as riding the pump curve. For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary pump shall be modeled with variable-speed drives. - * [22-11](section22/Rule22-11.md): For Baseline chilled-water system that does not use purchased chilled water, variable-flow secondary pump shall be modeled as 13W/gpm at design conditions. - * [22-12](section22/Rule22-12.md): The heat rejection system shall be a single loop, modeled with a single cooling tower. - * [22-13](section22/Rule22-13.md): The baseline heat rejection loop shall be an axial-fan open circuit cooling tower. - * [22-14](section22/Rule22-14.md): The baseline heat-rejection device shall have a design temperature rise of 10°F. - * [22-15](section22/Rule22-15.md): Heat Rejection Device Approach calaculated correctly (T/F), Approach = 25.72-(0.24*WB). - * [22-16](section22/Rule22-16.md): The baseline condenser-water design supply temperature shall be calculated using the cooling tower approach to the 0.4% evaporation design wet-bulb temperature, valid for wet-bulbs from 55°F to 90°F. - * [22-17](section22/Rule22-17.md): The baseline heat rejection device shall have an efficiency of 38.2 gpm/hp. - * [22-18](section22/Rule22-18.md): The baseline heat rejection device shall be modeled with variable speed fan control. - * [22-19](section22/Rule22-19.md): The tower shall be controlled to maintain a leaving water temperature, where weather permits. - * [22-20](section22/Rule22-20.md): The baseline minimum condenser water reset temperature is per Table G3.1.3.11. - * [22-21](section22/Rule22-21.md): The baseline building design’s chiller plant shall be modeled with chillers having the type as indicated in Table G3.1.3.7 as a function of building peak cooling load. - * [22-22](section22/Rule22-22.md): The baseline chiller efficiencies shall be modeled at the minimum efficiency levels for full load, in accordance with Tables G3.5.3. - * [22-23](section22/Rule22-23.md): Each baseline chiller shall be modeled with separate chilled water pump interlocked to operate with the associated chiller. - * [22-24](section22/Rule22-24.md): For baseline chilled-water systems served by chiller(s), the primary pump shall be modeled as constant volume. - * [22-25](section22/Rule22-25.md): For chilled-water systems served by chiller(s) and does not serve baseline System-11, the baseline building constant-volume primary pump power shall be modeled as 9 W/gpm. - * [22-26](section22/Rule22-26.md): For chilled-water systems served by chiller(s) and serves baseline System-11, the baseline building constant-volume primary pump power shall be modeled as 12 W/gpm. - * [22-27](section22/Rule22-27.md): Each baseline chiller shall be modeled with separate condenser-water pump interlocked to operate with the associated chiller. - * [22-28](section22/Rule22-28.md): The baseline building design condenser-water pump shall be modeled as constant volume. - * [22-29](section22/Rule22-29.md): For chilled-water systems served by chiller(s) and does not serve baseline System-11, condenser-water pump power shall be 19 W/gpm. - * [22-30](section22/Rule22-30.md): For chilled-water systems served by chiller(s) and serves baseline System-11, condenser-water pump power shall be 22 W/gpm. - * [22-31](section22/Rule22-31.md): The baseline building design’s chiller plant shall be modeled with chillers having the number as indicated in Table G3.1.3.7 as a function of building peak cooling load. - * [22-32](section22/Rule22-32.md): The baseline chiller efficiencies shall be modeled at the minimum efficiency levels for part load, in accordance with Tables G3.5.3. - * [22-33](section22/Rule22-33.md): Baseline chilled water system that does not use purchased chilled water must only have no more than one CHW plant. - * [22-34](section22/Rule22-34.md): For baseline cooling chilled water plant that is served by chiller(s), the capacity shall be based on coincident loads. - * [22-35](section22/Rule22-35.md): Baseline systems served by purchased chilled water shall not be modeled with chilled water reset. - * [22-36](section22/Rule22-36.md): Baseline chilled water system that does not use purchased chilled water shall be modeled with constant flow primary loop and variable flow secondary loop. - * [22-37](section22/Rule22-37.md): Baseline systems served by purchased chilled water loop shall be modeled with a distribution pump with a variable speed drive. - * [22-38](section22/Rule22-38.md): Baseline systems served by purchased chilled water loop shall have a minimum flow setpoint of 25%. - * [22-39](section22/Rule22-39.md): Baseline systems served by purchased chilled water loop shall be modeled with a distribution pump whose pump power is 16W/gpm. - * [22-40](section22/Rule22-40.md): For systems using purchased chilled water, the cooling source shall be modeled as purchased chilled water in both the proposed design and baseline building design. If any system in the proposed design uses purchased chilled water, all baseline systems with chilled water coils shall use purchased chilled water. On-site chillers and direct expansion equipment shall not be modeled in the baseline building design. - * [22-41](section22/Rule22-41.md): Purchased CHW systems must be modeled with only one external fluid loop in the baseline design. - -## Section 23 - Chilled Water Systems and Condenser Water Systems - * [23-1](section23/Rule23-1.md): System 2 and 4 - Electric air-source heat pumps shall be modeled with electric auxiliary heat and an outdoor air thermostat. The systems shall be controlled to energize auxiliary heat only when the outdoor air temperature is less than 40°F. - * [23-2](section23/Rule23-2.md): For baseline systems 5-8 and 11, the SAT is reset higher by 5F under minimum cooling load conditions. - * [23-3](section23/Rule23-3.md): System 5, 6, 7 and 8 minimum volume setpoint shall be 30% of zone peak airflow, minimum outdoor airflow, or rate required to comply with minimum accreditation standards whichever is larger. - * [23-4](section23/Rule23-4.md): Baseline systems 5 & 7 serving lab spaces per G3.1.1c shall reduce lab exhaust and makeup air during unoccupied periods to 50% of zone peak airflow, the minimum outdoor airflow, or rate required to comply with minimum accreditation standards whichever is larger. - * [23-5](section23/Rule23-5.md): For baseline systems 6 and 8, Fans in parallel VAV fan-powered boxes shall run as the first stage of heating before the reheat coil is energized. - * [23-6](section23/Rule23-6.md): For baseline systems 6 and 8, Fans in parallel VAV fan-powered boxes shall be sized for 50% of the peak design primary air (from the VAV air-handling unit) flow rate and shall be modeled with 0.35 W/cfm fan power. - * [23-7](section23/Rule23-7.md): Systems 6&8: Supply air temperature setpoint shall be constant at the design condition. - * [23-8](section23/Rule23-8.md): System 5-8 and 11 - part load VAV fan power shall be modeled using either method 1 or 2 in Table G3.1.3.15. This rule will only validate data points from Method-1 Part-load Fan Power Data. However, both methods are equivalent. When modeling inputs are based on Method 2, values should be converted to Method 1 when writing to RMD. - * [23-9](section23/Rule23-9.md): System 11 Minimum volume setpoint shall be the largest of 50% of the maximum design airflow rate, the minimum ventilation airflow rate or the airflow required to comply with codes or accredidation standards. - * [23-10](section23/Rule23-10.md): System 11 Fan volume shall be reset from 100% airflow at 100% load to minimum airflow at 50% load. - * [23-11](section23/Rule23-11.md): System 11 Supply air temperature shall be reset from minimum supply air temp at 50% cooling load to room temp at 0% cooling load. OR the SAT is reset higher by 5F under minimum cooling load conditions. - * [23-12](section23/Rule23-12.md): System 11 in heating mode supply air temperature shall be modulated to maintain space temp and airflow shall be fixed at minimum airflow. - * [23-13](section23/Rule23-13.md): If proposed design includes humidistatic controls then the baseline shall use mechanical cooling for dehumidification and shall reheat to avoid overcooling. - * [23-14](section23/Rule23-14.md): If the baseline system does not comply with exceptions in Section 6.5.2.3 then only 25% of the system reheat energy shall be included in the baseline building performance. - * [23-15](section23/Rule23-15.md): Dehumidification reheat shall be the same as the system heating type. - * [23-16](section23/Rule23-16.md): Systems 5 - 8, the baseline system shall be modeled with preheat coils controlled to a fixed set point 20F less than the design room heating temperature setpoint. - * [23-17](section23/Rule23-17.md): System 2 and 4 - Electric air-source heat pumps shall be modeled to continue to operate while auxiliary heat is energized. +## Rulesets + *[ASHRAE 90.1 2019](ashrae_90p1_2019/_toc.md): ASHRAE 90.1 2019 ruleset document diff --git a/docs/ashrae_90p1_2019/_toc.md b/docs/ashrae_90p1_2019/_toc.md new file mode 100644 index 0000000000..e9f75baa38 --- /dev/null +++ b/docs/ashrae_90p1_2019/_toc.md @@ -0,0 +1,432 @@ +# ASHRAE 90.1 2019 Rule Definition Development + +### Introduction +This document presents a detailed description of the ASHRAE 90.1-2019 Appendix G rules, as outlined in the ASHRAE 229P Test Case Descriptions (TCD). It is structured into three distinct sections to ensure clarity and usability: +1. General Ruleset Functions: These include reusable pseudocode functions that are applied across multiple rules and scenarios. +2. Data Tables: This section provides critical data tables containing predefined parameters, default values, and rule-relevant provisions required for calculations. +3. Rule Sections: Organized by relevant sections of ASHRAE 90.1 Appendix G, this part includes comprehensive pseudocode for individual rules. +The structure is designed to provide complete coverage of the ASHRAE 90.1-2019 ruleset, offering clarity and a logical framework for the development of Python-based implementations. + + +## Ruleset Functions + +### General ruleset functions + * [get_lighting_status_type](ruleset_functions/get_lighting_status_type.md): This function would determine whether the space lighting status type is 1). not-yet designed or match Table 9_5_1, 2). as-designed or as-existing. + * [get_opaque_surface_type](ruleset_functions/get_opaque_surface_type.md): This function would determine whether it is a wall, ceiling or floor. + * [get_surface_conditioning_category](ruleset_functions/get_surface_conditioning_category.md): This function would cycle through each surface in a zone and categorize it as exterior res, exterior non res, exterior mixed, semi-exterior or unregulated. + * [get_wwr](ruleset_functions/get_wwr.md): This function would determine window wall ratio for a building segment. + * [get_zone_conditioning_category.md](ruleset_functions/get_zone_conditioning_category.md): Determine the Zone Conditioning Category for each zone. This function would cycle through each zone in an RMD and categorize it as ‘conditioned’, 'semi-heated’, 'unenclosed' or ‘unconditioned’. If ‘conditioned’ it will also categorize the space as ‘residential’ or ‘non-residential’. + * [normalize_interior_lighting_schedules](ruleset_functions/normalize_interior_lighting_schedules.md):This function would determine a normalized schedule for a data element in space. + * [compare_schedules](ruleset_functions/compare_schedules.md): This function would compare two schedules and determine if they match with or without a comparison factor when applicable. + * [get_fuels_modeled_in_RMD](ruleset_functions/get_fuels_modeled_in_RMD.md): Get a list of the fuels used in the RMD. Includes fuels used by HVAC systems including terminal units, chillers, boilers, ExternalFluidSources, and SWHs. + * [get_primary_secondary_loops_dict](ruleset_functions/get_primary_secondary_loops_dict.md): Get the list of primary and secondary loops for CHW for a B-RMD. + * [get_hvac_systems_5_6_serving_multiple_floors_b](ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md): Get a dictionary of the system 5, 5a, 5b, 6, 6a, 6b hvac system IDs that are modeled as serving more than one floor in the baseline design model. The dictionary consists of the hvac system ids as the key and the number of floors served as the value associated with the key. + * [get_HVAC_systems_primarily_serving_comp_rooms](ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md): Returns a list of HVAC systems in which greater than 50% of the area served by the HVAC system is computer room space. + * [get_dict_of_zones_and_terminal_units_served_by_hvac_sys](ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md): Returns a dictionary of zones and terminal unit IDs associated with each HVAC system in the RMD. + * [get_baseline_system_type](ruleset_functions/get_baseline_system_types.md): Identify all the baseline system types modeled in a B-RMD. + * [get_hvac_zone_list_w_area](ruleset_functions/get_hvac_zone_list_w_area.md): Get the list of zones and their total floor area served by each HVAC system in a RMD. + * [check_purchased_chw_hhw_status_dict](ruleset_functions/check_purchased_chw_hhw_status_dict.md): Check if RMD is modeled with purchased chilled water as space cooling source or purchased hot water/steam as space heating source. If any system in RMD uses purchased chilled water, function shall return True for purchased chilled water as space cooling source. Similarly, if any system in RMD uses purchased hot water or steam, function shall return True for purchased hot water/steam as space heating source. + * [get_proposed_hvac_modeled_with_virtual_heating](ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md): Get the list of HeatingVentilationAirAconditioningSystem in which Appendix G Table G3.1 #10 c is applicable (i.e. space heating is modeled in the P_RMR but not the U_RMR). Table G3.1 #10 c states that "where no heating system exists or no heating system has been submitted with design documents, the system type shall be the same system as modeled in the baseline building design and shall comply with but not exceed the requirements of Section 6." + * [get_fan_object_electric_power](ruleset_functions/get_fan_object_electric_power.md): Get the fan power associated with a fan object. + * [get_heat_rejection_loops_connected_to_baseline_systems](ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md): Get a list of all heat rejection loops in an RMD that are connected to a baseline HVAC System (Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11.1b, 12b) + * [get_fan_system_object_supply_return_exhaust_relief_total_kW_CFM](ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_kW_CFM.md): Get the supply, return, exhaust, and relief total fan power, CFM, quantity, and information about whether the pressure drop is consistent across the fans if more than one for a fan system object. The function returns a dictionary that saves the supply, return, exhaust, and relief fan power as a list, saves the supply, return, exhaust, and relief cfm as a list, saves the supply, return, exhaust, and relief quantity as a list, and saves for each fan whether the pressure drop is undefined, identical, or different across fans (if only one it will return undefined or identical) but returns the quantity and information about the pressure drop across fans to help assess whether series or parallel. + * [are_all_hvac_sys_fan_objs_autosized](ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md): Returns true or false. The function returns true if all supply fan objects associated with an hvac system are autosized. + * [is_economizer_modeled_in_proposed](ruleset_functions/is_economizer_modeled_in_proposed.md): Returns true or false. The function returns true if at least one zone served by the baseline HVAC system sent to the function is served by an hvac system with an economizer in the proposed design. The function returns false otherwise. + * [get_most_used_weekday_hourly_schedule](ruleset_functions/get_most_used_weekday_hourly_schedule.md): Get the most used weekday hourly schedule from an annual 8760 schedule as list of hourly values for a 24 hour period. + * [get_aggregated_zone_hvac_fan_operating_schedule](ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md): This function loops through all of the HVAC system fan operating schedules associated with a specific zone and creates an aggregated fan operating schedule for the zone. More specifically, if any of the fan operating schedules associated with any of the hvac systems serving the zone have a 1 for a particular hour of the year then the aggregated schedule will equal 1 for that particular hour of the year. The function will check this for each hour of the year and return an 8760 aggregated fan operating schedule. + * [get_zone_supply_return_exhaust_relief_terminal_fan_power_dict](ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md): Get the supply, return, exhaust, relief, and terminal total fan power for each zone. The function returns a dictionary that saves each zone's supply, return, exhaust, relief and terminal unit fan power as a list {zone.id: [supply fan power kW, return fan power kW, exhaust fan power kW, relief fan power kW, terminal fan power]}. Values will be equal to zero where not defined for a fan system. Zonal exhaust and non-mechanical cooling is not included. + * [get_hvac_sys_and_assoc_zones_largest_exhaust_source](ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md): Returns a list with the sum of the hvac fan system exhaust fan cfm values, the maximum zone level exhaust source across the zones associated with the HVAC system, the number of exhaust fans associated with the hvac fan system, and the maximum cfm of all of the exhaust fans associated with the hvac system fan system [hvac_sys_exhaust_cfm_sum, maximum_zone_exhaust, num_hvac_exhaust_fans, maximum_hvac_exhaust]. This is for evaluating G3.1.2.10 exception 6 which states "Where the largest exhaust source is less than 75% of the design outdoor airflow. This exception shall only be used if exhaust air energy recovery is not used in the proposed design. " + * [get_zone_target_baseline_system](ruleset_functions/get_zone_target_baseline_system.md): Following G3.1.1, determines the baseline system type for each zone in a building + * [get_lab_zone_hvac_systems](ruleset_functions/get_lab_zone_hvac_systems.md): returns a list of HVAC systems serving only lab zones. + * [get_SWH_bats_and_SWH_use](ruleset_functions/get_SWH_bats_and_SWH_use.md): This function gets all the SWH Uses and the SWH space types and sorts them into a dictionary where the keys are the ServiceWaterHeatingBuildingAreaOptions2019ASHRAE901 and values are a list if ServiceWaterHeatingUse.ids + * [get_SWH_uses_associated_with_each_building_segment](ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md): This function gets all the SWH uses connected to a building segment. This function is primarily to encapsulate getting service water heating uses in one function so that if a change is made in the schema as to how service water heating use is specified, the RCT only needs to change in one place. + * [get_building_segment_SWH_bat](ruleset_functions/get_building_segment_SWH_bat.md): This function determines the SWH BAT for the given building segment. + * [get_SWH_components_associated_with_each_SWH_bat](ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md): This function gets all the SWH equipment connected to a particular SWH use type. The information is stored in a dictionary where the keys are the ServiceWaterHeatingSpaceOptions2019ASHRAE901 and values are a dictionary giving the ServiceWaterHeatingDistributionSystem, ServiceWaterHeatingEquipment, and Pumps connected to the particular use type. There is also an entry for the total energy required to heat all SWH uses for a year: "EnergyRequired" + * [get_SWH_components_associated_with_each_swh_distribution_system](ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md): This function gets all the SWH equipment connected to a SWH distribution system. The information is stored in a dictionary where the keys are the SWH Distribution System Ids and values are a dictionary giving the ServiceWaterHeatingEquipment, and Pumps connected to the particular SWH distribution system. + * [get_swh_equipment_type](ruleset_functions/get_swh_equipment_type.md): This function determines whether the swh equipment type is one of: (ELECTRIC_RESISTANCE_INSTANTANEOUS, ELECTRIC_RESISTANCE_STORAGE, GAS_STORAGE, OTHER) + * [get_energy_required_to_heat_swh_use](ruleset_functions/get_energy_required_to_heat_swh_use.md): This function calculates the total energy required to heat the SWH use over the course of a year in btu. Note - this function does not work for service water heating uses with use_units == "OTHER". In this case, it will return 0. + * [get_spaces_served_by_SWH_use](ruleset_functions/get_spaces_served_by_SWH_use.md): This function determines the spaces served by a given SWH use. The convention is that if any spaces reference the swh_use, then the service water heating use applies to only those spaces. If no spaces reference the service water heating use, it applies to all spaces in the building segment. + +### G3.1.1 Exception Check Functions + * [does_zone_meet_G3_1_1c](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md): Determines whether a given zone meets the G3_1_1c exception "If the baseline HVAC system type is 5, 6, 7, 8 use separate single-zone systems conforming with the requirements of system 3 or system 4 (depending on building heating source) for any spaces that have occupancy or process loads or schedules that differ significantly from the rest of the building. Peak thermal loads that differ by 10 Btu/h·ft2 (2.930710 W/sf) or more from the average of other spaces served by the system, or schedules that differ by more than 40 equivalent full-load hours per week from other spaces served by the system, are considered to differ significantly. Examples where this exception may be applicable include but are not limited to natatoriums and continually occupied security areas. This exception does not apply to computer rooms." + * [does_zone_meet_G3_1_1d](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md): Determines whether a given zone meets the G3_1_1d exception "For laboratory spaces in a building having a total laboratory exhaust rate greater than 15,000 cfm, use a single system of type 5 or 7 serving only those spaces. + * [does_zone_meet_G3_1_1e](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md): Determines whether a given zone meets the G3_1_1e exception "Thermal zones designed with heating-only systems in the proposed design serving storage rooms, stairwells, vestibules, electrical/mechanical rooms, and restrooms not exhausting or transferring air from mechanically cooled thermal zones in the proposed design shall use system type 9 or 10 in the baseline building design. + * [does_zone_meet_G3_1_1f](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md): Determines whether a given zone meets the G3_1_1f exception "If the baseline HVAC system type is 9 or 10, use additional system types for all HVAC zones that are mechanically cooled in the proposed design." - this function is only called if the expected baseline system type has already been confirmed to be system type 9 or 10 + * [does_zone_meet_G3_1_1g](ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md): Returns a boolean value indicating whether the zone meets G3_1_1g. + +### G3.1.1 HVAC sub-functions + * [is_CZ_0_to_3a](ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md): Determines whether the building is in climate zone 0 to 3a - used for Appendix G Table G3.1.1-3. + * [get_zone_HVAC_BAT](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md): Get a dictionary of the HVAC_BAT and areas for a given zone. + * [get_HVAC_building_area_types_and_zones](ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md): Get a dictionary of the zone_ids associated with each building area type associated with U_RMR, P_RMR, or B_RMR. Also returns the total floor area of each building area type and the source of the information (BUILDING_SEGMENT_HVAC_BAT, BUILDING_SEGMENT_LIGHTING or SPACE_LIGHTING) + * [expected_system_type_from_table_g3_1_1a](ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md): returns the expected system type based on the BAT, the number of floors of the building and the area of the BAT, and climate zone. + * [get_zones_on_same_floor](ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md): Provides a list of zones that are on the floor as the starting zone. + * [is_zone_mechanically_cooled](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md): Determines whether a zone is cooled. Checks for transfer air + * [get_zones_computer_rooms](ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md): Returns a dictionary with the zones that have at least one computer room space associated with them in the RMD as the keys. The values associated with each key are in a list form. The list associated with each key contains the computer room floor area as the first item in the list and the total zone floor area as the second item in the list. + * [get_zone_peak_internal_load_floor_area](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md): finds the peak coincident internal loads of a zone and returns the value in btu/h/ft2 + * [get_building_lab_zones](ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md): returns a list of all of the zones in the building that include a laboratory space + * [get_building_total_lab_exhaust_from_zone_exhaust_fans](ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md): determines the total exhaust air flow rate for zone exhaust fans in zones that have laboratory spaces. + * [is_space_a_computer_room](ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md): Returns true or false as to whether space is a computer room. The criteria is such that it is considered a computer room if the lighting space type definition equals COMPUTER_ROOM, or, if the space type is not defined, if the total misc W/sf exceeds 20 W/sf per the definition of a computer room in 90.1 Section 3. + * [get_zone_eflh](ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md): provides the equivalent full load hours of the zone. Equivalent full load hours are defined as: any hour where the occupancy fraction is greater than 5% AND the HVAC system is in occupied mode. For this function, we are recognizing the HVAC system as being in occupied mode if ANY of the HVAC systems serving the zone are in occupied mode. + * [is_zone_likely_a_vestibule](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md): following the guidelines in ASHRAE that a vestibule is defined as a space with at least one exterior door and with a surface area of no more than the greater of 50ft2 or 2% of the total area of the floor. + * [get_predominant_hvac_building_area_type](ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md): returns a String `predominant_HVAC_building_area_type` which is one of the HVAC building area types + * [is_zone_likely_a_vestibule](ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md): following the guidelines in ASHRAE that a vestibule is defined as a space with at least one exterior door and with a surface area of no more than the greater of 50ft2 or 2% of the total area of the floor. + * [get_computer_zones_peak_cooling_load](ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md): return peak load of computer zones in the building + * [get_number_of_floors](ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md): gets the number of floors in the building. Parking Garages are not counted. + +### HVAC type functions + * [is_baseline_system_1](ruleset_functions/baseline_systems/is_baseline_system_1.md): Get either Sys-1, Sys-1a, Sys-1b, Sys-1c, or Not_Sys_1 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 1 (PTAC), system 1a (system 1 with purchased CHW), system 1b (system 1 with purchased heating), system 1c (system 1 with purchased CHW and purchased HW). + * [is_baseline_system_1a](ruleset_functions/baseline_systems/is_baseline_system_1a.md): Returns true or false to whether the baseline system type is 1a (system 1 with purchased CHW and HW served by a boiler). + * [is_baseline_system_1c](ruleset_functions/baseline_systems/is_baseline_system_1c.md): Returns true or false to whether the baseline system type is 1c (system 1 with purchased CHW and purchased HW). + * [is_baseline_system_2](ruleset_functions/baseline_systems/is_baseline_system_2.md): Get either Sys-2 or Not_Sys_2 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 2 (PTHP). + * [is_baseline_system_3](ruleset_functions/baseline_systems/is_baseline_system_3.md): Get either Sys-3, Sys-3a, Sys-3b, Sys-3c, or Not_Sys_3 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 3 (PSZ), system 3a (system 3 with purchased CHW), system 3b (system 3 with purchased heating), system 3c (system 3 with purchased CHW and purchased HW). + * [is_baseline_system_4](ruleset_functions/baseline_systems/is_baseline_system_4.md): Get either Sys-4 or Not_Sys_4 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 4 (PSZ-HP). + * [is_baseline_system_5](ruleset_functions/baseline_systems/is_baseline_system_5.md): Get either Sys-5, Sys-5b, or Not_Sys_5 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 5 (Package VAV with Reheat) or system 5b (system 5 with purchased heating). + * [is_baseline_system_6](ruleset_functions/baseline_systems/is_baseline_system_6.md): Get either Sys-6, Sys-6b, or Not_Sys_6 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 6 (Package VAV with PFP Boxes) or system 6b (system 6 with purchased heating). + * [is_baseline_system_7](ruleset_functions/baseline_systems/is_baseline_system_7.md): Get either Sys-7, Sys-7a, Sys-7b, Sys-7c or Not_Sys_7 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 7 (VAV with Reheat), system 7a (system 7 with purchased CHW), system 7b (system 7 with purchased heating), pr system 7c (system 7 with purchased heating and purchased CHW). + * [is_baseline_system_8](ruleset_functions/baseline_systems/is_baseline_system_8.md): Get either Sys-8, Sys-8a, Sys-8b, Sys-8c, or Not_Sys_8 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 8 (VAV with Parallel Fan-Powered Boxes and Reheat), system 8a (system 8 with purchased CHW), system 8b (system 8 with purchased heating), or 8c (system 8 with purchased heating and purchased chilled water). + * [is_baseline_system_9](ruleset_functions/baseline_systems/is_baseline_system_9.md): Get either Sys-9, Sys-9b, or Not_Sys_9 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 9 (Heating and Ventilation) or system 9b (system 9 with purchased heating). + * [is_baseline_system_9b](ruleset_functions/baseline_systems/is_baseline_system_9b.md): Returns true or false to whether the baseline system type is 9b (system 9 with purchased HW). + * [is_baseline_system_10](ruleset_functions/baseline_systems/is_baseline_system_10.md): Get either Sys-10 or Not_Sys_10 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 10 (Heating and Ventilation with electric heating). + * [is_baseline_system_11.1](ruleset_functions/baseline_systems/is_baseline_system_11.1.md): Get either Sys-11.1, Sys-11.1a, Sys-11b, Sys-11c, or Not_Sys_11.1 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 11.1 (Single Zone VAV System with Electric Resistance Heating), system 11.1a (system 11.1 with purchased CHW), system 11b (system 11.1 with purchased heating), or system 11c (system 11.1 with purchased CHW and purchased heating). + * [is_baseline_system_11.2](ruleset_functions/baseline_systems/is_baseline_system_11.2.md): Get either Sys-11.2, Sys-11.2a or Not_Sys_11.2 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 11.2 (Single Zone VAV System with Hot Water Heating (Boiler)) or system 11.2a (system 11.2 with purchased CHW). + * [is_baseline_system_12](ruleset_functions/baseline_systems/is_baseline_system_12.md): Get either Sys-12, Sys-12a, Sys-12b, Sys-12c, or Not_Sys_12 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 12 (Single Zone Constant Volume System with CHW and HW), system 12a (system 12 with purchased CHW), system 12b (system 12 with purchased heating), system 12c (system 12 with purchased CHW and purchased HW). + * [is_baseline_system_13](ruleset_functions/baseline_systems/is_baseline_system_13.md): Get either Sys-13, Sys-13a, or Not_Sys_13 string output which indicates whether the HVAC system is ASHRAE 90.1 2019 Appendix G system 13 (Single Zone Constant Volume System with CHW and Electric Resistance) or system 13a (system 13 with purchased CHW). + +### HVAC sub functions + * [are_all_terminal_heat_sources_hot_water](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md): Returns TRUE if the heat source associated with all terminal units input to this function is HOT_WATER. It returns FALSE if any terminal unit has a heat source other than HOT_WATER. + * [is_hvac_sys_heating_type_elec_resistance](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md): Returns TRUE if the HVAC system heating system heating type is ELECTRIC_RESISTANCE. Returns FALSE if the HVAC system heating system has anything other than ELECTRIC_RESISTANCE. + * [is_hvac_sys_cooling_type_none](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md): Returns TRUE if the HVAC system cooling type is None or Null. Returns FALSE if the HVAC system has anything other than None or Null for the cooling type or if it has more than 1 or no cooling system. + * [do_all_terminals_have_one_fan](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md): Returns TRUE if the fan data element associated with all terminal units input to this function are equal to one (i.e., there is only one fan associated with the terminal unit). It returns FALSE if any terminal unit has a fan data element not equal to one (i.e., there is NOT only one fan associated with the terminal unit). + * [are_all_terminal_fan_configs_parallel](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md): Returns TRUE if the fan configuration associated with all terminal units input to this function are parallel. It returns FALSE if any terminal unit has a fan configuration other than parallel. + * [are_all_terminal_heat_sources_electric](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md): Returns TRUE if the heat source associated with all terminal units input to this function are electric. It returns FALSE if any terminal unit has a heat source other than electric. + * [is_hvac_sys_preheating_type_elec_resistance](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md): Returns TRUE if the HVAC system preheating system heating type is ELECTRIC_RESISTANCE. Returns FALSE if the HVAC system preheating system has anything other than ELECTRIC_RESISTANCE. + * [are_all_terminal_heating_loops_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md): Returns TRUE if the fluid loop associated with the heating_from_loop associated with each terminal unit is purchased heating. Returns FALSE if this is not the case. + * [is_hvac_sys_preheat_fluid_loop_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the preheat system associated with the HVAC system is attached to a boiler. Returns FALSE if this is not the case. + * [is_hvac_sys_preheat_fluid_loop_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md): Returns TRUE if the fluid loop associated with the preheating system associated with the HVAC system is attached to an external purchased heating loop. Returns FALSE if this is not the case. + * [is_hvac_sys_preheating_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md): Returns TRUE if the HVAC system preheating system heating type is fluid loop. Returns FALSE if the HVAC system preheating system has anything other than fluid loop. + * [are_all_terminal_cool_sources_chilled_water](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md): Returns TRUE if the cool source associated with all terminal units is CHILLED_WATER. It returns FALSE if any terminal unit has a cool source other than CHILLED_WATER. + * [are_all_terminal_types_VAV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md): Returns TRUE if all of the terminal unit types input to this function are variable air volume (VAV). It returns FALSE if any of the terminal units are of a type other than variable air volume (VAV). + * [is_hvac_sys_heating_type_furnace](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md): Returns TRUE if the HVAC system heating system heating type is furnace. Returns FALSE if the HVAC system heating system has anything other than furnace or if it has more than 1 heating system. + * [is_hvac_sys_fluid_loop_attached_to_chiller](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md): Returns TRUE if the fluid loop associated with the cooling system associated with the HVAC system is attached to a chiller. Returns FALSE if this is not the case. + * [is_hvac_sys_cooling_type_DX](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md): Returns TRUE if the HVAC system has DX cooling. Returns FALSE if the HVAC system has anything other than DX cooling or if it has more than 1 or no cooling system. + * [is_hvac_sys_fan_sys_CV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md): Returns TRUE if the HVAC system fan system is constant volume. Returns FALSE if the HVAC system fan system is anything other than constant volume. + * [is_hvac_sys_heating_type_heat_pump](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md): Returns TRUE if the HVAC system has heat pump as the heating system type. Returns FALSE if the HVAC system has anything other than heat pump as the heating system type or if it has more than 1 heating system. + * [is_hvac_sys_fluid_loop_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the heating system associated with the HVAC system is attached to a boiler. Returns FALSE if this is not the case. + * [does_hvac_system_serve_single_zone](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md): Returns TRUE if the HVAC system serves a single zone. Returns FALSE if the HVAC system serves multiple zones. + * [is_hvac_sys_heating_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md): Returns TRUE if the HVAC system heating system heating type is fluid loop. Returns FALSE if the HVAC system heating system has anything other than fluid loop or if it has more than 1 heating system. + * [is_hvac_sys_cooling_type_fluid_loop](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md): Returns TRUE if the HVAC system has fluid_loop cooling. Returns FALSE if the HVAC system has anything other than fluid_loop cooling or if it has more than 1 cooling system. + * [are_all_terminal_cool_sources_none_or_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md): Returns TRUE if the cool source associated with all terminal units input to this function are None or Null. It returns FALSE if any terminal unit has a cool source other than None or Null. + * [are_all_terminal_heat_sources_none_or_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md): Returns TRUE if the heat source associated with all terminal units input to this function are None or Null. It returns FALSE if any terminal unit has a heat source other than None or Null. + * [are_all_terminal_supplies_ducted](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md): Returns TRUE if all of the terminal supplies are ducted (i.e., is_supply_ducted = TRUE) for the list of terminal units input to the function. It returns FALSE if any of the terminal supplies are not ducted (i.e., is_supply_ducted = FALSE). + * [are_all_terminal_types_CAV](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md): Returns TRUE if all of the terminal unit types input to this function are constant air volume (CAV) or if this data element is undefined. It returns FALSE if any of the terminal units are of a type other than constant air volume (CAV). + * [are_all_terminal_fans_null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md): Returns TRUE if the fan data element associated with all terminal units input to this function are equal to Null. It returns FALSE if any terminal unit has a fan data element not equal to Null. + * [does_each_zone_have_only_one_terminal](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md): Returns TRUE if each zone input to this function only has one terminal unit. It returns FALSE if any zone has more than one terminal unit. + * [is_hvac_sys_fluid_loop_purchased_CHW](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md): Returns TRUE if the fluid loop associated with the cooling system associated with the HVAC system is attached to an external purchased chilled water loop. Returns FALSE if this is not the case. + * [is_hvac_sys_fan_sys_VSD](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md): Returns TRUE if the HVAC system fan system is variable speed drive controlled. Returns FALSE if the HVAC system fan system is anything other than variable speed drive controlled. + * [are_all_terminal_heating_loops_attached_to_boiler](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md): Returns TRUE if the fluid loop associated with the heating_from_loop associated with each terminal unit is attached to a boiler. Returns FALSE if this is not the case. + * [is_hvac_system_multizone](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md): Returns TRUE if the HVAC system serves multiple zones. Returns FALSE if the HVAC system serves a single or no zones. + * [is_hvac_sys_fluid_loop_purchased_heating](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md): Returns TRUE if the fluid loop associated with the heating system associated with the HVAC system is attached to an external purchased heating loop. Returns FALSE if this is not the case. + * [are_all_terminal_types_CAV_With_None_Equal_to_Null](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md): Returns TRUE if all of the terminal unit types input to this function are constant air volume (CAV). It returns FALSE if any of the terminal units are of a type other than constant air volume (CAV). + * [get_dict_with_terminal_units_and_zones](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md): Returns a dictionary of zone IDs associated with each terminal unit in the RMD. + * [are_all_terminal_CHW_loops_purchased_cooling](ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md): Returns TRUE if the fluid loop associated with the cooling_from_loop associated with each terminal unit is purchased CHW. Returns FALSE if this is not the case. + * [is_zone_mechanically_heated_and_not_cooled](ruleset_functions/is_zone_mechanically_heated_and_not_cooled.md): determines whether a zone is mechanically heated, but not cooled. Checks for transfer air. + +## Data Tables + * [8.4.4](data_tables/Table8-4-4.md): Minimum Nominal Efficiency Levels for Low-Voltage Dry-Type Distribution Transformers + * [G3.1.1-1](data_tables/Table3-1-1-1.md): Baseline Building Vertical Fenestration Percentage of Gross Above-Grade-Wall Area + * G3.1.1-2: Baseline Service Water-Heating System + * G3.1.1-3: Baseline HVAC System Types + * G3.1.1-4: Baseline System Descriptions + * G3.1.2.6: Climate Conditions under which Economizers are Included for Comfort Cooling for Baseline Systems 3 through 8 and 11, 12, 13 + * G3.1.2.9: Baseline Fan Brake Horsepower + * G3.1.3.7: Type and Number of Chillers + * G3.1.3.11: Heat-Rejection Leaving Water Temperature + * G3.1.3.15: Part-Load Performance for VAV Fan Systems + * G3.4-1: Performance Rating Method Building Envelope Requirements for Climate Zones 0 and 1 (A,B) + * G3.4-2: Performance Rating Method Building Envelope Requirements for Climate Zone 2 (A,B) + * G3.4-3: Performance Rating Method Building Envelope Requirements for Climate Zone 3 (A,B,C) + * G3.4-4: Performance Rating Method Building Envelope Requirements for Climate Zone 4 (A,B,C) + * G3.4-5: Performance Rating Method Building Envelope Requirements for Climate Zone 5 (A,B,C) + * G3.4-6: Performance Rating Method Building Envelope Requirements for Climate Zone 6 (A,B) + * G3.4-7: Performance Rating Method Building Envelope Requirements for Climate Zone 7 + * G3.4-8: Performance Rating Method Building Envelope Requirements for Climate Zone 8 + * G3.5.1: Performance Rating Method Air Conditioners (efficiency ratings excludeing supply fan power) + * G3.5.2: Performance Rating Method Electrically Operated Unitary and Applied Heat Pumps -- Minimum Efficiency Requirements (efficiency ratings excluding supply fan power) + * G3.5.3: Performance Rating Method Water Chilling Packages -- Minimum Efficiency Requirements + * G3.5.4: Performance Rating Method Electrically Operated Packaged Terminal Air Conditioners, Packaged Terminal Heat Pumps (efficiency ratings excluding supply fan power) + * G3.5.5: Performance Rating Method Warm-Air Furnaces and Unit Heaters + * G3.5.6: Performance Rating Method Gas-Fired Boilers -- Minimum Efficiency Requirements + * G3.6: Performance Rating Method Lighting Power Densities for Building Exteriors + * G3.7: Performance Rating Method Lighting Power Density Allowances and Occupancy Sensor Reductions Using the Space-by-Space Method + * G3.8: Performance Rating Method Lighting Power Densities Using the Building Area Method + * G3.9.1: Performance Rating Method Motor Efficiency Requirements + * G3.9.2: Performance Rating Method Baseline Elevator Motor + * G3.9.3: Performance Rating Method Hydraulic Elevator Motor Efficiency + * G3.10.1: Performance Rating Method Commercial Refrigerators and Freezers + * G3.10.2: Performance Rating Method Commercial Refrigeration + +## Section 0 - General Requirements + +## Section 1 - General + *[1-1](section1/Rule1-1.md): Building performance factors shall be from Standard 90.1-2019, Table 4.2.1.1, based on the building area type and climate zone. For building area types not listed in Table 4.2.1.1 “All others.” shall be used to determine the BPF. + *[1-2](section1/Rule1-2.md): The performance of the proposed design is calculated in accordance with Standard 90.1-2019 Appendix G, where Performance Cost Index = Proposed building performance (PBP) /Baseline building performance (BBP), where both the PBP and the BBP include all end-use load components associated with the building when calculating the Performance Cost Index (PCI). + *[1-3](section1/Rule1-3.md): The Performance Cost Index-Target (PCIt) shall be calculated using the procedures defined in Section 4.2.1.1. The PCIt shall be equal to [baseline building unregulated energy cost (BBUEC) + BPF x baseline building regulated energy cost (BBREC)]/ BBP + *[1-4](section1/Rule1-4.md): The PCI shall be less than or equal to the PCIt when calculated in accordance with Standard 90.1 2019, Section 4.2.1.1. + *[1-5](section1/Rule1-5.md): When on-site renewable energy generation exceeds the thresholds defined in Section 4.2.1.1, the methodology defined in this section shall be used to calculate the PCIt. + *[1-6](section1/Rule1-6.md): On-site renewable energy shall not be included in the baseline building performance. + +## Section 3 - Space Use Classification + +## Section 4 - Schedules + * [4-1](section4/4-1.md): Temperature Control Setpoints shall be the same for proposed design and baseline building design. + * [4-2](section4/4-2.md): Humidity Control Setpoints shall be the same for proposed design and baseline building design. + * [4-3](section4/4-3.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied. + * [4-4](section4/4-4.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d, heating and/or cooling system fans shall simulated to be cycled ON and OFF to meet heating and cooling loads during occupied hours. + * [4-5](section4/4-5.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours. + * [4-6](section4/4-6.md): HVAC fans in the proposed design model shall remain on during unoccupied hours in systems primarily serving computer rooms. + * [4-8](section4/4-8.md): Schedules may be allowed to differ between proposed design and baseline building design when necessary to model nonstandard efficiency measures, such as automatic natural ventilation controls, automatic demand control ventilation controls. In no case shall schedules differ where the controls are manual. + * [4-10](section4/4-10.md): Schedules for HVAC fans that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules for the proposed building exceptions #s 2 and 3. + * [4-11](section4/4-11.md): Fan schedules shall be modeled identically in the baseline and proposed unless Table G3.1 Section 4 baseline exceptions are applicable. Fan Schedules may be allowed to differ when Section 4 Baseline Column Exceptions #1, #2 Or #3 are applicable. + * [4-12](section4/4-12.md): For Systems 6 and 8, only the terminal-unit fan and reheat coil shall be energized to meet heating set point during unoccupied hours. + * [4-15](section4/4-15.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the B_RMD. + * [4-16](section4/4-16.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in this table, heating and/or cooling system fans shall not be simulated as running continuously during occupied hours but shall be cycled ON and OFF to meet heating and cooling loads during all hours in the B_RMD. + * [4-17](section4/4-17.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the B_RMD. + * [4-18](section4/4-18.md): HVAC fans in the baseline design model shall remain on during unoccupied hours in systems primarily serving computer rooms in the B_RMD. + * [4-19](section4/4-19.md): Schedules for HVAC fans in the baseline design model that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules per the proposed column exceptions #s 2 and 3. + +## Section 5 - Building Envelope + * [5-1](section5/Rule5-1.md): There are four baseline rotations (i.e., four baseline models differing in azimuth by 90 degrees and four sets of baseline model results) if vertical fenestration area per each orientation differ by more than 5%. + * [5-2](section5/Rule5-2.md): Baseline building must be modeled so that it doesn't shade itself + * [5-3](section5/Rule5-3.md): Baseline roof assemblies must conform with assemblies detailed in Appendix A ( Above-grade walls—Steel-framed A2.2) + * [5-4](section5/Rule5-4.md): Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8. + * [5-5](section5/Rule5-5.md): Baseline below-grade walls shall conform with assemblies detailed in Appendix A Concrete block, A4) + * [5-6](section5/Rule5-6.md): Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8 + * [5-7](section5/Rule5-7.md): Baseline above-grade wall assemblies must conform with assemblies detailed in Appendix A (Steel-framed A3.3) + * [5-8](section5/Rule5-8.md): Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8 + * [5-9](section5/Rule5-9.md): Baseline floor assemblies must conform with assemblies detailed in Appendix A (Floors—Steel-joist (A5.3)) + * [5-10](section5/Rule5-10.md): Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9 + * [5-11](section5/Rule5-11.md): Baseline slab-on-grade assemblies must conform with assemblies detailed in Appendix A ( Slab-on-grade floors shall match the F-factor for unheated slabs from the same tables (A6).) + * [5-12](section5/Rule5-12.md): Baseline slab-on-grade floor assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9 + * [5-13](section5/Rule5-13.md): Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same in the baseline as in the proposed design. + * [5-14](section5/Rule5-14.md): For building area types included in Table G3.1.1-1, vertical fenestration areas for new buildings and additions shall equal that in Table G3.1.1-1 based on the area of gross above-grade walls that separate conditioned spaces and semi-heated spaces from the exterior + * [5-15](section5/Rule5-15.md): For building areas not shown in Table G3.1.1-1, vertical fenestration areas for new buildings and additions shall equal that in the proposed design or 40% of gross above-grade wall area, whichever is smaller. + * [5-16](section5/Rule5-16.md): The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design. + * [5-17](section5/Rule5-17.md): The baseline fenestration area for an existing building shall equal the existing fenestration area prior to the proposed work. + * [5-18](section5/Rule5-18.md): Automatically controlled dynamic glazing may be modeled. Manually controlled dynamic glazing shall use the average of the minimum and maximum SHGC and VT. + * [5-19](section5/Rule5-19.md): Vertical fenestration U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMD. + * [5-20](section5/Rule5-20.md): Fenestration (window and skylight) SHGC in the proposed model must match the user model. + * [5-21](section5/Rule5-21.md): Subsurface that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design. + * [5-22](section5/Rule5-22.md): Baseline fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled. + * [5-23](section5/Rule5-23.md): Manual fenestration shading devices, such as blinds or shades, shall be modeled or not modeled the same as in the baseline building design. + * [5-24](section5/Rule5-24.md): If skylight area in the proposed design is 3% or less of the roof surface, the skylight area in baseline shall be equal to that in the proposed design. + * [5-25](section5/Rule5-25.md): If the skylight area of the proposed design is greater than 3%, baseline skylight area shall be decreased by an identical percentage in all roof components in which skylights are located to reach 3%. + * [5-26](section5/Rule5-26.md): Skylight area must be allocated to surfaces in the same proportion in the baseline as in the proposed design; Skylight orientation and tilt shall be the same as in the proposed design. + * [5-27](section5/Rule5-27.md): Skylight U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8. + * [5-28](section5/Rule5-28.md): Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage. + * [5-29](section5/Rule5-29.md): The baseline roof surfaces shall be modeled using a thermal emittance of 0.9. + * [5-30](section5/Rule5-30.md): The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model. + * [5-31](section5/Rule5-31.md): The baseline roof surfaces shall be modeled using a solar reflectance of 0.30. + * [5-32](section5/Rule5-32.md): The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model. + * [5-33](section5/Rule5-33.md): The infiltration modeling method in the baseline includes adjustment for weather and building operation. + * [5-34](section5/Rule5-34.md): The infiltration shall be modeled using the same methodology and adjustments for weather and building operation in both the proposed design and the baseline building design. + * [5-35](section5/Rule5-35.md): The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4. + * [5-36](section5/Rule5-36.md): The air leakage rate in unconditioned and unenclosed spaces must be the same the baseline and proposed design. + * [5-37](section5/Rule5-37.md): The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4. Exceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured. + * [5-38](section5/Rule5-38.md): It is acceptable to use either an annual average ground temperature or monthly average ground temperatures for calculation of heat loss through basement floors. + * [5-39](section5/Rule5-39.md): U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category. + * [5-40](section5/Rule5-40.md): Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be modeled with the same thermal emittance and solar reflectance in the baseline as in the proposed design. + +## Section 6 - Lighting + * [6-1](section6/Rule6-1.md): Proposed building interior lighting power shall not exceel total interior lighting power allowance determined using either G3.7 or G3.8 + * [6-2](section6/Rule6-2.md): Spaces in proposed building with hardwired lighting, including Hotel/Motel Guest Rooms, Dormitory Living Quarters interior lighting power >= Table 9.6.1. and Interior lighting power for 'Dwelling Units' space type in the proposed building shall be >= 0.60 W/ft2. + * [6-3](section6/Rule6-3.md): Where a complete lighting system exists, the actual lighting power for each thermal block shall be used in the model. + * [6-4](section6/Rule6-4.md): Where a complete lighting system exists and where a lighting system has been designed and submitted with design documents, the baseline LPD is equal to expected value in Table G3.7. + * [6-5](section6/Rule6-5.md): Baseline building is modeled with automatic shutoff controls in buildings >5000 ft2 + * [6-6](section6/Rule6-6.md): Baseline building is not modeled with daylighting control + * [6-7](section6/Rule6-7.md): Proposed building is modeled with daylighting controls + * [6-8](section6/Rule6-8.md): Proposed building is modeled with additional occupancy sensor controls using occupancy sensor schedule reduction factors specified in Table G3.7. + * [6-9](section6/Rule6-9.md): Proposed building is modeled with other programmable lighting controls through a 10% schedule reduction in buildings less than 5,000sq.ft. + * [6-10](section6/Rule6-10.md): Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less. + +## Section 10 - Airside systems + * [10-1](section10/10-1.md): When the proposed design includes humidification and complies with Section 6.5.2.4, then the baseline building design shall use nonadiabatic humidification. When the proposed design includes humidification and does not comply with Section 6.5.2.4 then the baseline building design shall use adiabatic humidification. + * [10-3](section10/10-3.md): For systems serving computer rooms, the baseline building design shall not have reheat for the purpose of dehumidification. + * [10-4](section10/10-4.md): Baseline HVAC systems using fossil fuel shall be modeled using natural gas. Except where natural gas is not available for the proposed building site, propane shall be used as the heating fuel. + * [10-6](section10/10-6.md): For HVAC systems designed, mechanical cooling equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. + * [10-7](section10/10-7.md): Baseline shall be modeled with the COPnfcooling HVAC system efficiency per Tables G3.5.1-G3.5.6. Where multiple HVAC zones or residential spaces are combined into a single thermal block the cooling efficiencies (for baseline HVAC System Types 3 and 4) shall be based on the equipment capacity of the thermal block divided by the number of HVAC zones or residential spaces. + * [10-9](section10/10-9.md): Where multiple HVAC zones or residential spaces are combined into a single thermal block, baseline HVAC System Types 5 or 6 efficiencies shall be based on the cooling equipment capacity of a single floor. + * [10-10](section10/10-10.md): Where no heating system exists or no heating system has been submitted with design documents, the proposed building system type shall be the same system as modeled in the baseline building design and shall comply with but not exceed the requirements of Section 6. + * [10-11](section10/10-11.md): Except for spaces with baseline system 9 or 10, if no cooling system exists or no cooling system has been submitted with design documents, the proposed building cooling system type shall be the same as modeled in the baseline building design and shall comply with the requirements of Section 6. + * [10-13A](section10/10-13A.md): For HVAC systems designed, mechanical heating equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. + * [10-13B](section10/10-13B.md): For proposed HVAC systems designed, mechanical preheating equipment efficiencies shall be adjusted to remove the supply fan energy from the efficiency rating. + * [10-14](section10/10-14.md): Baseline shall be modeled with the heating HVAC system efficiency per Tables G3.5.1-G3.5.6 (applies only to the heating efficiency of baseline furnaces and heat pumps). Where multiple HVAC zones or residential spaces are combined into a single thermal block the heating efficiencies (for baseline HVAC System Types 3 and 4) shall be based on the equipment capacity of the thermal block divided by the number of HVAC zones or residential spaces. + * [10-15](section10/10-15.md): The proposed design includes humidification and the baseline building design has been modeled with humidification. + +## Section 11 - Service Hot Water System + * [11-1](section11/Rule11-1.md): Where a complete service water-heating system exists, the proposed design shall reflect the actual system type. Where a service water-heating system has been designed the service waterheating type shall be consistent with design documents. Where no service water-heating system exists or has been designed and submitted with design documents but the building will have service water-heating loads, a service water-heating system shall be modeled that matches the system type in the baseline building design. + * [11-6](section11/Rule11-6.md): Piping losses shall not be modeled. + * [11-7](section11/Rule11-7.md): Except in buildings that will have no service water heating loads, the service water heating system type in the baseline building design shall be as specified in Table G3.1.1-2 for each building area type in the proposed design. + * [11-8](section11/Rule11-8.md): One system per building area type shall be modeled in the baseline. + * [11-9](section11/Rule11-9.md): The baseline system must be sized according to Standard 90.1 2019, Section 7.4.1. + * [11-10](section11/Rule11-10.md): The service water heating system type in the baseline building design shall match the minimum efficiency requirements in Section 7.4.2. + * [11-11](section11/Rule11-11.md): For buildings that will have no service water-heating loads, no service water-heating shall be modeled in baseline building model. + * [11-12](section11/Rule11-12.md): For large, 24-hour-per-day facilities that meet the prescriptive criteria for use of condenser heat recovery systems described in Section 6.5.6.2, a system meeting the requirements of that section shall be included in the baseline building design regardless of the exceptions to Section 6.5.6.2. + * [11-13](section11/Rule11-13.md): Service water-heating energy consumption shall be calculated explicitly based upon the volume of service water heating required and the entering makeup water and the leaving service water-heating temperatures. Entering water temperatures shall be estimated based upon the location. Leaving temperatures shall be based upon the end-use requirements. + * [11-14](section11/Rule11-14.md): Where recirculation pumps are used to ensure prompt availability of service water-heating at the end use, the energy consumption of such pumps shall be calculated explicitly. + * [11-15](section11/Rule11-15.md): Service water loads and use shall be the same for both the proposed design and baseline building design. + * [11-16](section11/Rule11-16.md): Gas water heaters shall be modeled using natural gas as their fuel. Exceptions: Where natural gas is not available for the proposed building site, as determined by the rating authority, gas water heaters shall be modeled using propane as their fuel. + * [11-17](section11/Rule11-17.md): All buildings that will have service water heating loads must include those loads in the simulation + +## Section 12 - Receptacles and Other Loads + * [12-1](section12/Rule12-1.md): Receptacle and process power shall be modeled as identical to the proposed design + * [12-2](section12/Rule12-2.md): Depending on the space type, receptacle controls may be required by 90.1 Section 8.4.2. Receptacle schedules shall be modeled identically to the proposed design except when receptacle controls are specified in the proposed design for spaces where not required by Section 8.4.2. + * [12-3](section12/Rule12-3.md): When receptacle controls are specified in the proposed building design for spaces where not required by Standard 90.1 2019 Section 8.4.2, the hourly receptacle schedule shall be reduced as specified in Standard 90.1-2019 Table G3.1 Section 12 Proposed Building Performance column. + * [12-4](section12/Rule12-4.md): Computer room equipment schedules shall be modeled as a constant fraction of the peak design load per the following monthly schedule: Months 1, 5, 9 — 25%; Months 2, 6, 10 — 50%; Months 3, 7, 11 — 75%; Months 4, 8, 12 — 100%. + +## Section 15 - Distribution Transformers + * [15-1](section15/Rule15-1.md): Number of transformers modeled in User RMD and Baseline RMD are the same + * [15-2](section15/Rule15-2.md): Number of transformers modeled in User RMD and Baseline RMD are the same + * [15-3](section15/Rule15-3.md): User RMD transformer Name in Proposed RMD + * [15-4](section15/Rule15-4.md): User RMD transformer Name in Baseline RMD + * [15-5](section15/Rule15-5.md): Transformer efficiency reported in Baseline RMD equals Table 8.4.4 + * [15-6](section15/Rule15-6.md): Transformer efficiency reported in User RMD equals Table 8.4.4. + +## Section 16 - Elevators + * [16-1](section16/Rule16-1.md): The elevator peak motor power shall be calculated according to the equation in Table G3.1-16 + * [16-2](section16/Rule16-2.md): The baseline elevator motor use shall be modeled with the same schedule as the proposed design. + * [16-3](section16/Rule16-3.md): The elevator cab ventilation fan shall be modeled with the same schedule as the elevator motor. + * [16-4](section16/Rule16-4.md): The elevator cab lights shall be modeled with the same schedule as the elevator motor. + * [16-5](section16/Rule16-5.md): When included in the proposed design, the baseline elevator cab ventilation fan and lights shall operate continuously. + * [16-6](section16/Rule16-6.md): When included in the proposed design, the baseline elevator cab ventilation fan power shall be 0.33 W/cfm + * [16-7](section16/Rule16-7.md): When included in the proposed design, the baseline elevator cab lighting power density shall be 3.14 W/ft2 + +## Section 17 - Refrigeration + +## Section 18 - Air Side + * [18-1](section18/Rule18-1.md): HVAC system type selection is based on ASHRAE 90.1 G3.1.1 (a-h). + * [18-2](section18/Rule18-2.md): Does the modeled system serve the appropriate zones (one system per zone for system types 1, 2, 3, 4, 9, 10, 11, 12, and 13 and one system per floor for system types 5, 6, 7, and 8, with the exception of system types 5 or 7 serving laboratory spaces - these systems should serve ALL laboratory zones in the buidling). + * [18-23](section18/Rule18-23.md): The lab exhaust fan shall be modeled as constant horsepower (kilowatts) reflecting constant-volume stack discharge with outdoor air bypass in the baseline. + +## Section 19 - Air Side Baseline HVAC System + * [19-1](section19/Rule19-1.md): HVAC system coil capacities for the baseline building design shall be oversized by 15% for cooling and 25% for heating. + * [19-2](section19/Rule19-2.md): Baseline building plant capacities shall be based on coincident loads. + * [19-3](section19/Rule19-3.md): Weather conditions used in sizing runs to determine baseline equipment capacities shall be based either on design days developed using 99.6% heating design temperatures and 1% dry-bulb and 1% wet-bulb cooling design temperatures. + * [19-4](section19/Rule19-4.md): For baseline cooling sizing runs in residential dwelling units, the infiltration, occupants, lighting, gas and electricity using equipment hourly schedule shall be the same as the most used hourly weekday schedule from the annual simulation. + * [19-5](section19/Rule19-5.md): Unmet load hours for the proposed design shall not exceed 300 (of the 8760 hours simulated). + * [19-6](section19/Rule19-6.md): Unmet load hours for the baseline design shall not exceed 300 (of the 8760 hours simulated). + * [19-7](section19/Rule19-7.md): Minimum ventilation system outdoor air intake flow shall be the same for the proposed design and baseline building design except when any of the 4 exceptions defined in Section G3.1.2.5 are met. + * [19-8](section19/Rule19-8.md): Demand control ventilation is modeled in the baseline design in systems with outdoor air capacity greater than 3000 cfm serving areas with an average occupant design capacity greater than 100 people per 1000 ft^2. + * [19-9](section19/Rule19-9.md): Air economizers shall not be included in baseline HVAC Systems 1, 2, 9, and 10. + * [19-10](section19/Rule19-10.md): Air economizers shall be included in baseline HVAC Systems 3 through 8, and 11, 12, and 13 based on climate as specified in Section G3.1.2.6 with exceptions. + * [19-11](section19/Rule19-11.md): For systems that serve computer rooms, if the baseline system is HVAC System 11, it shall include an integrated fluid economizer meeting the requirements of Section 6.5.1.2 in the baseline building design. + * [19-12](section19/Rule19-12.md): The baseline system economizer high-limit shutoff shall be a dry-bulb fixed switch with set-point temperatures in accordance with the values in Table G3.1.2.7. + * [19-13](section19/Rule19-13.md): For baseline system types 1-8 and 11-13, system design supply airflow rates shall be based on a supply-air-to-room temperature set-point difference of 20°F or the minimum outdoor airflow rate, or the airflow rate required to comply with applicable codes or accreditation standards, whichever is greater. For systems with multiple zone thermostat setpoints, use the design set point that will result in the lowest supply air cooling set point or highest supply air heating set point. + * [19-14](section19/Rule19-14.md): For baseline system types 1-8 and 11-13, if return or relief fans are specified in the proposed design, the baseline building design shall also be modeled with fans serving the same functions and sized for the baseline system supply fan air quantity less the minimum outdoor air, or 90% of the supply fan air quantity, whichever is larger. + * [19-15](section19/Rule19-15.md): For baseline system types 9 & 10, the system design supply airflow rates shall be based on the temperature difference between a supply air temperature set point of 105°F and the design space-heating temperature set point, the minimum outdoor airflow rate, or the airflow rate required to comply with applicable codes or accreditation standards, whichever is greater. + * [19-16](section19/Rule19-16.md): For zones served by baseline system types 9 & 10, if the proposed design includes a fan or fans sized and controlled to provide non-mechanical cooling, the baseline building design shall include a separate fan to provide nonmechanical cooling, sized and controlled the same as the proposed design. + * [19-17](section19/Rule19-17.md): For baseline system 1 and 2, the total fan electrical power (Pfan) for supply, return, exhaust, and relief shall be = CFMs × 0.3, where, CFMs = the baseline system maximum design supply fan airflow rate, cfm. + * [19-18](section19/Rule19-18.md): For baseline systems 3 through 8, and 11, 12, and 13, the system fan electrical power for supply, return, exhaust, and relief shall be Pfan = bhp × 746/fan motor efficiency. Where, bhp = brake horsepower of baseline fan motor from Table G3.1.2.9; fan motor efficiency = the efficiency from Table G3.9.1 for the next motor size greater than the bhp using a totally enclosed fan cooled motor at 1800 rpm. + * [19-19](section19/Rule19-19.md): For baseline systems 9 and 10 the system fan electrical power (Pfan) for supply, return, exhaust, and relief shall be CFMs × 0.3, where, CFMs = the baseline system maximum design supply fan airflow rate, cfm. If modeling a non-mechanical cooling fan is required by Section G3.1.2.8.2, there is a fan power allowance of Pfan = CFMnmc × 0.054, where, CFMnmc = the baseline non-mechanical cooling fan airflow, cfm for the non-mechanical cooling. + * [19-20](section19/Rule19-20.md): The calculated system fan power shall be distributed to supply, return, exhaust, and relief fans in the same proportion as the proposed design. + * [19-21](section19/Rule19-21.md): Baseline systems with >= 5,000 CFM supply air and >= 70 %OA shall have energy recovery modeled in the baseline design model (this RDS does not check the modeled value for the enthalpy recovery ratio). + * [19-22](section19/Rule19-22.md): Baseline systems modeled with exhaust air energy recovery shall allow bypass or control heat recovery system to permit air economizer operation. + * [19-23](section19/Rule19-23.md): For cooling sizing runs, schedules for internal loads, including those used for infiltration, occupants, lighting, gas and electricity using equipment, shall be equal to the highest hourly value used in the annual simulation runs and applied to the entire design day. For heating sizing runs, schedules for internal loads, including those used for occupants, lighting, gas and electricity using equipment, shall be equal to the lowest hourly value used in the annual simulation runs, and schedules for infiltration shall be equal to the highest hourly value used in the annual simulation runs and applied to the entire design day. + * [19-24](section19/Rule19-24.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the proposed design. + * [19-25](section19/Rule19-25.md): Schedules for HVAC fans that provide outdoor air for ventilation shall run continuously whenever spaces are occupied in the baseline design. + * [19-26](section19/Rule19-26.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the proposed design. + * [19-27](section19/Rule19-27.md): HVAC fans shall remain on during unoccupied hours in spaces that have health and safety mandated minimum ventilation requirements during unoccupied hours in the baseline design. + * [19-28](section19/Rule19-28.md): Schedules for HVAC fans that provide outdoor air for ventilation in the proposed design shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules for the proposed building exceptions #s 2 and 3. + * [19-29](section19/Rule19-29.md): Schedules for HVAC fans in the baseline design model that provide outdoor air for ventilation shall be cycled ON and OFF to meet heating and cooling loads during unoccupied hours excluding HVAC systems that meet Table G3.1-4 Schedules per the proposed column exceptions #s 2 and 3. + * [19-30](section19/Rule19-30.md): For Systems 6 and 8, only the terminal-unit fan and reheat coil shall be energized to meet heating set point during unoccupied hours in the baseline design. + * [19-31](section19/Rule19-31.md): HVAC fans in the proposed design model shall remain on during unoccupied hours in systems primarily serving computer rooms. + * [19-32](section19/Rule19-32.md): HVAC fans in the baseline design model shall remain on during unoccupied hours in systems primarily serving computer rooms in the B_RMR. + * [19-33](section19/Rule19-33.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d, heating and/or cooling system fans shall simulated to be cycled ON and OFF to meet heating and cooling loads during occupied hours in the proposed design. + * [19-34](section19/Rule19-34.md): Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in this table, heating and/or cooling system fans shall not be simulated as running continuously during occupied hours but shall be cycled ON and OFF to meet heating and cooling loads during all hours in the baseline design. + * [19-35](section19/Rule19-35.md): For baseline systems serving only laboratory spaces that are prohibited from recirculating return air by code or accreditation standards, the baseline system shall be modeled as 100% outdoor air. Rule only applies when baseline outdoor air CFM is modeled as greater than proposed design outdoor air CFM. + * [19-36](section19/Rule19-36.md): Baseline systems required to model energy recovery per G3.1.2.10 shall be modeled with a 50% enthalpy recovery ratio. + * [19-37](section19/Rule19-37.md): Weather conditions used in sizing runs for the 99.6% heating design temperature and 1% dry-bulb and 1% wet-bulb cooling design temperatures are consistent with the site location. + +## Section 21 - Central Heating Hot Water Systems + * [21-1](section21/Rule21-1.md): For systems using purchased hot water or steam, the heating source shall be modeled as purchased hot water or steam in both the proposed design and baseline building design. If any system in the proposed design uses purchased hot water or steam, all baseline systems with hot water coils shall use the same type of purchased hot water or steam. + * [21-2](section21/Rule21-2.md): For purchased HW/steam in the proposed model, the baseline shall have the same number of pumps as proposed + * [21-3](section21/Rule21-3.md): Heating hot water plant capacity shall be based on coincident loads. + * [21-4](section21/Rule21-4.md): When baseline building does not use purchased heat, baseline systems 1,5,7,11,12 shall be modeled with natural draft boilers. + * [21-5](section21/Rule21-5.md): The baseline building design boiler plant shall be modeled as having a single boiler if the baseline building design plant serves a conditioned floor area of 15,000sq.ft. or less, and as having two equally sized boilers for plants serving more than 15,000sq.ft. + * [21-6](section21/Rule21-6.md): When baseline building includes two boilers each shall stage as required by load. + * [21-7](section21/Rule21-7.md): When baseline building requires boilers, systems 1,5,7,11 and 12 - Model HWST = 180F and return design temp = 130F. + * [21-8](section21/Rule21-8.md): When the baseline building requires boilers, (for baseline system type = 1,5,7,11 and 12), HWST for the baseline building shall be reset using an outdoor air dry-bulb reset schedule. 180F at 20F OAT, 150Fat 50F OAT, ramped linerarly between 150F and 180F. + * [21-9](section21/Rule21-9.md): When baseline building includes boilers, Hot Water Pump Power = 19W/gpm. + * [21-10](section21/Rule21-10.md): When the building is modeled with HHW plant (served by either boiler(s) or purchased hot water/steam), the hot water pump shall be modeled as riding the pump curve if the hot water system serves less than 120,000 ft^2 otherwise it shall be modeled with a VFD. + * [21-11](section21/Rule21-11.md): When the system uses boilers the hot water system shall be modeled as primary only. + * [21-12](section21/Rule21-12.md): When the system uses boilers the hot water system shall be modeled with continuous variable flow. + * [21-13](section21/Rule21-13.md): When the system uses boilers the hot water system shall be modeled with a minimum turndown ratio of 0.25. + * [21-14](section21/Rule21-14.md): When the baseline building is modeled with a hot water plant, served by purchased HW system, hot water supply temperature reset is not modeled. + * [21-15](section21/Rule21-15.md): When the baseline building is modeled with a hot water plant, served by purchased HW system, the hot water pump power shall be 14 W/gpm. + * [21-16](section21/Rule21-16.md): Baseline shall have only one heating hot water plant. + * [21-17](section21/Rule21-17.md): All boilers in the baseline building design shall be modeled at the minimum efficiency levels, both part load and full load, in accordance with Tables G3.5.6. + * [21-18](section21/Rule21-18.md): For baseline building, fossil fuel systems shall be modeled using natural gas as their fuel source. + +## Section 22 - Central Chilled Water Systems + * [22-1](section22/Rule22-1.md): Baseline chilled water design supply temperature shall be modeled at 44F. + * [22-2](section22/Rule22-2.md): Baseline chilled water design supply temperature shall be modeled at 44F. + * [22-3](section22/Rule22-3.md): For Baseline chilled water loop that is not purchased cooling, chilled-water supply temperature shall be reset based on outdoor dry-bulb temperature if loop does not serve any Baseline System Type-11. + * [22-4](section22/Rule22-4.md): For Baseline chilled water loop that is not purchased chilled water and does not serve any computer room HVAC systems, chilled-water supply temperature shall be reset using the following schedule: 44F at outdoor dry-bulb temperature of 80F and above, 54F at 60F and below, and ramped linearly between 44F and 54F at temperature between 80F and 60F. + * [22-5](section22/Rule22-5.md): For Baseline chilled water loop that is not purchased chilled water and serves computer room HVAC systems (System Type-11), chilled-water supply temperature shall be reset higher based on the HVAC system requiring the most cooling. + * [22-6](section22/Rule22-6.md): For Baseline chilled water loop that is not purchased chilled water and serves computer room HVAC systems (System Type-11), The maximum reset chilled-water supply temperature shall be 54F. + * [22-7](section22/Rule22-7.md): Baseline chilled water system that does not use purchased chilled water shall be modeled as primary/secondary systems. + * [22-8](section22/Rule22-8.md): For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary pump shall be modeled with variable-speed drives. + * [22-9](section22/Rule22-9.md): For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary loop shall be modeled with a minimum flow of 25% of the design flow rate. + * [22-10](section22/Rule22-10.md): For Baseline chilled water system with cooling capacity less than 300ton, the secondary pump shall be modeled as riding the pump curve. For Baseline chilled water system with cooling capacity of 300 tons or more, the secondary pump shall be modeled with variable-speed drives. + * [22-11](section22/Rule22-11.md): For Baseline chilled-water system that does not use purchased chilled water, variable-flow secondary pump shall be modeled as 13W/gpm at design conditions. + * [22-12](section22/Rule22-12.md): The heat rejection system shall be a single loop, modeled with a single cooling tower. + * [22-13](section22/Rule22-13.md): The baseline heat rejection loop shall be an axial-fan open circuit cooling tower. + * [22-14](section22/Rule22-14.md): The baseline heat-rejection device shall have a design temperature rise of 10°F. + * [22-15](section22/Rule22-15.md): Heat Rejection Device Approach calaculated correctly (T/F), Approach = 25.72-(0.24*WB). + * [22-16](section22/Rule22-16.md): The baseline condenser-water design supply temperature shall be calculated using the cooling tower approach to the 0.4% evaporation design wet-bulb temperature, valid for wet-bulbs from 55°F to 90°F. + * [22-17](section22/Rule22-17.md): The baseline heat rejection device shall have an efficiency of 38.2 gpm/hp. + * [22-18](section22/Rule22-18.md): The baseline heat rejection device shall be modeled with variable speed fan control. + * [22-19](section22/Rule22-19.md): The tower shall be controlled to maintain a leaving water temperature, where weather permits. + * [22-20](section22/Rule22-20.md): The baseline minimum condenser water reset temperature is per Table G3.1.3.11. + * [22-21](section22/Rule22-21.md): The baseline building design’s chiller plant shall be modeled with chillers having the type as indicated in Table G3.1.3.7 as a function of building peak cooling load. + * [22-22](section22/Rule22-22.md): The baseline chiller efficiencies shall be modeled at the minimum efficiency levels for full load, in accordance with Tables G3.5.3. + * [22-23](section22/Rule22-23.md): Each baseline chiller shall be modeled with separate chilled water pump interlocked to operate with the associated chiller. + * [22-24](section22/Rule22-24.md): For baseline chilled-water systems served by chiller(s), the primary pump shall be modeled as constant volume. + * [22-25](section22/Rule22-25.md): For chilled-water systems served by chiller(s) and does not serve baseline System-11, the baseline building constant-volume primary pump power shall be modeled as 9 W/gpm. + * [22-26](section22/Rule22-26.md): For chilled-water systems served by chiller(s) and serves baseline System-11, the baseline building constant-volume primary pump power shall be modeled as 12 W/gpm. + * [22-27](section22/Rule22-27.md): Each baseline chiller shall be modeled with separate condenser-water pump interlocked to operate with the associated chiller. + * [22-28](section22/Rule22-28.md): The baseline building design condenser-water pump shall be modeled as constant volume. + * [22-29](section22/Rule22-29.md): For chilled-water systems served by chiller(s) and does not serve baseline System-11, condenser-water pump power shall be 19 W/gpm. + * [22-30](section22/Rule22-30.md): For chilled-water systems served by chiller(s) and serves baseline System-11, condenser-water pump power shall be 22 W/gpm. + * [22-31](section22/Rule22-31.md): The baseline building design’s chiller plant shall be modeled with chillers having the number as indicated in Table G3.1.3.7 as a function of building peak cooling load. + * [22-32](section22/Rule22-32.md): The baseline chiller efficiencies shall be modeled at the minimum efficiency levels for part load, in accordance with Tables G3.5.3. + * [22-33](section22/Rule22-33.md): Baseline chilled water system that does not use purchased chilled water must only have no more than one CHW plant. + * [22-34](section22/Rule22-34.md): For baseline cooling chilled water plant that is served by chiller(s), the capacity shall be based on coincident loads. + * [22-35](section22/Rule22-35.md): Baseline systems served by purchased chilled water shall not be modeled with chilled water reset. + * [22-36](section22/Rule22-36.md): Baseline chilled water system that does not use purchased chilled water shall be modeled with constant flow primary loop and variable flow secondary loop. + * [22-37](section22/Rule22-37.md): Baseline systems served by purchased chilled water loop shall be modeled with a distribution pump with a variable speed drive. + * [22-38](section22/Rule22-38.md): Baseline systems served by purchased chilled water loop shall have a minimum flow setpoint of 25%. + * [22-39](section22/Rule22-39.md): Baseline systems served by purchased chilled water loop shall be modeled with a distribution pump whose pump power is 16W/gpm. + * [22-40](section22/Rule22-40.md): For systems using purchased chilled water, the cooling source shall be modeled as purchased chilled water in both the proposed design and baseline building design. If any system in the proposed design uses purchased chilled water, all baseline systems with chilled water coils shall use purchased chilled water. On-site chillers and direct expansion equipment shall not be modeled in the baseline building design. + * [22-41](section22/Rule22-41.md): Purchased CHW systems must be modeled with only one external fluid loop in the baseline design. + +## Section 23 - Chilled Water Systems and Condenser Water Systems + * [23-1](section23/Rule23-1.md): System 2 and 4 - Electric air-source heat pumps shall be modeled with electric auxiliary heat and an outdoor air thermostat. The systems shall be controlled to energize auxiliary heat only when the outdoor air temperature is less than 40°F. + * [23-2](section23/Rule23-2.md): For baseline systems 5-8 and 11, the SAT is reset higher by 5F under minimum cooling load conditions. + * [23-3](section23/Rule23-3.md): System 5, 6, 7 and 8 minimum volume setpoint shall be 30% of zone peak airflow, minimum outdoor airflow, or rate required to comply with minimum accreditation standards whichever is larger. + * [23-4](section23/Rule23-4.md): Baseline systems 5 & 7 serving lab spaces per G3.1.1c shall reduce lab exhaust and makeup air during unoccupied periods to 50% of zone peak airflow, the minimum outdoor airflow, or rate required to comply with minimum accreditation standards whichever is larger. + * [23-5](section23/Rule23-5.md): For baseline systems 6 and 8, Fans in parallel VAV fan-powered boxes shall run as the first stage of heating before the reheat coil is energized. + * [23-6](section23/Rule23-6.md): For baseline systems 6 and 8, Fans in parallel VAV fan-powered boxes shall be sized for 50% of the peak design primary air (from the VAV air-handling unit) flow rate and shall be modeled with 0.35 W/cfm fan power. + * [23-7](section23/Rule23-7.md): Systems 6&8: Supply air temperature setpoint shall be constant at the design condition. + * [23-8](section23/Rule23-8.md): System 5-8 and 11 - part load VAV fan power shall be modeled using either method 1 or 2 in Table G3.1.3.15. This rule will only validate data points from Method-1 Part-load Fan Power Data. However, both methods are equivalent. When modeling inputs are based on Method 2, values should be converted to Method 1 when writing to RMD. + * [23-9](section23/Rule23-9.md): System 11 Minimum volume setpoint shall be the largest of 50% of the maximum design airflow rate, the minimum ventilation airflow rate or the airflow required to comply with codes or accredidation standards. + * [23-10](section23/Rule23-10.md): System 11 Fan volume shall be reset from 100% airflow at 100% load to minimum airflow at 50% load. + * [23-11](section23/Rule23-11.md): System 11 Supply air temperature shall be reset from minimum supply air temp at 50% cooling load to room temp at 0% cooling load. OR the SAT is reset higher by 5F under minimum cooling load conditions. + * [23-12](section23/Rule23-12.md): System 11 in heating mode supply air temperature shall be modulated to maintain space temp and airflow shall be fixed at minimum airflow. + * [23-13](section23/Rule23-13.md): If proposed design includes humidistatic controls then the baseline shall use mechanical cooling for dehumidification and shall reheat to avoid overcooling. + * [23-14](section23/Rule23-14.md): If the baseline system does not comply with exceptions in Section 6.5.2.3 then only 25% of the system reheat energy shall be included in the baseline building performance. + * [23-15](section23/Rule23-15.md): Dehumidification reheat shall be the same as the system heating type. + * [23-16](section23/Rule23-16.md): Systems 5 - 8, the baseline system shall be modeled with preheat coils controlled to a fixed set point 20F less than the design room heating temperature setpoint. + * [23-17](section23/Rule23-17.md): System 2 and 4 - Electric air-source heat pumps shall be modeled to continue to operate while auxiliary heat is energized. + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/archive/section15/Rule15-5.md b/docs/ashrae_90p1_2019/archive/section15/Rule15-5.md similarity index 100% rename from docs/archive/section15/Rule15-5.md rename to docs/ashrae_90p1_2019/archive/section15/Rule15-5.md diff --git a/docs/archive/section15/Rule15-6.md b/docs/ashrae_90p1_2019/archive/section15/Rule15-6.md similarity index 100% rename from docs/archive/section15/Rule15-6.md rename to docs/ashrae_90p1_2019/archive/section15/Rule15-6.md diff --git a/docs/data_tables/Table8-4-4.md b/docs/ashrae_90p1_2019/data_tables/Table8-4-4.md similarity index 100% rename from docs/data_tables/Table8-4-4.md rename to docs/ashrae_90p1_2019/data_tables/Table8-4-4.md diff --git a/docs/data_tables/TableG3-1-1-1.md b/docs/ashrae_90p1_2019/data_tables/TableG3-1-1-1.md similarity index 100% rename from docs/data_tables/TableG3-1-1-1.md rename to docs/ashrae_90p1_2019/data_tables/TableG3-1-1-1.md diff --git a/docs/diagrams/Section15.png b/docs/ashrae_90p1_2019/diagrams/Section15.png similarity index 100% rename from docs/diagrams/Section15.png rename to docs/ashrae_90p1_2019/diagrams/Section15.png diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/expected_system_type_from_Table_G3_1_1a.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_HVAC_building_area_types_and_zones.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_lab_zones.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_building_total_lab_exhaust_from_zone_exhaust_fans.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_computer_zones_peak_cooling_load.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_number_of_floors.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_predominant_HVAC_building_area_type.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_HVAC_BAT.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_eflh.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zone_peak_internal_load_floor_area.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_computer_rooms.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/get_zones_on_same_floor.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_CZ_0_to_3a.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_space_a_computer_room.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_likely_a_vestibule.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_cooled.md diff --git a/docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_heated_and_not_cooled.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_heated_and_not_cooled.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_heated_and_not_cooled.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/G311_sub_functions/is_zone_mechanically_heated_and_not_cooled.md diff --git a/docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1c.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1c.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1c.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1c.md diff --git a/docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1d.md diff --git a/docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1e.md diff --git a/docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1f.md diff --git a/docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md b/docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md similarity index 100% rename from docs/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md rename to docs/ashrae_90p1_2019/ruleset_functions/G311_exceptions/does_zone_meet_G3_1_1g.md diff --git a/docs/ruleset_functions/aggregate_min_OA_schedule_across_zones.md b/docs/ashrae_90p1_2019/ruleset_functions/aggregate_min_OA_schedule_across_zones.md similarity index 100% rename from docs/ruleset_functions/aggregate_min_OA_schedule_across_zones.md rename to docs/ashrae_90p1_2019/ruleset_functions/aggregate_min_OA_schedule_across_zones.md diff --git a/docs/ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md b/docs/ashrae_90p1_2019/ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md similarity index 100% rename from docs/ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md rename to docs/ashrae_90p1_2019/ruleset_functions/are_all_hvac_sys_fan_objs_autosized.md diff --git a/docs/ruleset_functions/baseline_system_type_compare.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_system_type_compare.md similarity index 100% rename from docs/ruleset_functions/baseline_system_type_compare.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_system_type_compare.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_CHW_loops_purchased_cooling.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_chilled_water.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_cool_sources_none_or_null.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fan_configs_parallel.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_fans_null.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_electric.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_hot_water(hvac.id).md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heat_sources_none_or_null.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_attached_to_boiler.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_heating_loops_purchased_heating.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_supplies_ducted.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_CAV_With_None_Equal_to_Null.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/are_all_terminal_types_VAV.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/do_all_terminals_have_one_fan.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_each_zone_have_only_one_terminal.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/does_hvac_system_serve_single_zone.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/get_dict_with_terminal_units_and_zones.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_DX.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_fluid_loop.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none_or_non_mechanical.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none_or_non_mechanical.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none_or_non_mechanical.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_cooling_type_none_or_non_mechanical.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_CV.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fan_sys_VSD.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_boiler.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_attached_to_chiller.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_CHW.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_fluid_loop_purchased_heating.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_elec_resistance.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_fluid_loop.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_furnace.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_heating_type_heat_pump.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_attached_to_boiler.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheat_fluid_loop_purchased_heating.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_elec_resistance.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_sys_preheating_type_fluid_loop.md diff --git a/docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/baseline_hvac_sub_functions/is_hvac_system_multizone.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_1.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_1.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_10.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_10.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_10.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_10.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_11.1.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_11.1.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_11.1.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_11.1.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_11.2.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_11.2.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_11.2.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_11.2.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_12.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_12.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_12.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_12.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_13.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_13.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_13.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_13.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_1a.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1a.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_1a.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1a.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_1c.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1c.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_1c.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_1c.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_2.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_2.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_2.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_2.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_3.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_3.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_3.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_3.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_4.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_4.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_4.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_4.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_5.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_5.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_5.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_5.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_6.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_6.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_6.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_6.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_7.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_7.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_7.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_7.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_8.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_8.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_8.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_8.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_9.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_9.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_9.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_9.md diff --git a/docs/ruleset_functions/baseline_systems/is_baseline_system_9b.md b/docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_9b.md similarity index 100% rename from docs/ruleset_functions/baseline_systems/is_baseline_system_9b.md rename to docs/ashrae_90p1_2019/ruleset_functions/baseline_systems/is_baseline_system_9b.md diff --git a/docs/ruleset_functions/check_purchased_chw_hhw_status_dict.md b/docs/ashrae_90p1_2019/ruleset_functions/check_purchased_chw_hhw_status_dict.md similarity index 100% rename from docs/ruleset_functions/check_purchased_chw_hhw_status_dict.md rename to docs/ashrae_90p1_2019/ruleset_functions/check_purchased_chw_hhw_status_dict.md diff --git a/docs/ruleset_functions/compare_schedules.md b/docs/ashrae_90p1_2019/ruleset_functions/compare_schedules.md similarity index 100% rename from docs/ruleset_functions/compare_schedules.md rename to docs/ashrae_90p1_2019/ruleset_functions/compare_schedules.md diff --git a/docs/ruleset_functions/compare_swh_dist_systems_and_components.md b/docs/ashrae_90p1_2019/ruleset_functions/compare_swh_dist_systems_and_components.md similarity index 100% rename from docs/ruleset_functions/compare_swh_dist_systems_and_components.md rename to docs/ashrae_90p1_2019/ruleset_functions/compare_swh_dist_systems_and_components.md diff --git a/docs/ruleset_functions/get_BPF_building_area_types_and_zones.md b/docs/ashrae_90p1_2019/ruleset_functions/get_BPF_building_area_types_and_zones.md similarity index 100% rename from docs/ruleset_functions/get_BPF_building_area_types_and_zones.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_BPF_building_area_types_and_zones.md diff --git a/docs/ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md b/docs/ashrae_90p1_2019/ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md similarity index 100% rename from docs/ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_HVAC_systems_primarily_serving_comp_rooms.md diff --git a/docs/ruleset_functions/get_SWH_bats_and_SWH_use.md b/docs/ashrae_90p1_2019/ruleset_functions/get_SWH_bats_and_SWH_use.md similarity index 100% rename from docs/ruleset_functions/get_SWH_bats_and_SWH_use.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_SWH_bats_and_SWH_use.md diff --git a/docs/ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md b/docs/ashrae_90p1_2019/ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md similarity index 100% rename from docs/ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_SWH_components_associated_with_each_SWH_bat.md diff --git a/docs/ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md b/docs/ashrae_90p1_2019/ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md similarity index 100% rename from docs/ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_SWH_uses_associated_with_each_building_segment.md diff --git a/docs/ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md b/docs/ashrae_90p1_2019/ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md similarity index 100% rename from docs/ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_aggregated_zone_hvac_fan_operating_schedule.md diff --git a/docs/ruleset_functions/get_area_type_window_wall_areas.md b/docs/ashrae_90p1_2019/ruleset_functions/get_area_type_window_wall_areas.md similarity index 100% rename from docs/ruleset_functions/get_area_type_window_wall_areas.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_area_type_window_wall_areas.md diff --git a/docs/ruleset_functions/get_baseline_system_types.md b/docs/ashrae_90p1_2019/ruleset_functions/get_baseline_system_types.md similarity index 100% rename from docs/ruleset_functions/get_baseline_system_types.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_baseline_system_types.md diff --git a/docs/ruleset_functions/get_building_scc_skylight_roof_ratios.md b/docs/ashrae_90p1_2019/ruleset_functions/get_building_scc_skylight_roof_ratios.md similarity index 100% rename from docs/ruleset_functions/get_building_scc_skylight_roof_ratios.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_building_scc_skylight_roof_ratios.md diff --git a/docs/ruleset_functions/get_building_segment_SWH_bat.md b/docs/ashrae_90p1_2019/ruleset_functions/get_building_segment_SWH_bat.md similarity index 100% rename from docs/ruleset_functions/get_building_segment_SWH_bat.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_building_segment_SWH_bat.md diff --git a/docs/ruleset_functions/get_building_segment_skylight_roof_areas.md b/docs/ashrae_90p1_2019/ruleset_functions/get_building_segment_skylight_roof_areas.md similarity index 100% rename from docs/ruleset_functions/get_building_segment_skylight_roof_areas.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_building_segment_skylight_roof_areas.md diff --git a/docs/ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md b/docs/ashrae_90p1_2019/ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md similarity index 100% rename from docs/ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_dict_of_zones_and_terminal_units_served_by_hvac_sys.md diff --git a/docs/ruleset_functions/get_dict_of_zones_hvac_sys_serving_specific_floor.md b/docs/ashrae_90p1_2019/ruleset_functions/get_dict_of_zones_hvac_sys_serving_specific_floor.md similarity index 100% rename from docs/ruleset_functions/get_dict_of_zones_hvac_sys_serving_specific_floor.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_dict_of_zones_hvac_sys_serving_specific_floor.md diff --git a/docs/ruleset_functions/get_energy_required_to_heat_swh_use.md b/docs/ashrae_90p1_2019/ruleset_functions/get_energy_required_to_heat_swh_use.md similarity index 100% rename from docs/ruleset_functions/get_energy_required_to_heat_swh_use.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_energy_required_to_heat_swh_use.md diff --git a/docs/ruleset_functions/get_fan_object_electric_power.md b/docs/ashrae_90p1_2019/ruleset_functions/get_fan_object_electric_power.md similarity index 100% rename from docs/ruleset_functions/get_fan_object_electric_power.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_fan_object_electric_power.md diff --git a/docs/ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_power_flow.md b/docs/ashrae_90p1_2019/ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_power_flow.md similarity index 100% rename from docs/ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_power_flow.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_fan_system_object_supply_return_exhaust_relief_total_power_flow.md diff --git a/docs/ruleset_functions/get_fuels_modeled_in_RMD.md b/docs/ashrae_90p1_2019/ruleset_functions/get_fuels_modeled_in_RMD.md similarity index 100% rename from docs/ruleset_functions/get_fuels_modeled_in_RMD.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_fuels_modeled_in_RMD.md diff --git a/docs/ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md b/docs/ashrae_90p1_2019/ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md similarity index 100% rename from docs/ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_heat_rejection_loops_connected_to_baseline_systems.md diff --git a/docs/ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md b/docs/ashrae_90p1_2019/ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md similarity index 100% rename from docs/ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_hvac_sys_and_assoc_zones_largest_exhaust_source.md diff --git a/docs/ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md b/docs/ashrae_90p1_2019/ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md similarity index 100% rename from docs/ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_hvac_systems_5_6_serving_multiple_floors_b.md diff --git a/docs/ruleset_functions/get_hvac_systems_serving_zone_health_safety_vent_reqs.md b/docs/ashrae_90p1_2019/ruleset_functions/get_hvac_systems_serving_zone_health_safety_vent_reqs.md similarity index 100% rename from docs/ruleset_functions/get_hvac_systems_serving_zone_health_safety_vent_reqs.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_hvac_systems_serving_zone_health_safety_vent_reqs.md diff --git a/docs/ruleset_functions/get_hvac_zone_list_w_area.md b/docs/ashrae_90p1_2019/ruleset_functions/get_hvac_zone_list_w_area.md similarity index 100% rename from docs/ruleset_functions/get_hvac_zone_list_w_area.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_hvac_zone_list_w_area.md diff --git a/docs/ruleset_functions/get_hw_loop_zone_list_w_area.md b/docs/ashrae_90p1_2019/ruleset_functions/get_hw_loop_zone_list_w_area.md similarity index 100% rename from docs/ruleset_functions/get_hw_loop_zone_list_w_area.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_hw_loop_zone_list_w_area.md diff --git a/docs/ruleset_functions/get_lab_zone_hvac_systems.md b/docs/ashrae_90p1_2019/ruleset_functions/get_lab_zone_hvac_systems.md similarity index 100% rename from docs/ruleset_functions/get_lab_zone_hvac_systems.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_lab_zone_hvac_systems.md diff --git a/docs/ruleset_functions/get_lighting_status_type.md b/docs/ashrae_90p1_2019/ruleset_functions/get_lighting_status_type.md similarity index 100% rename from docs/ruleset_functions/get_lighting_status_type.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_lighting_status_type.md diff --git a/docs/ruleset_functions/get_list_hvac_systems_associated_with_zone.md b/docs/ashrae_90p1_2019/ruleset_functions/get_list_hvac_systems_associated_with_zone.md similarity index 100% rename from docs/ruleset_functions/get_list_hvac_systems_associated_with_zone.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_list_hvac_systems_associated_with_zone.md diff --git a/docs/ruleset_functions/get_min_OA_CFM_sch_zone.md b/docs/ashrae_90p1_2019/ruleset_functions/get_min_OA_CFM_sch_zone.md similarity index 100% rename from docs/ruleset_functions/get_min_OA_CFM_sch_zone.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_min_OA_CFM_sch_zone.md diff --git a/docs/ruleset_functions/get_most_used_weekday_hourly_schedule.md b/docs/ashrae_90p1_2019/ruleset_functions/get_most_used_weekday_hourly_schedule.md similarity index 100% rename from docs/ruleset_functions/get_most_used_weekday_hourly_schedule.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_most_used_weekday_hourly_schedule.md diff --git a/docs/ruleset_functions/get_opaque_surface_type.md b/docs/ashrae_90p1_2019/ruleset_functions/get_opaque_surface_type.md similarity index 100% rename from docs/ruleset_functions/get_opaque_surface_type.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_opaque_surface_type.md diff --git a/docs/ruleset_functions/get_primary_secondary_loops_dict.md b/docs/ashrae_90p1_2019/ruleset_functions/get_primary_secondary_loops_dict.md similarity index 100% rename from docs/ruleset_functions/get_primary_secondary_loops_dict.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_primary_secondary_loops_dict.md diff --git a/docs/ruleset_functions/get_proposed_hvac_modeled_with_virtual_cooling.md b/docs/ashrae_90p1_2019/ruleset_functions/get_proposed_hvac_modeled_with_virtual_cooling.md similarity index 100% rename from docs/ruleset_functions/get_proposed_hvac_modeled_with_virtual_cooling.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_proposed_hvac_modeled_with_virtual_cooling.md diff --git a/docs/ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md b/docs/ashrae_90p1_2019/ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md similarity index 100% rename from docs/ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_proposed_hvac_modeled_with_virtual_heating.md diff --git a/docs/ruleset_functions/get_rmi_scc_window_wall_ratios.md b/docs/ashrae_90p1_2019/ruleset_functions/get_rmi_scc_window_wall_ratios.md similarity index 100% rename from docs/ruleset_functions/get_rmi_scc_window_wall_ratios.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_rmi_scc_window_wall_ratios.md diff --git a/docs/ruleset_functions/get_spaces_served_by_SWH_use.md b/docs/ashrae_90p1_2019/ruleset_functions/get_spaces_served_by_SWH_use.md similarity index 100% rename from docs/ruleset_functions/get_spaces_served_by_SWH_use.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_spaces_served_by_SWH_use.md diff --git a/docs/ruleset_functions/get_surface_conditioning_category.md b/docs/ashrae_90p1_2019/ruleset_functions/get_surface_conditioning_category.md similarity index 100% rename from docs/ruleset_functions/get_surface_conditioning_category.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_surface_conditioning_category.md diff --git a/docs/ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md b/docs/ashrae_90p1_2019/ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md similarity index 100% rename from docs/ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_swh_components_associated_with_each_swh_distribution_system.md diff --git a/docs/ruleset_functions/get_swh_equipment_type.md b/docs/ashrae_90p1_2019/ruleset_functions/get_swh_equipment_type.md similarity index 100% rename from docs/ruleset_functions/get_swh_equipment_type.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_swh_equipment_type.md diff --git a/docs/ruleset_functions/get_zone_BPF_BAT.md b/docs/ashrae_90p1_2019/ruleset_functions/get_zone_BPF_BAT.md similarity index 100% rename from docs/ruleset_functions/get_zone_BPF_BAT.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_zone_BPF_BAT.md diff --git a/docs/ruleset_functions/get_zone_conditioning_category.md b/docs/ashrae_90p1_2019/ruleset_functions/get_zone_conditioning_category.md similarity index 100% rename from docs/ruleset_functions/get_zone_conditioning_category.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_zone_conditioning_category.md diff --git a/docs/ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md b/docs/ashrae_90p1_2019/ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md similarity index 100% rename from docs/ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_zone_supply_return_exhaust_relief_terminal_fan_power_dict.md diff --git a/docs/ruleset_functions/get_zone_target_baseline_system.md b/docs/ashrae_90p1_2019/ruleset_functions/get_zone_target_baseline_system.md similarity index 100% rename from docs/ruleset_functions/get_zone_target_baseline_system.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_zone_target_baseline_system.md diff --git a/docs/ruleset_functions/get_zones_health_safety_vent_reqs.md b/docs/ashrae_90p1_2019/ruleset_functions/get_zones_health_safety_vent_reqs.md similarity index 100% rename from docs/ruleset_functions/get_zones_health_safety_vent_reqs.md rename to docs/ashrae_90p1_2019/ruleset_functions/get_zones_health_safety_vent_reqs.md diff --git a/docs/ruleset_functions/is_baseline_system_1(HVAC_id).md b/docs/ashrae_90p1_2019/ruleset_functions/is_baseline_system_1(HVAC_id).md similarity index 100% rename from docs/ruleset_functions/is_baseline_system_1(HVAC_id).md rename to docs/ashrae_90p1_2019/ruleset_functions/is_baseline_system_1(HVAC_id).md diff --git a/docs/ruleset_functions/is_economizer_modeled_in_proposed.md b/docs/ashrae_90p1_2019/ruleset_functions/is_economizer_modeled_in_proposed.md similarity index 100% rename from docs/ruleset_functions/is_economizer_modeled_in_proposed.md rename to docs/ashrae_90p1_2019/ruleset_functions/is_economizer_modeled_in_proposed.md diff --git a/docs/ruleset_functions/normalize_interior_lighting_schedules.md b/docs/ashrae_90p1_2019/ruleset_functions/normalize_interior_lighting_schedules.md similarity index 100% rename from docs/ruleset_functions/normalize_interior_lighting_schedules.md rename to docs/ashrae_90p1_2019/ruleset_functions/normalize_interior_lighting_schedules.md diff --git a/docs/section1/Rule1-1.md b/docs/ashrae_90p1_2019/section1/Rule1-1.md similarity index 100% rename from docs/section1/Rule1-1.md rename to docs/ashrae_90p1_2019/section1/Rule1-1.md diff --git a/docs/section1/Rule1-2.md b/docs/ashrae_90p1_2019/section1/Rule1-2.md similarity index 100% rename from docs/section1/Rule1-2.md rename to docs/ashrae_90p1_2019/section1/Rule1-2.md diff --git a/docs/section1/Rule1-3.md b/docs/ashrae_90p1_2019/section1/Rule1-3.md similarity index 100% rename from docs/section1/Rule1-3.md rename to docs/ashrae_90p1_2019/section1/Rule1-3.md diff --git a/docs/section1/Rule1-4.md b/docs/ashrae_90p1_2019/section1/Rule1-4.md similarity index 100% rename from docs/section1/Rule1-4.md rename to docs/ashrae_90p1_2019/section1/Rule1-4.md diff --git a/docs/section1/Rule1-5.md b/docs/ashrae_90p1_2019/section1/Rule1-5.md similarity index 100% rename from docs/section1/Rule1-5.md rename to docs/ashrae_90p1_2019/section1/Rule1-5.md diff --git a/docs/section1/Rule1-6.md b/docs/ashrae_90p1_2019/section1/Rule1-6.md similarity index 100% rename from docs/section1/Rule1-6.md rename to docs/ashrae_90p1_2019/section1/Rule1-6.md diff --git a/docs/section10/10-1.md b/docs/ashrae_90p1_2019/section10/10-1.md similarity index 100% rename from docs/section10/10-1.md rename to docs/ashrae_90p1_2019/section10/10-1.md diff --git a/docs/section10/10-14.md b/docs/ashrae_90p1_2019/section10/10-14.md similarity index 100% rename from docs/section10/10-14.md rename to docs/ashrae_90p1_2019/section10/10-14.md diff --git a/docs/section10/10-15.md b/docs/ashrae_90p1_2019/section10/10-15.md similarity index 100% rename from docs/section10/10-15.md rename to docs/ashrae_90p1_2019/section10/10-15.md diff --git a/docs/section10/10-7.md b/docs/ashrae_90p1_2019/section10/10-7.md similarity index 100% rename from docs/section10/10-7.md rename to docs/ashrae_90p1_2019/section10/10-7.md diff --git a/docs/section10/archive/10-10.md b/docs/ashrae_90p1_2019/section10/archive/10-10.md similarity index 100% rename from docs/section10/archive/10-10.md rename to docs/ashrae_90p1_2019/section10/archive/10-10.md diff --git a/docs/section10/archive/10-11.md b/docs/ashrae_90p1_2019/section10/archive/10-11.md similarity index 100% rename from docs/section10/archive/10-11.md rename to docs/ashrae_90p1_2019/section10/archive/10-11.md diff --git a/docs/section10/archive/10-13A.md b/docs/ashrae_90p1_2019/section10/archive/10-13A.md similarity index 100% rename from docs/section10/archive/10-13A.md rename to docs/ashrae_90p1_2019/section10/archive/10-13A.md diff --git a/docs/section10/archive/10-13B.md b/docs/ashrae_90p1_2019/section10/archive/10-13B.md similarity index 100% rename from docs/section10/archive/10-13B.md rename to docs/ashrae_90p1_2019/section10/archive/10-13B.md diff --git a/docs/section10/archive/10-3.md b/docs/ashrae_90p1_2019/section10/archive/10-3.md similarity index 100% rename from docs/section10/archive/10-3.md rename to docs/ashrae_90p1_2019/section10/archive/10-3.md diff --git a/docs/section10/archive/10-4.md b/docs/ashrae_90p1_2019/section10/archive/10-4.md similarity index 100% rename from docs/section10/archive/10-4.md rename to docs/ashrae_90p1_2019/section10/archive/10-4.md diff --git a/docs/section10/archive/10-6.md b/docs/ashrae_90p1_2019/section10/archive/10-6.md similarity index 100% rename from docs/section10/archive/10-6.md rename to docs/ashrae_90p1_2019/section10/archive/10-6.md diff --git a/docs/section10/archive/10-9.md b/docs/ashrae_90p1_2019/section10/archive/10-9.md similarity index 100% rename from docs/section10/archive/10-9.md rename to docs/ashrae_90p1_2019/section10/archive/10-9.md diff --git a/docs/section11/Rule11-1.md b/docs/ashrae_90p1_2019/section11/Rule11-1.md similarity index 100% rename from docs/section11/Rule11-1.md rename to docs/ashrae_90p1_2019/section11/Rule11-1.md diff --git a/docs/section11/Rule11-10.md b/docs/ashrae_90p1_2019/section11/Rule11-10.md similarity index 100% rename from docs/section11/Rule11-10.md rename to docs/ashrae_90p1_2019/section11/Rule11-10.md diff --git a/docs/section11/Rule11-11.md b/docs/ashrae_90p1_2019/section11/Rule11-11.md similarity index 100% rename from docs/section11/Rule11-11.md rename to docs/ashrae_90p1_2019/section11/Rule11-11.md diff --git a/docs/section11/Rule11-12.md b/docs/ashrae_90p1_2019/section11/Rule11-12.md similarity index 100% rename from docs/section11/Rule11-12.md rename to docs/ashrae_90p1_2019/section11/Rule11-12.md diff --git a/docs/section11/Rule11-13.md b/docs/ashrae_90p1_2019/section11/Rule11-13.md similarity index 100% rename from docs/section11/Rule11-13.md rename to docs/ashrae_90p1_2019/section11/Rule11-13.md diff --git a/docs/section11/Rule11-14.md b/docs/ashrae_90p1_2019/section11/Rule11-14.md similarity index 100% rename from docs/section11/Rule11-14.md rename to docs/ashrae_90p1_2019/section11/Rule11-14.md diff --git a/docs/section11/Rule11-15.md b/docs/ashrae_90p1_2019/section11/Rule11-15.md similarity index 100% rename from docs/section11/Rule11-15.md rename to docs/ashrae_90p1_2019/section11/Rule11-15.md diff --git a/docs/section11/Rule11-16.md b/docs/ashrae_90p1_2019/section11/Rule11-16.md similarity index 100% rename from docs/section11/Rule11-16.md rename to docs/ashrae_90p1_2019/section11/Rule11-16.md diff --git a/docs/section11/Rule11-17.md b/docs/ashrae_90p1_2019/section11/Rule11-17.md similarity index 100% rename from docs/section11/Rule11-17.md rename to docs/ashrae_90p1_2019/section11/Rule11-17.md diff --git a/docs/section11/Rule11-5.md b/docs/ashrae_90p1_2019/section11/Rule11-5.md similarity index 100% rename from docs/section11/Rule11-5.md rename to docs/ashrae_90p1_2019/section11/Rule11-5.md diff --git a/docs/section11/Rule11-6.md b/docs/ashrae_90p1_2019/section11/Rule11-6.md similarity index 100% rename from docs/section11/Rule11-6.md rename to docs/ashrae_90p1_2019/section11/Rule11-6.md diff --git a/docs/section11/Rule11-7.md b/docs/ashrae_90p1_2019/section11/Rule11-7.md similarity index 100% rename from docs/section11/Rule11-7.md rename to docs/ashrae_90p1_2019/section11/Rule11-7.md diff --git a/docs/section11/Rule11-8.md b/docs/ashrae_90p1_2019/section11/Rule11-8.md similarity index 100% rename from docs/section11/Rule11-8.md rename to docs/ashrae_90p1_2019/section11/Rule11-8.md diff --git a/docs/section11/Rule11-9.md b/docs/ashrae_90p1_2019/section11/Rule11-9.md similarity index 100% rename from docs/section11/Rule11-9.md rename to docs/ashrae_90p1_2019/section11/Rule11-9.md diff --git a/docs/section11/SHW comparison fields.yaml b/docs/ashrae_90p1_2019/section11/SHW comparison fields.yaml similarity index 100% rename from docs/section11/SHW comparison fields.yaml rename to docs/ashrae_90p1_2019/section11/SHW comparison fields.yaml diff --git a/docs/section12/Rule12-1.md b/docs/ashrae_90p1_2019/section12/Rule12-1.md similarity index 100% rename from docs/section12/Rule12-1.md rename to docs/ashrae_90p1_2019/section12/Rule12-1.md diff --git a/docs/section12/Rule12-2.md b/docs/ashrae_90p1_2019/section12/Rule12-2.md similarity index 100% rename from docs/section12/Rule12-2.md rename to docs/ashrae_90p1_2019/section12/Rule12-2.md diff --git a/docs/section12/Rule12-3.md b/docs/ashrae_90p1_2019/section12/Rule12-3.md similarity index 100% rename from docs/section12/Rule12-3.md rename to docs/ashrae_90p1_2019/section12/Rule12-3.md diff --git a/docs/section12/Rule12-4.md b/docs/ashrae_90p1_2019/section12/Rule12-4.md similarity index 100% rename from docs/section12/Rule12-4.md rename to docs/ashrae_90p1_2019/section12/Rule12-4.md diff --git a/docs/section16/Rule16-1.md b/docs/ashrae_90p1_2019/section16/Rule16-1.md similarity index 100% rename from docs/section16/Rule16-1.md rename to docs/ashrae_90p1_2019/section16/Rule16-1.md diff --git a/docs/section16/Rule16-2.md b/docs/ashrae_90p1_2019/section16/Rule16-2.md similarity index 100% rename from docs/section16/Rule16-2.md rename to docs/ashrae_90p1_2019/section16/Rule16-2.md diff --git a/docs/section16/Rule16-3.md b/docs/ashrae_90p1_2019/section16/Rule16-3.md similarity index 100% rename from docs/section16/Rule16-3.md rename to docs/ashrae_90p1_2019/section16/Rule16-3.md diff --git a/docs/section16/Rule16-4.md b/docs/ashrae_90p1_2019/section16/Rule16-4.md similarity index 100% rename from docs/section16/Rule16-4.md rename to docs/ashrae_90p1_2019/section16/Rule16-4.md diff --git a/docs/section16/Rule16-5.md b/docs/ashrae_90p1_2019/section16/Rule16-5.md similarity index 100% rename from docs/section16/Rule16-5.md rename to docs/ashrae_90p1_2019/section16/Rule16-5.md diff --git a/docs/section16/Rule16-6.md b/docs/ashrae_90p1_2019/section16/Rule16-6.md similarity index 100% rename from docs/section16/Rule16-6.md rename to docs/ashrae_90p1_2019/section16/Rule16-6.md diff --git a/docs/section16/Rule16-7.md b/docs/ashrae_90p1_2019/section16/Rule16-7.md similarity index 100% rename from docs/section16/Rule16-7.md rename to docs/ashrae_90p1_2019/section16/Rule16-7.md diff --git a/docs/section18/Rule18-1.md b/docs/ashrae_90p1_2019/section18/Rule18-1.md similarity index 100% rename from docs/section18/Rule18-1.md rename to docs/ashrae_90p1_2019/section18/Rule18-1.md diff --git a/docs/section18/Rule18-2.md b/docs/ashrae_90p1_2019/section18/Rule18-2.md similarity index 100% rename from docs/section18/Rule18-2.md rename to docs/ashrae_90p1_2019/section18/Rule18-2.md diff --git a/docs/section18/Rule18-3.md b/docs/ashrae_90p1_2019/section18/Rule18-3.md similarity index 100% rename from docs/section18/Rule18-3.md rename to docs/ashrae_90p1_2019/section18/Rule18-3.md diff --git a/docs/section19/Rule19-1.md b/docs/ashrae_90p1_2019/section19/Rule19-1.md similarity index 100% rename from docs/section19/Rule19-1.md rename to docs/ashrae_90p1_2019/section19/Rule19-1.md diff --git a/docs/section19/Rule19-10.md b/docs/ashrae_90p1_2019/section19/Rule19-10.md similarity index 100% rename from docs/section19/Rule19-10.md rename to docs/ashrae_90p1_2019/section19/Rule19-10.md diff --git a/docs/section19/Rule19-11.md b/docs/ashrae_90p1_2019/section19/Rule19-11.md similarity index 100% rename from docs/section19/Rule19-11.md rename to docs/ashrae_90p1_2019/section19/Rule19-11.md diff --git a/docs/section19/Rule19-12.md b/docs/ashrae_90p1_2019/section19/Rule19-12.md similarity index 100% rename from docs/section19/Rule19-12.md rename to docs/ashrae_90p1_2019/section19/Rule19-12.md diff --git a/docs/section19/Rule19-13.md b/docs/ashrae_90p1_2019/section19/Rule19-13.md similarity index 100% rename from docs/section19/Rule19-13.md rename to docs/ashrae_90p1_2019/section19/Rule19-13.md diff --git a/docs/section19/Rule19-14.md b/docs/ashrae_90p1_2019/section19/Rule19-14.md similarity index 100% rename from docs/section19/Rule19-14.md rename to docs/ashrae_90p1_2019/section19/Rule19-14.md diff --git a/docs/section19/Rule19-15.md b/docs/ashrae_90p1_2019/section19/Rule19-15.md similarity index 100% rename from docs/section19/Rule19-15.md rename to docs/ashrae_90p1_2019/section19/Rule19-15.md diff --git a/docs/section19/Rule19-16.md b/docs/ashrae_90p1_2019/section19/Rule19-16.md similarity index 100% rename from docs/section19/Rule19-16.md rename to docs/ashrae_90p1_2019/section19/Rule19-16.md diff --git a/docs/section19/Rule19-17.md b/docs/ashrae_90p1_2019/section19/Rule19-17.md similarity index 100% rename from docs/section19/Rule19-17.md rename to docs/ashrae_90p1_2019/section19/Rule19-17.md diff --git a/docs/section19/Rule19-18.md b/docs/ashrae_90p1_2019/section19/Rule19-18.md similarity index 100% rename from docs/section19/Rule19-18.md rename to docs/ashrae_90p1_2019/section19/Rule19-18.md diff --git a/docs/section19/Rule19-19.md b/docs/ashrae_90p1_2019/section19/Rule19-19.md similarity index 100% rename from docs/section19/Rule19-19.md rename to docs/ashrae_90p1_2019/section19/Rule19-19.md diff --git a/docs/section19/Rule19-2.md b/docs/ashrae_90p1_2019/section19/Rule19-2.md similarity index 100% rename from docs/section19/Rule19-2.md rename to docs/ashrae_90p1_2019/section19/Rule19-2.md diff --git a/docs/section19/Rule19-20.md b/docs/ashrae_90p1_2019/section19/Rule19-20.md similarity index 100% rename from docs/section19/Rule19-20.md rename to docs/ashrae_90p1_2019/section19/Rule19-20.md diff --git a/docs/section19/Rule19-21.md b/docs/ashrae_90p1_2019/section19/Rule19-21.md similarity index 100% rename from docs/section19/Rule19-21.md rename to docs/ashrae_90p1_2019/section19/Rule19-21.md diff --git a/docs/section19/Rule19-22.md b/docs/ashrae_90p1_2019/section19/Rule19-22.md similarity index 100% rename from docs/section19/Rule19-22.md rename to docs/ashrae_90p1_2019/section19/Rule19-22.md diff --git a/docs/section19/Rule19-23.md b/docs/ashrae_90p1_2019/section19/Rule19-23.md similarity index 100% rename from docs/section19/Rule19-23.md rename to docs/ashrae_90p1_2019/section19/Rule19-23.md diff --git a/docs/section19/Rule19-24.md b/docs/ashrae_90p1_2019/section19/Rule19-24.md similarity index 100% rename from docs/section19/Rule19-24.md rename to docs/ashrae_90p1_2019/section19/Rule19-24.md diff --git a/docs/section19/Rule19-25.md b/docs/ashrae_90p1_2019/section19/Rule19-25.md similarity index 100% rename from docs/section19/Rule19-25.md rename to docs/ashrae_90p1_2019/section19/Rule19-25.md diff --git a/docs/section19/Rule19-26.md b/docs/ashrae_90p1_2019/section19/Rule19-26.md similarity index 100% rename from docs/section19/Rule19-26.md rename to docs/ashrae_90p1_2019/section19/Rule19-26.md diff --git a/docs/section19/Rule19-27.md b/docs/ashrae_90p1_2019/section19/Rule19-27.md similarity index 100% rename from docs/section19/Rule19-27.md rename to docs/ashrae_90p1_2019/section19/Rule19-27.md diff --git a/docs/section19/Rule19-28.md b/docs/ashrae_90p1_2019/section19/Rule19-28.md similarity index 100% rename from docs/section19/Rule19-28.md rename to docs/ashrae_90p1_2019/section19/Rule19-28.md diff --git a/docs/section19/Rule19-29.md b/docs/ashrae_90p1_2019/section19/Rule19-29.md similarity index 100% rename from docs/section19/Rule19-29.md rename to docs/ashrae_90p1_2019/section19/Rule19-29.md diff --git a/docs/section19/Rule19-3.md b/docs/ashrae_90p1_2019/section19/Rule19-3.md similarity index 100% rename from docs/section19/Rule19-3.md rename to docs/ashrae_90p1_2019/section19/Rule19-3.md diff --git a/docs/section19/Rule19-30.md b/docs/ashrae_90p1_2019/section19/Rule19-30.md similarity index 100% rename from docs/section19/Rule19-30.md rename to docs/ashrae_90p1_2019/section19/Rule19-30.md diff --git a/docs/section19/Rule19-31.md b/docs/ashrae_90p1_2019/section19/Rule19-31.md similarity index 100% rename from docs/section19/Rule19-31.md rename to docs/ashrae_90p1_2019/section19/Rule19-31.md diff --git a/docs/section19/Rule19-32.md b/docs/ashrae_90p1_2019/section19/Rule19-32.md similarity index 100% rename from docs/section19/Rule19-32.md rename to docs/ashrae_90p1_2019/section19/Rule19-32.md diff --git a/docs/section19/Rule19-33.md b/docs/ashrae_90p1_2019/section19/Rule19-33.md similarity index 100% rename from docs/section19/Rule19-33.md rename to docs/ashrae_90p1_2019/section19/Rule19-33.md diff --git a/docs/section19/Rule19-34.md b/docs/ashrae_90p1_2019/section19/Rule19-34.md similarity index 100% rename from docs/section19/Rule19-34.md rename to docs/ashrae_90p1_2019/section19/Rule19-34.md diff --git a/docs/section19/Rule19-35.md b/docs/ashrae_90p1_2019/section19/Rule19-35.md similarity index 100% rename from docs/section19/Rule19-35.md rename to docs/ashrae_90p1_2019/section19/Rule19-35.md diff --git a/docs/section19/Rule19-36.md b/docs/ashrae_90p1_2019/section19/Rule19-36.md similarity index 100% rename from docs/section19/Rule19-36.md rename to docs/ashrae_90p1_2019/section19/Rule19-36.md diff --git a/docs/section19/Rule19-37.md b/docs/ashrae_90p1_2019/section19/Rule19-37.md similarity index 100% rename from docs/section19/Rule19-37.md rename to docs/ashrae_90p1_2019/section19/Rule19-37.md diff --git a/docs/section19/Rule19-4.md b/docs/ashrae_90p1_2019/section19/Rule19-4.md similarity index 100% rename from docs/section19/Rule19-4.md rename to docs/ashrae_90p1_2019/section19/Rule19-4.md diff --git a/docs/section19/Rule19-5.md b/docs/ashrae_90p1_2019/section19/Rule19-5.md similarity index 100% rename from docs/section19/Rule19-5.md rename to docs/ashrae_90p1_2019/section19/Rule19-5.md diff --git a/docs/section19/Rule19-6.md b/docs/ashrae_90p1_2019/section19/Rule19-6.md similarity index 100% rename from docs/section19/Rule19-6.md rename to docs/ashrae_90p1_2019/section19/Rule19-6.md diff --git a/docs/section19/Rule19-7.md b/docs/ashrae_90p1_2019/section19/Rule19-7.md similarity index 100% rename from docs/section19/Rule19-7.md rename to docs/ashrae_90p1_2019/section19/Rule19-7.md diff --git a/docs/section19/Rule19-8.md b/docs/ashrae_90p1_2019/section19/Rule19-8.md similarity index 100% rename from docs/section19/Rule19-8.md rename to docs/ashrae_90p1_2019/section19/Rule19-8.md diff --git a/docs/section19/Rule19-9.md b/docs/ashrae_90p1_2019/section19/Rule19-9.md similarity index 100% rename from docs/section19/Rule19-9.md rename to docs/ashrae_90p1_2019/section19/Rule19-9.md diff --git a/docs/section21/Rule21-1.md b/docs/ashrae_90p1_2019/section21/Rule21-1.md similarity index 100% rename from docs/section21/Rule21-1.md rename to docs/ashrae_90p1_2019/section21/Rule21-1.md diff --git a/docs/section21/Rule21-10.md b/docs/ashrae_90p1_2019/section21/Rule21-10.md similarity index 100% rename from docs/section21/Rule21-10.md rename to docs/ashrae_90p1_2019/section21/Rule21-10.md diff --git a/docs/section21/Rule21-11.md b/docs/ashrae_90p1_2019/section21/Rule21-11.md similarity index 100% rename from docs/section21/Rule21-11.md rename to docs/ashrae_90p1_2019/section21/Rule21-11.md diff --git a/docs/section21/Rule21-12.md b/docs/ashrae_90p1_2019/section21/Rule21-12.md similarity index 100% rename from docs/section21/Rule21-12.md rename to docs/ashrae_90p1_2019/section21/Rule21-12.md diff --git a/docs/section21/Rule21-13.md b/docs/ashrae_90p1_2019/section21/Rule21-13.md similarity index 100% rename from docs/section21/Rule21-13.md rename to docs/ashrae_90p1_2019/section21/Rule21-13.md diff --git a/docs/section21/Rule21-14.md b/docs/ashrae_90p1_2019/section21/Rule21-14.md similarity index 100% rename from docs/section21/Rule21-14.md rename to docs/ashrae_90p1_2019/section21/Rule21-14.md diff --git a/docs/section21/Rule21-15.md b/docs/ashrae_90p1_2019/section21/Rule21-15.md similarity index 100% rename from docs/section21/Rule21-15.md rename to docs/ashrae_90p1_2019/section21/Rule21-15.md diff --git a/docs/section21/Rule21-16.md b/docs/ashrae_90p1_2019/section21/Rule21-16.md similarity index 100% rename from docs/section21/Rule21-16.md rename to docs/ashrae_90p1_2019/section21/Rule21-16.md diff --git a/docs/section21/Rule21-17.md b/docs/ashrae_90p1_2019/section21/Rule21-17.md similarity index 100% rename from docs/section21/Rule21-17.md rename to docs/ashrae_90p1_2019/section21/Rule21-17.md diff --git a/docs/section21/Rule21-18.md b/docs/ashrae_90p1_2019/section21/Rule21-18.md similarity index 100% rename from docs/section21/Rule21-18.md rename to docs/ashrae_90p1_2019/section21/Rule21-18.md diff --git a/docs/section21/Rule21-2.md b/docs/ashrae_90p1_2019/section21/Rule21-2.md similarity index 100% rename from docs/section21/Rule21-2.md rename to docs/ashrae_90p1_2019/section21/Rule21-2.md diff --git a/docs/section21/Rule21-3.md b/docs/ashrae_90p1_2019/section21/Rule21-3.md similarity index 100% rename from docs/section21/Rule21-3.md rename to docs/ashrae_90p1_2019/section21/Rule21-3.md diff --git a/docs/section21/Rule21-4.md b/docs/ashrae_90p1_2019/section21/Rule21-4.md similarity index 100% rename from docs/section21/Rule21-4.md rename to docs/ashrae_90p1_2019/section21/Rule21-4.md diff --git a/docs/section21/Rule21-5.md b/docs/ashrae_90p1_2019/section21/Rule21-5.md similarity index 100% rename from docs/section21/Rule21-5.md rename to docs/ashrae_90p1_2019/section21/Rule21-5.md diff --git a/docs/section21/Rule21-6.md b/docs/ashrae_90p1_2019/section21/Rule21-6.md similarity index 100% rename from docs/section21/Rule21-6.md rename to docs/ashrae_90p1_2019/section21/Rule21-6.md diff --git a/docs/section21/Rule21-7.md b/docs/ashrae_90p1_2019/section21/Rule21-7.md similarity index 100% rename from docs/section21/Rule21-7.md rename to docs/ashrae_90p1_2019/section21/Rule21-7.md diff --git a/docs/section21/Rule21-8.md b/docs/ashrae_90p1_2019/section21/Rule21-8.md similarity index 100% rename from docs/section21/Rule21-8.md rename to docs/ashrae_90p1_2019/section21/Rule21-8.md diff --git a/docs/section21/Rule21-9.md b/docs/ashrae_90p1_2019/section21/Rule21-9.md similarity index 100% rename from docs/section21/Rule21-9.md rename to docs/ashrae_90p1_2019/section21/Rule21-9.md diff --git a/docs/section22/Rule22-1.md b/docs/ashrae_90p1_2019/section22/Rule22-1.md similarity index 100% rename from docs/section22/Rule22-1.md rename to docs/ashrae_90p1_2019/section22/Rule22-1.md diff --git a/docs/section22/Rule22-10.md b/docs/ashrae_90p1_2019/section22/Rule22-10.md similarity index 100% rename from docs/section22/Rule22-10.md rename to docs/ashrae_90p1_2019/section22/Rule22-10.md diff --git a/docs/section22/Rule22-11.md b/docs/ashrae_90p1_2019/section22/Rule22-11.md similarity index 100% rename from docs/section22/Rule22-11.md rename to docs/ashrae_90p1_2019/section22/Rule22-11.md diff --git a/docs/section22/Rule22-12.md b/docs/ashrae_90p1_2019/section22/Rule22-12.md similarity index 100% rename from docs/section22/Rule22-12.md rename to docs/ashrae_90p1_2019/section22/Rule22-12.md diff --git a/docs/section22/Rule22-13.md b/docs/ashrae_90p1_2019/section22/Rule22-13.md similarity index 100% rename from docs/section22/Rule22-13.md rename to docs/ashrae_90p1_2019/section22/Rule22-13.md diff --git a/docs/section22/Rule22-14.md b/docs/ashrae_90p1_2019/section22/Rule22-14.md similarity index 100% rename from docs/section22/Rule22-14.md rename to docs/ashrae_90p1_2019/section22/Rule22-14.md diff --git a/docs/section22/Rule22-15.md b/docs/ashrae_90p1_2019/section22/Rule22-15.md similarity index 100% rename from docs/section22/Rule22-15.md rename to docs/ashrae_90p1_2019/section22/Rule22-15.md diff --git a/docs/section22/Rule22-16.md b/docs/ashrae_90p1_2019/section22/Rule22-16.md similarity index 100% rename from docs/section22/Rule22-16.md rename to docs/ashrae_90p1_2019/section22/Rule22-16.md diff --git a/docs/section22/Rule22-17.md b/docs/ashrae_90p1_2019/section22/Rule22-17.md similarity index 100% rename from docs/section22/Rule22-17.md rename to docs/ashrae_90p1_2019/section22/Rule22-17.md diff --git a/docs/section22/Rule22-18.md b/docs/ashrae_90p1_2019/section22/Rule22-18.md similarity index 100% rename from docs/section22/Rule22-18.md rename to docs/ashrae_90p1_2019/section22/Rule22-18.md diff --git a/docs/section22/Rule22-19.md b/docs/ashrae_90p1_2019/section22/Rule22-19.md similarity index 100% rename from docs/section22/Rule22-19.md rename to docs/ashrae_90p1_2019/section22/Rule22-19.md diff --git a/docs/section22/Rule22-2.md b/docs/ashrae_90p1_2019/section22/Rule22-2.md similarity index 100% rename from docs/section22/Rule22-2.md rename to docs/ashrae_90p1_2019/section22/Rule22-2.md diff --git a/docs/section22/Rule22-20.md b/docs/ashrae_90p1_2019/section22/Rule22-20.md similarity index 100% rename from docs/section22/Rule22-20.md rename to docs/ashrae_90p1_2019/section22/Rule22-20.md diff --git a/docs/section22/Rule22-21.md b/docs/ashrae_90p1_2019/section22/Rule22-21.md similarity index 100% rename from docs/section22/Rule22-21.md rename to docs/ashrae_90p1_2019/section22/Rule22-21.md diff --git a/docs/section22/Rule22-22.md b/docs/ashrae_90p1_2019/section22/Rule22-22.md similarity index 100% rename from docs/section22/Rule22-22.md rename to docs/ashrae_90p1_2019/section22/Rule22-22.md diff --git a/docs/section22/Rule22-23.md b/docs/ashrae_90p1_2019/section22/Rule22-23.md similarity index 100% rename from docs/section22/Rule22-23.md rename to docs/ashrae_90p1_2019/section22/Rule22-23.md diff --git a/docs/section22/Rule22-24.md b/docs/ashrae_90p1_2019/section22/Rule22-24.md similarity index 100% rename from docs/section22/Rule22-24.md rename to docs/ashrae_90p1_2019/section22/Rule22-24.md diff --git a/docs/section22/Rule22-25.md b/docs/ashrae_90p1_2019/section22/Rule22-25.md similarity index 100% rename from docs/section22/Rule22-25.md rename to docs/ashrae_90p1_2019/section22/Rule22-25.md diff --git a/docs/section22/Rule22-26.md b/docs/ashrae_90p1_2019/section22/Rule22-26.md similarity index 100% rename from docs/section22/Rule22-26.md rename to docs/ashrae_90p1_2019/section22/Rule22-26.md diff --git a/docs/section22/Rule22-27.md b/docs/ashrae_90p1_2019/section22/Rule22-27.md similarity index 100% rename from docs/section22/Rule22-27.md rename to docs/ashrae_90p1_2019/section22/Rule22-27.md diff --git a/docs/section22/Rule22-28.md b/docs/ashrae_90p1_2019/section22/Rule22-28.md similarity index 100% rename from docs/section22/Rule22-28.md rename to docs/ashrae_90p1_2019/section22/Rule22-28.md diff --git a/docs/section22/Rule22-29.md b/docs/ashrae_90p1_2019/section22/Rule22-29.md similarity index 100% rename from docs/section22/Rule22-29.md rename to docs/ashrae_90p1_2019/section22/Rule22-29.md diff --git a/docs/section22/Rule22-3.md b/docs/ashrae_90p1_2019/section22/Rule22-3.md similarity index 100% rename from docs/section22/Rule22-3.md rename to docs/ashrae_90p1_2019/section22/Rule22-3.md diff --git a/docs/section22/Rule22-30.md b/docs/ashrae_90p1_2019/section22/Rule22-30.md similarity index 100% rename from docs/section22/Rule22-30.md rename to docs/ashrae_90p1_2019/section22/Rule22-30.md diff --git a/docs/section22/Rule22-31.md b/docs/ashrae_90p1_2019/section22/Rule22-31.md similarity index 100% rename from docs/section22/Rule22-31.md rename to docs/ashrae_90p1_2019/section22/Rule22-31.md diff --git a/docs/section22/Rule22-32.md b/docs/ashrae_90p1_2019/section22/Rule22-32.md similarity index 100% rename from docs/section22/Rule22-32.md rename to docs/ashrae_90p1_2019/section22/Rule22-32.md diff --git a/docs/section22/Rule22-33.md b/docs/ashrae_90p1_2019/section22/Rule22-33.md similarity index 100% rename from docs/section22/Rule22-33.md rename to docs/ashrae_90p1_2019/section22/Rule22-33.md diff --git a/docs/section22/Rule22-34.md b/docs/ashrae_90p1_2019/section22/Rule22-34.md similarity index 100% rename from docs/section22/Rule22-34.md rename to docs/ashrae_90p1_2019/section22/Rule22-34.md diff --git a/docs/section22/Rule22-35.md b/docs/ashrae_90p1_2019/section22/Rule22-35.md similarity index 100% rename from docs/section22/Rule22-35.md rename to docs/ashrae_90p1_2019/section22/Rule22-35.md diff --git a/docs/section22/Rule22-36.md b/docs/ashrae_90p1_2019/section22/Rule22-36.md similarity index 100% rename from docs/section22/Rule22-36.md rename to docs/ashrae_90p1_2019/section22/Rule22-36.md diff --git a/docs/section22/Rule22-37.md b/docs/ashrae_90p1_2019/section22/Rule22-37.md similarity index 100% rename from docs/section22/Rule22-37.md rename to docs/ashrae_90p1_2019/section22/Rule22-37.md diff --git a/docs/section22/Rule22-38.md b/docs/ashrae_90p1_2019/section22/Rule22-38.md similarity index 100% rename from docs/section22/Rule22-38.md rename to docs/ashrae_90p1_2019/section22/Rule22-38.md diff --git a/docs/section22/Rule22-39.md b/docs/ashrae_90p1_2019/section22/Rule22-39.md similarity index 100% rename from docs/section22/Rule22-39.md rename to docs/ashrae_90p1_2019/section22/Rule22-39.md diff --git a/docs/section22/Rule22-4.md b/docs/ashrae_90p1_2019/section22/Rule22-4.md similarity index 100% rename from docs/section22/Rule22-4.md rename to docs/ashrae_90p1_2019/section22/Rule22-4.md diff --git a/docs/section22/Rule22-40.md b/docs/ashrae_90p1_2019/section22/Rule22-40.md similarity index 100% rename from docs/section22/Rule22-40.md rename to docs/ashrae_90p1_2019/section22/Rule22-40.md diff --git a/docs/section22/Rule22-41.md b/docs/ashrae_90p1_2019/section22/Rule22-41.md similarity index 100% rename from docs/section22/Rule22-41.md rename to docs/ashrae_90p1_2019/section22/Rule22-41.md diff --git a/docs/section22/Rule22-5.md b/docs/ashrae_90p1_2019/section22/Rule22-5.md similarity index 100% rename from docs/section22/Rule22-5.md rename to docs/ashrae_90p1_2019/section22/Rule22-5.md diff --git a/docs/section22/Rule22-6.md b/docs/ashrae_90p1_2019/section22/Rule22-6.md similarity index 100% rename from docs/section22/Rule22-6.md rename to docs/ashrae_90p1_2019/section22/Rule22-6.md diff --git a/docs/section22/Rule22-7.md b/docs/ashrae_90p1_2019/section22/Rule22-7.md similarity index 100% rename from docs/section22/Rule22-7.md rename to docs/ashrae_90p1_2019/section22/Rule22-7.md diff --git a/docs/section22/Rule22-8.md b/docs/ashrae_90p1_2019/section22/Rule22-8.md similarity index 100% rename from docs/section22/Rule22-8.md rename to docs/ashrae_90p1_2019/section22/Rule22-8.md diff --git a/docs/section22/Rule22-9.md b/docs/ashrae_90p1_2019/section22/Rule22-9.md similarity index 100% rename from docs/section22/Rule22-9.md rename to docs/ashrae_90p1_2019/section22/Rule22-9.md diff --git a/docs/section23/Rule23-1.md b/docs/ashrae_90p1_2019/section23/Rule23-1.md similarity index 100% rename from docs/section23/Rule23-1.md rename to docs/ashrae_90p1_2019/section23/Rule23-1.md diff --git a/docs/section23/Rule23-10.md b/docs/ashrae_90p1_2019/section23/Rule23-10.md similarity index 100% rename from docs/section23/Rule23-10.md rename to docs/ashrae_90p1_2019/section23/Rule23-10.md diff --git a/docs/section23/Rule23-11.md b/docs/ashrae_90p1_2019/section23/Rule23-11.md similarity index 100% rename from docs/section23/Rule23-11.md rename to docs/ashrae_90p1_2019/section23/Rule23-11.md diff --git a/docs/section23/Rule23-12.md b/docs/ashrae_90p1_2019/section23/Rule23-12.md similarity index 100% rename from docs/section23/Rule23-12.md rename to docs/ashrae_90p1_2019/section23/Rule23-12.md diff --git a/docs/section23/Rule23-13.md b/docs/ashrae_90p1_2019/section23/Rule23-13.md similarity index 100% rename from docs/section23/Rule23-13.md rename to docs/ashrae_90p1_2019/section23/Rule23-13.md diff --git a/docs/section23/Rule23-14.md b/docs/ashrae_90p1_2019/section23/Rule23-14.md similarity index 100% rename from docs/section23/Rule23-14.md rename to docs/ashrae_90p1_2019/section23/Rule23-14.md diff --git a/docs/section23/Rule23-15.md b/docs/ashrae_90p1_2019/section23/Rule23-15.md similarity index 100% rename from docs/section23/Rule23-15.md rename to docs/ashrae_90p1_2019/section23/Rule23-15.md diff --git a/docs/section23/Rule23-16.md b/docs/ashrae_90p1_2019/section23/Rule23-16.md similarity index 100% rename from docs/section23/Rule23-16.md rename to docs/ashrae_90p1_2019/section23/Rule23-16.md diff --git a/docs/section23/Rule23-17.md b/docs/ashrae_90p1_2019/section23/Rule23-17.md similarity index 100% rename from docs/section23/Rule23-17.md rename to docs/ashrae_90p1_2019/section23/Rule23-17.md diff --git a/docs/section23/Rule23-2.md b/docs/ashrae_90p1_2019/section23/Rule23-2.md similarity index 100% rename from docs/section23/Rule23-2.md rename to docs/ashrae_90p1_2019/section23/Rule23-2.md diff --git a/docs/section23/Rule23-3.md b/docs/ashrae_90p1_2019/section23/Rule23-3.md similarity index 100% rename from docs/section23/Rule23-3.md rename to docs/ashrae_90p1_2019/section23/Rule23-3.md diff --git a/docs/section23/Rule23-4.md b/docs/ashrae_90p1_2019/section23/Rule23-4.md similarity index 100% rename from docs/section23/Rule23-4.md rename to docs/ashrae_90p1_2019/section23/Rule23-4.md diff --git a/docs/section23/Rule23-5.md b/docs/ashrae_90p1_2019/section23/Rule23-5.md similarity index 100% rename from docs/section23/Rule23-5.md rename to docs/ashrae_90p1_2019/section23/Rule23-5.md diff --git a/docs/section23/Rule23-6.md b/docs/ashrae_90p1_2019/section23/Rule23-6.md similarity index 100% rename from docs/section23/Rule23-6.md rename to docs/ashrae_90p1_2019/section23/Rule23-6.md diff --git a/docs/section23/Rule23-7.md b/docs/ashrae_90p1_2019/section23/Rule23-7.md similarity index 100% rename from docs/section23/Rule23-7.md rename to docs/ashrae_90p1_2019/section23/Rule23-7.md diff --git a/docs/section23/Rule23-8.md b/docs/ashrae_90p1_2019/section23/Rule23-8.md similarity index 100% rename from docs/section23/Rule23-8.md rename to docs/ashrae_90p1_2019/section23/Rule23-8.md diff --git a/docs/section23/Rule23-9.md b/docs/ashrae_90p1_2019/section23/Rule23-9.md similarity index 100% rename from docs/section23/Rule23-9.md rename to docs/ashrae_90p1_2019/section23/Rule23-9.md diff --git a/docs/section4/4-1.md b/docs/ashrae_90p1_2019/section4/4-1.md similarity index 100% rename from docs/section4/4-1.md rename to docs/ashrae_90p1_2019/section4/4-1.md diff --git a/docs/section4/4-10.md b/docs/ashrae_90p1_2019/section4/4-10.md similarity index 100% rename from docs/section4/4-10.md rename to docs/ashrae_90p1_2019/section4/4-10.md diff --git a/docs/section4/4-11.md b/docs/ashrae_90p1_2019/section4/4-11.md similarity index 100% rename from docs/section4/4-11.md rename to docs/ashrae_90p1_2019/section4/4-11.md diff --git a/docs/section4/4-12.md b/docs/ashrae_90p1_2019/section4/4-12.md similarity index 100% rename from docs/section4/4-12.md rename to docs/ashrae_90p1_2019/section4/4-12.md diff --git a/docs/section4/4-14.md b/docs/ashrae_90p1_2019/section4/4-14.md similarity index 100% rename from docs/section4/4-14.md rename to docs/ashrae_90p1_2019/section4/4-14.md diff --git a/docs/section4/4-15.md b/docs/ashrae_90p1_2019/section4/4-15.md similarity index 100% rename from docs/section4/4-15.md rename to docs/ashrae_90p1_2019/section4/4-15.md diff --git a/docs/section4/4-16.md b/docs/ashrae_90p1_2019/section4/4-16.md similarity index 100% rename from docs/section4/4-16.md rename to docs/ashrae_90p1_2019/section4/4-16.md diff --git a/docs/section4/4-17.md b/docs/ashrae_90p1_2019/section4/4-17.md similarity index 100% rename from docs/section4/4-17.md rename to docs/ashrae_90p1_2019/section4/4-17.md diff --git a/docs/section4/4-18.md b/docs/ashrae_90p1_2019/section4/4-18.md similarity index 100% rename from docs/section4/4-18.md rename to docs/ashrae_90p1_2019/section4/4-18.md diff --git a/docs/section4/4-19.md b/docs/ashrae_90p1_2019/section4/4-19.md similarity index 100% rename from docs/section4/4-19.md rename to docs/ashrae_90p1_2019/section4/4-19.md diff --git a/docs/section4/4-2.md b/docs/ashrae_90p1_2019/section4/4-2.md similarity index 100% rename from docs/section4/4-2.md rename to docs/ashrae_90p1_2019/section4/4-2.md diff --git a/docs/section4/4-3.md b/docs/ashrae_90p1_2019/section4/4-3.md similarity index 100% rename from docs/section4/4-3.md rename to docs/ashrae_90p1_2019/section4/4-3.md diff --git a/docs/section4/4-4.md b/docs/ashrae_90p1_2019/section4/4-4.md similarity index 100% rename from docs/section4/4-4.md rename to docs/ashrae_90p1_2019/section4/4-4.md diff --git a/docs/section4/4-5.md b/docs/ashrae_90p1_2019/section4/4-5.md similarity index 100% rename from docs/section4/4-5.md rename to docs/ashrae_90p1_2019/section4/4-5.md diff --git a/docs/section4/4-6.md b/docs/ashrae_90p1_2019/section4/4-6.md similarity index 100% rename from docs/section4/4-6.md rename to docs/ashrae_90p1_2019/section4/4-6.md diff --git a/docs/section4/4-8.md b/docs/ashrae_90p1_2019/section4/4-8.md similarity index 100% rename from docs/section4/4-8.md rename to docs/ashrae_90p1_2019/section4/4-8.md diff --git a/docs/section5/Rule5-1.md b/docs/ashrae_90p1_2019/section5/Rule5-1.md similarity index 100% rename from docs/section5/Rule5-1.md rename to docs/ashrae_90p1_2019/section5/Rule5-1.md diff --git a/docs/section5/Rule5-10.md b/docs/ashrae_90p1_2019/section5/Rule5-10.md similarity index 100% rename from docs/section5/Rule5-10.md rename to docs/ashrae_90p1_2019/section5/Rule5-10.md diff --git a/docs/section5/Rule5-11.md b/docs/ashrae_90p1_2019/section5/Rule5-11.md similarity index 100% rename from docs/section5/Rule5-11.md rename to docs/ashrae_90p1_2019/section5/Rule5-11.md diff --git a/docs/section5/Rule5-12.md b/docs/ashrae_90p1_2019/section5/Rule5-12.md similarity index 100% rename from docs/section5/Rule5-12.md rename to docs/ashrae_90p1_2019/section5/Rule5-12.md diff --git a/docs/section5/Rule5-13.md b/docs/ashrae_90p1_2019/section5/Rule5-13.md similarity index 100% rename from docs/section5/Rule5-13.md rename to docs/ashrae_90p1_2019/section5/Rule5-13.md diff --git a/docs/section5/Rule5-14.md b/docs/ashrae_90p1_2019/section5/Rule5-14.md similarity index 100% rename from docs/section5/Rule5-14.md rename to docs/ashrae_90p1_2019/section5/Rule5-14.md diff --git a/docs/section5/Rule5-15.md b/docs/ashrae_90p1_2019/section5/Rule5-15.md similarity index 100% rename from docs/section5/Rule5-15.md rename to docs/ashrae_90p1_2019/section5/Rule5-15.md diff --git a/docs/section5/Rule5-16.md b/docs/ashrae_90p1_2019/section5/Rule5-16.md similarity index 100% rename from docs/section5/Rule5-16.md rename to docs/ashrae_90p1_2019/section5/Rule5-16.md diff --git a/docs/section5/Rule5-17.md b/docs/ashrae_90p1_2019/section5/Rule5-17.md similarity index 100% rename from docs/section5/Rule5-17.md rename to docs/ashrae_90p1_2019/section5/Rule5-17.md diff --git a/docs/section5/Rule5-18.md b/docs/ashrae_90p1_2019/section5/Rule5-18.md similarity index 100% rename from docs/section5/Rule5-18.md rename to docs/ashrae_90p1_2019/section5/Rule5-18.md diff --git a/docs/section5/Rule5-19.md b/docs/ashrae_90p1_2019/section5/Rule5-19.md similarity index 100% rename from docs/section5/Rule5-19.md rename to docs/ashrae_90p1_2019/section5/Rule5-19.md diff --git a/docs/section5/Rule5-2.md b/docs/ashrae_90p1_2019/section5/Rule5-2.md similarity index 100% rename from docs/section5/Rule5-2.md rename to docs/ashrae_90p1_2019/section5/Rule5-2.md diff --git a/docs/section5/Rule5-20.md b/docs/ashrae_90p1_2019/section5/Rule5-20.md similarity index 100% rename from docs/section5/Rule5-20.md rename to docs/ashrae_90p1_2019/section5/Rule5-20.md diff --git a/docs/section5/Rule5-21.md b/docs/ashrae_90p1_2019/section5/Rule5-21.md similarity index 100% rename from docs/section5/Rule5-21.md rename to docs/ashrae_90p1_2019/section5/Rule5-21.md diff --git a/docs/section5/Rule5-22.md b/docs/ashrae_90p1_2019/section5/Rule5-22.md similarity index 100% rename from docs/section5/Rule5-22.md rename to docs/ashrae_90p1_2019/section5/Rule5-22.md diff --git a/docs/section5/Rule5-23.md b/docs/ashrae_90p1_2019/section5/Rule5-23.md similarity index 100% rename from docs/section5/Rule5-23.md rename to docs/ashrae_90p1_2019/section5/Rule5-23.md diff --git a/docs/section5/Rule5-24.md b/docs/ashrae_90p1_2019/section5/Rule5-24.md similarity index 100% rename from docs/section5/Rule5-24.md rename to docs/ashrae_90p1_2019/section5/Rule5-24.md diff --git a/docs/section5/Rule5-25.md b/docs/ashrae_90p1_2019/section5/Rule5-25.md similarity index 100% rename from docs/section5/Rule5-25.md rename to docs/ashrae_90p1_2019/section5/Rule5-25.md diff --git a/docs/section5/Rule5-26.md b/docs/ashrae_90p1_2019/section5/Rule5-26.md similarity index 100% rename from docs/section5/Rule5-26.md rename to docs/ashrae_90p1_2019/section5/Rule5-26.md diff --git a/docs/section5/Rule5-27.md b/docs/ashrae_90p1_2019/section5/Rule5-27.md similarity index 100% rename from docs/section5/Rule5-27.md rename to docs/ashrae_90p1_2019/section5/Rule5-27.md diff --git a/docs/section5/Rule5-28.md b/docs/ashrae_90p1_2019/section5/Rule5-28.md similarity index 100% rename from docs/section5/Rule5-28.md rename to docs/ashrae_90p1_2019/section5/Rule5-28.md diff --git a/docs/section5/Rule5-29.md b/docs/ashrae_90p1_2019/section5/Rule5-29.md similarity index 100% rename from docs/section5/Rule5-29.md rename to docs/ashrae_90p1_2019/section5/Rule5-29.md diff --git a/docs/section5/Rule5-3.md b/docs/ashrae_90p1_2019/section5/Rule5-3.md similarity index 100% rename from docs/section5/Rule5-3.md rename to docs/ashrae_90p1_2019/section5/Rule5-3.md diff --git a/docs/section5/Rule5-30.md b/docs/ashrae_90p1_2019/section5/Rule5-30.md similarity index 100% rename from docs/section5/Rule5-30.md rename to docs/ashrae_90p1_2019/section5/Rule5-30.md diff --git a/docs/section5/Rule5-31.md b/docs/ashrae_90p1_2019/section5/Rule5-31.md similarity index 100% rename from docs/section5/Rule5-31.md rename to docs/ashrae_90p1_2019/section5/Rule5-31.md diff --git a/docs/section5/Rule5-32.md b/docs/ashrae_90p1_2019/section5/Rule5-32.md similarity index 100% rename from docs/section5/Rule5-32.md rename to docs/ashrae_90p1_2019/section5/Rule5-32.md diff --git a/docs/section5/Rule5-33.md b/docs/ashrae_90p1_2019/section5/Rule5-33.md similarity index 100% rename from docs/section5/Rule5-33.md rename to docs/ashrae_90p1_2019/section5/Rule5-33.md diff --git a/docs/section5/Rule5-34.md b/docs/ashrae_90p1_2019/section5/Rule5-34.md similarity index 100% rename from docs/section5/Rule5-34.md rename to docs/ashrae_90p1_2019/section5/Rule5-34.md diff --git a/docs/section5/Rule5-35.md b/docs/ashrae_90p1_2019/section5/Rule5-35.md similarity index 100% rename from docs/section5/Rule5-35.md rename to docs/ashrae_90p1_2019/section5/Rule5-35.md diff --git a/docs/section5/Rule5-36.md b/docs/ashrae_90p1_2019/section5/Rule5-36.md similarity index 100% rename from docs/section5/Rule5-36.md rename to docs/ashrae_90p1_2019/section5/Rule5-36.md diff --git a/docs/section5/Rule5-37.md b/docs/ashrae_90p1_2019/section5/Rule5-37.md similarity index 100% rename from docs/section5/Rule5-37.md rename to docs/ashrae_90p1_2019/section5/Rule5-37.md diff --git a/docs/section5/Rule5-38.md b/docs/ashrae_90p1_2019/section5/Rule5-38.md similarity index 100% rename from docs/section5/Rule5-38.md rename to docs/ashrae_90p1_2019/section5/Rule5-38.md diff --git a/docs/section5/Rule5-39.md b/docs/ashrae_90p1_2019/section5/Rule5-39.md similarity index 100% rename from docs/section5/Rule5-39.md rename to docs/ashrae_90p1_2019/section5/Rule5-39.md diff --git a/docs/section5/Rule5-4.md b/docs/ashrae_90p1_2019/section5/Rule5-4.md similarity index 100% rename from docs/section5/Rule5-4.md rename to docs/ashrae_90p1_2019/section5/Rule5-4.md diff --git a/docs/section5/Rule5-40.md b/docs/ashrae_90p1_2019/section5/Rule5-40.md similarity index 100% rename from docs/section5/Rule5-40.md rename to docs/ashrae_90p1_2019/section5/Rule5-40.md diff --git a/docs/section5/Rule5-5.md b/docs/ashrae_90p1_2019/section5/Rule5-5.md similarity index 100% rename from docs/section5/Rule5-5.md rename to docs/ashrae_90p1_2019/section5/Rule5-5.md diff --git a/docs/section5/Rule5-6.md b/docs/ashrae_90p1_2019/section5/Rule5-6.md similarity index 100% rename from docs/section5/Rule5-6.md rename to docs/ashrae_90p1_2019/section5/Rule5-6.md diff --git a/docs/section5/Rule5-7.md b/docs/ashrae_90p1_2019/section5/Rule5-7.md similarity index 100% rename from docs/section5/Rule5-7.md rename to docs/ashrae_90p1_2019/section5/Rule5-7.md diff --git a/docs/section5/Rule5-8.md b/docs/ashrae_90p1_2019/section5/Rule5-8.md similarity index 100% rename from docs/section5/Rule5-8.md rename to docs/ashrae_90p1_2019/section5/Rule5-8.md diff --git a/docs/section5/Rule5-9.md b/docs/ashrae_90p1_2019/section5/Rule5-9.md similarity index 100% rename from docs/section5/Rule5-9.md rename to docs/ashrae_90p1_2019/section5/Rule5-9.md diff --git a/docs/section5/archive/Rule5-10.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-10.md similarity index 100% rename from docs/section5/archive/Rule5-10.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-10.md diff --git a/docs/section5/archive/Rule5-12.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-12.md similarity index 100% rename from docs/section5/archive/Rule5-12.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-12.md diff --git a/docs/section5/archive/Rule5-14.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-14.md similarity index 100% rename from docs/section5/archive/Rule5-14.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-14.md diff --git a/docs/section5/archive/Rule5-16.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-16.md similarity index 100% rename from docs/section5/archive/Rule5-16.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-16.md diff --git a/docs/section5/archive/Rule5-2.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-2.md similarity index 100% rename from docs/section5/archive/Rule5-2.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-2.md diff --git a/docs/section5/archive/Rule5-23.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-23.md similarity index 100% rename from docs/section5/archive/Rule5-23.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-23.md diff --git a/docs/section5/archive/Rule5-25.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-25.md similarity index 100% rename from docs/section5/archive/Rule5-25.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-25.md diff --git a/docs/section5/archive/Rule5-27.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-27.md similarity index 100% rename from docs/section5/archive/Rule5-27.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-27.md diff --git a/docs/section5/archive/Rule5-29.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-29.md similarity index 100% rename from docs/section5/archive/Rule5-29.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-29.md diff --git a/docs/section5/archive/Rule5-30.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-30.md similarity index 100% rename from docs/section5/archive/Rule5-30.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-30.md diff --git a/docs/section5/archive/Rule5-33.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-33.md similarity index 100% rename from docs/section5/archive/Rule5-33.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-33.md diff --git a/docs/section5/archive/Rule5-39.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-39.md similarity index 100% rename from docs/section5/archive/Rule5-39.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-39.md diff --git a/docs/section5/archive/Rule5-4.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-4.md similarity index 100% rename from docs/section5/archive/Rule5-4.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-4.md diff --git a/docs/section5/archive/Rule5-41.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-41.md similarity index 100% rename from docs/section5/archive/Rule5-41.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-41.md diff --git a/docs/section5/archive/Rule5-43.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-43.md similarity index 100% rename from docs/section5/archive/Rule5-43.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-43.md diff --git a/docs/section5/archive/Rule5-45.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-45.md similarity index 100% rename from docs/section5/archive/Rule5-45.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-45.md diff --git a/docs/section5/archive/Rule5-50.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-50.md similarity index 100% rename from docs/section5/archive/Rule5-50.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-50.md diff --git a/docs/section5/archive/Rule5-51.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-51.md similarity index 100% rename from docs/section5/archive/Rule5-51.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-51.md diff --git a/docs/section5/archive/Rule5-6.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-6.md similarity index 100% rename from docs/section5/archive/Rule5-6.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-6.md diff --git a/docs/section5/archive/Rule5-7.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-7.md similarity index 100% rename from docs/section5/archive/Rule5-7.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-7.md diff --git a/docs/section5/archive/Rule5-9.md b/docs/ashrae_90p1_2019/section5/archive/Rule5-9.md similarity index 100% rename from docs/section5/archive/Rule5-9.md rename to docs/ashrae_90p1_2019/section5/archive/Rule5-9.md diff --git a/docs/section6/Rule6-1.md b/docs/ashrae_90p1_2019/section6/Rule6-1.md similarity index 100% rename from docs/section6/Rule6-1.md rename to docs/ashrae_90p1_2019/section6/Rule6-1.md diff --git a/docs/ashrae_90p1_2019/section6/Rule6-10.md b/docs/ashrae_90p1_2019/section6/Rule6-10.md new file mode 100644 index 0000000000..ceae28e7d1 --- /dev/null +++ b/docs/ashrae_90p1_2019/section6/Rule6-10.md @@ -0,0 +1,45 @@ + +# Lighting - Rule 6-10 + +**Rule ID:** 6-10 +**Rule Description:** Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less. +**Rule Assertion:** Baseline RMD = expected value +**Appendix G Section:** G3.1 #6 Baseline column + +**Mandatory Rule:** True +**Evaluation Context:** Each Space +**Function Call:** + +- get_component_by_id() + +## Applicability Check: +- look at each building segment: `for building_segment in P_RMD.building_segments:` + - look at each space: `for space in building_segment...spaces:` + - if the space has any retail display lighting then the rule applies: `if len(space["interior_lighting"]) > 0 and any(interior_lighting["purpose_type"] == "RETAIL_DISPLAY" for interior_lighting in space["interior_lighting"]):` + - return True: `return True` + - else return False: `return False` + +## Rule Logic: +- 9.5.2.2(b) gives a formula (750 W + (Retail Area 1 × 0.40 W/ft2) + (Retail Area 2 × 0.40 W/ft2) + (Retail Area 3 × 0.70 W/ft2) + (Retail Area 4 × 1.00 W/ft2)) for retail display lighting that is based on four area categories. We don't have access to these four area categories in the schema, so we will calculate the maximum and minimum values possible based on this function. +- The maximum is calculated based on 100% of the space floor area being type 4: `maximum_retail_display_w = 750 + space_p["floor_area"]` +- The minimum is calculated based on none of the floor area being a retail area: `minimum_retail_display_w = 750` +- now calculate the total proposed interior display lighting power for this space - initialize at 0: `proposed_interior_display_w = 0` +- for each interior lighting in the proposed space: `for interior_lighting in space_p["interior_lighting"]:` + - if the interior lighting purpose_type is RETAIL_DISPLAY, add the lighting wattage to proposed_interior_display_w: `if interior_lighting["purpose_type"] == "RETAIL_DISPLAY": proposed_interior_display_w += interior_lighting["power_per_area"] * space_p["floor_area"]` + +- get the equivalent space in the baseline model: `space_b = get_component_by_id(space.id, B_RMD);` +- calculate the total baseline interior display lighting power for this space - initialize at 0: `baseline_interior_display_w = 0` +- for each interior lighting in the baseline space: `for interior_lighting in space_b["interior_lighting"]:` + - if the interior lighting purpose_type is RETAIL_DISPLAY, add the lighting wattage to baseline_interior_display_w: `if interior_lighting["purpose_type"] == "RETAIL_DISPLAY": baseline_interior_display_w += interior_lighting["power_per_area"] * space_p["floor_area"]` + +**Rule Assertion:** +- Case 1: If the proposed_interior_display_w is less than or equal to the minimum AND the baseline_interior_display_w is equal to the proposed, then PASS: `if((proposed_interior_display_w <= minimum_retail_display_w) and (baseline_interior_display_w == proposed_interior_display_w)): PASS` +- Case 2: Otherwise, if the baseline_interior_display_w is greater than the minimum of proposed_interior_display_w and maximum_retail_display_w, then FAIL: `elif baseline_interior_display_w > min(proposed_interior_display_w, maximum_retail_display_w): FAIL` +- Case 3: All other cases UNDETERMINED and provide note: `else: UNDETERMINED; note = "It could not be determined whether the baseline retail display lighting power is modeled correctly as the minimum of the proposed retail display lighting power and the allowance calculated according to the formulas in ASHRAE 90.1 Section 9.5.2.2(b)."` + + +**Notes:** None + +**[Back](../_toc.md)** + + diff --git a/docs/section6/Rule6-2.md b/docs/ashrae_90p1_2019/section6/Rule6-2.md similarity index 100% rename from docs/section6/Rule6-2.md rename to docs/ashrae_90p1_2019/section6/Rule6-2.md diff --git a/docs/section6/Rule6-3.md b/docs/ashrae_90p1_2019/section6/Rule6-3.md similarity index 100% rename from docs/section6/Rule6-3.md rename to docs/ashrae_90p1_2019/section6/Rule6-3.md diff --git a/docs/section6/Rule6-4.md b/docs/ashrae_90p1_2019/section6/Rule6-4.md similarity index 100% rename from docs/section6/Rule6-4.md rename to docs/ashrae_90p1_2019/section6/Rule6-4.md diff --git a/docs/section6/Rule6-5.md b/docs/ashrae_90p1_2019/section6/Rule6-5.md similarity index 100% rename from docs/section6/Rule6-5.md rename to docs/ashrae_90p1_2019/section6/Rule6-5.md diff --git a/docs/section6/Rule6-6.md b/docs/ashrae_90p1_2019/section6/Rule6-6.md similarity index 100% rename from docs/section6/Rule6-6.md rename to docs/ashrae_90p1_2019/section6/Rule6-6.md diff --git a/docs/section6/Rule6-7.md b/docs/ashrae_90p1_2019/section6/Rule6-7.md similarity index 100% rename from docs/section6/Rule6-7.md rename to docs/ashrae_90p1_2019/section6/Rule6-7.md diff --git a/docs/section6/Rule6-8.md b/docs/ashrae_90p1_2019/section6/Rule6-8.md similarity index 100% rename from docs/section6/Rule6-8.md rename to docs/ashrae_90p1_2019/section6/Rule6-8.md diff --git a/docs/section6/Rule6-9.md b/docs/ashrae_90p1_2019/section6/Rule6-9.md similarity index 100% rename from docs/section6/Rule6-9.md rename to docs/ashrae_90p1_2019/section6/Rule6-9.md diff --git a/docs/section6/archive/Rule6-1.md b/docs/ashrae_90p1_2019/section6/archive/Rule6-1.md similarity index 100% rename from docs/section6/archive/Rule6-1.md rename to docs/ashrae_90p1_2019/section6/archive/Rule6-1.md diff --git a/docs/ashrae_90p1_2022/_toc.md b/docs/ashrae_90p1_2022/_toc.md new file mode 100644 index 0000000000..e52a5070a4 --- /dev/null +++ b/docs/ashrae_90p1_2022/_toc.md @@ -0,0 +1,29 @@ +# ASHRAE 90.1 2022 Rule Definition Development + +### Introduction +This document describes the ASHRAE 90.1-2022 Appendix G rules, highlighting updates made to the 2019 ruleset. The primary focus is on delineating changes introduced in the 2022 version. +While the foundational structure remains consistent with the 2019 ruleset, this document is limited to describing modifications and additions made in 2022. Where applicable, references to the General Ruleset Functions and Data Tables from the 2019 ruleset are provided to maintain continuity. +This approach ensures that changes in the standards are effectively integrated without requiring a complete re-documentation, enabling developers to adapt the relevant updates within the broader technical framework. + +## Ruleset Functions + * [get_surface_conditioning_category_for_single_rmd](ruleset_functions/get_surface_conditioning_category_for_single_RMD.md): This function cycles through each surface in a zone and categorize it as exterior res, exterior non res, exterior mixed, semi-exterior or unregulated. - new for ASHRAE 90.1-2022, this is the same as get_surface_conditioning_category in ASHRAE 90.1-2019. + +## Section 5 - Envelope + * [5-42](section5/Rule5-42.md): Each linear thermal bridge and point thermal bridge as identified in Section 5.5.5 shall be modeled using either of the following techniques. + * [5-43](section5/Rule5-43.md): Automatic fenestration shading devices shall not be modeled in the Baseline. + * [5-44](section5/Rule5-44.md): The baseline above-grade wall surfaces shall be modeled with a solar reflectance of 0.25. + * [5-45](section5/Rule5-45.md): The baseline above-grade wall surfaces shall be modeled with a thermal emittance of 0.90. + +## Section 6 - Lighting + * [6-1](section6/Rule6-1.md): Proposed building interior lighting power shall not exceel total interior lighting power allowance determined using either G3.7 or G3.8 + * [6-11](section6/Rule6-11.md): Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b) + +## Section 21 - Central Heating Hot Water Systems + * [21-19](section21/Rule21-19.md): Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop. + +## Section 22 - Central Chilled Water Systems + *[22-42](section22/Rule22-42.md): The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design. + *[22-43](section22/Rule22-43.md): When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25. + *[22-44](section22/Rule22-44.md): Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10°F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller. + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/ruleset_functions/get_surface_conditioning_category_for_single_RMD.md b/docs/ashrae_90p1_2022/ruleset_functions/get_surface_conditioning_category_for_single_RMD.md new file mode 100644 index 0000000000..09b45b52ed --- /dev/null +++ b/docs/ashrae_90p1_2022/ruleset_functions/get_surface_conditioning_category_for_single_RMD.md @@ -0,0 +1,94 @@ + +## get_surface_conditioning_category_for_single_RMD +**Schema Version:** 0.1.3 +Description: This function cycles through each surface in a zone and categorize it as exterior res, exterior non res, exterior mixed, semi-exterior or unregulated. - new for ASHRAE 90.1-2022, this is the same as get_surface_conditioning_category in ASHRAE 90.1-2019 + +Inputs: + + - **RMR**: The RMR that needs to determine surface conditioning category. + +Returns: + + - **surface_conditioning_category**: The Surface Conditioning Category [exterior residential, exterior non-residential, exterior mixed, semi-exterior, unregulated]. + +Logic: + +- Get zone conditioning category dictionary for the RMR: `zone_conditioning_category_dict = get_zone_conditioning_category(RMR)` + +- For each building segment in the RMR: `for building_segment in RMR.building.building_segments:` + + - For each zone in building segement: `for zone in building_segment.zones:` + + - If zone is residential and conditioned: `if zone_conditioning_category_dict[zone.id] == "CONDITIONED RESIDENTIAL":` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is exterior, ground or if surface adjacency is interior and the adjacent zone is unenclosed, surface is classified as exterior residential type: `if ( surface.adjacent_to == EXTERIOR ) OR ( surface.adjacent_to == GROUND ) OR ( ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNENCLOSED" ) ): surface_conditioning_category_dict[surface.id] = "EXTERIOR RESIDENTIAL"` + + - Else if surface adjacency is interior and the adjacent zone is semi-heated or unconditioned, surface is classified as semi-exterior: `else if ( surface.adjacent_to == INTERIOR ) AND ( ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "SEMI-HEATED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNCONDITIONED" ) ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + + - Else if zone is non-residential and conditioned: `else if zone_conditioning_category_dict[zone.id] == "CONDITIONED NONRESIDENTIAL":` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is exterior, ground or if surface adjacency is interior and the adjacent zone is unenclosed, surface is classified as exterior non-residential type: `if ( surface.adjacent_to == EXTERIOR ) OR ( surface.adjacent_to == GROUND ) OR ( ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNENCLOSED" ) ): surface_conditioning_category_dict[surface.id] = "EXTERIOR NON-RESIDENTIAL"` + + - Else if surface adjacency is interior and the adjacent zone is semi-heated or unconditioned, surface is classified as semi-exterior: `else if ( surface.adjacent_to == INTERIOR ) AND ( ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "SEMI-HEATED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNCONDITIONED" ) ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + + - Else if zone is mixed and conditioned: `else if zone_conditioning_category_dict[zone.id] == "CONDITIONED MIXED":` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is exterior, ground or if surface adjacency is interior and the adjacent zone is unenclosed, surface is classified as exterior mixed type: `if ( surface.adjacent_to == EXTERIOR ) OR ( surface.adjacent_to == GROUND ) OR ( ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNENCLOSED" ) ): surface_conditioning_category_dict[surface.id] = "EXTERIOR MIXED"` + + - Else if surface adjacency is interior and the adjacent zone is semi-heated or unconditioned, surface is classified as semi-exterior: `else if ( surface.adjacent_to == INTERIOR ) AND ( ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "SEMI-HEATED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNCONDITIONED" ) ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + + - Else if zone is semi-heated: `else if zone_conditioning_category_dict[zone.id] == "SEMI-HEATED":` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is exterior, ground, or if surface adjacency is interior and the adjacent zone is conditioned, unenclosed or unconditioned, surface is classified as semi-exterior: `if ( surface.adjacent_to == EXTERIOR ) OR ( surface.adjacent_to == GROUND ) OR ( ( surface.adjacent_to == INTERIOR ) AND ( ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED RESIDENTIAL" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED NON-RESIDENTIAL" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED MIXED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNENCLOSED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "UNCONDITIONED" ) ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is classified as unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + + - Else if zone is unenclosed: `else if zone_conditioning_category_dict[zone.id] == "UNENCLOSED":` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is interior and the adjacent zone is residential and conditioned, surface is classified as exterior residential: `else if ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED RESIDENTIAL" ): surface_conditioning_category_dict[surface.id] = "EXTERIOR RESIDENTIAL"` + + - Else if surface adjacency is interior and the adjacent zone is non-residential and conditioned, surface is classified as exterior non-residential: `else if ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED NON-RESIDENTIAL" ): surface_conditioning_category_dict[surface.id] = "EXTERIOR NON-RESIDENTIAL"` + + - Else if surface adjacency is interior and the adjacent zone is mixed and conditioned, surface is classified as exterior mixed: `else if ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED MIXED" ): surface_conditioning_category_dict[surface.id] = "EXTERIOR MIXED"` + + - Else if surface adjacency is interior and the adjacent zone is semi-heated, surface is classified as semi-exterior: `else if ( surface.adjacent_to == INTERIOR ) AND ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "SEMI-HEATED" ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is classified as unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + + - Else, zone is unconditioned: `else:` + + - For each surface in zone: `for surface in zone.surfaces:` + + - If surface adjacency is interior and the adjacent zone is conditioned or semi-heated, surface is classified as semi-exterior: `if ( surface.adjacent_to == INTERIOR ) AND ( ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED RESIDENTIAL" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED NON-RESIDENTIAL" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "CONDITIONED MIXED" ) OR ( zone_conditioning_category_dict[surface.adjacent_zone_id] == "SEMI-HEATED" ) ): surface_conditioning_category_dict[surface.id] = "SEMI-EXTERIOR"` + + - Else, surface is classified as unregulated: `else: surface_conditioning_category_dict[surface.id] = "UNREGULATED"` + +**Returns** `return surface_conditioning_category_dict` + +**Rule Assertion Table for Reference:** +| Adjacent to /Zone |Conditioned Res |Conditioned Non-Res |Conditioned Mix |Semi-heated |Unenclosed |Unconditioned |Exterior |Ground | +| :- |:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: | +| Conditioned Res |UR |UR |UR |SEMI |E-R |SEMI |E-R |E-R | +| Conditioned Non-Res |UR |UR |UR |SEMI |E-NR |SEMI |E-NR |E-NR | +| Conditioned Mix |UR |UR |UR |SEMI |E-M |SEMI |E-M |E-M | +| Semi-heated |SEMI |SEMI |SEMI |UR |SEMI |SEMI |SEMI |SEMI | +| Unenclosed |E-R |E-NR |E-M |SEMI |UR |UR |UR |UR | +| Unconditioned |SEMI |SEMI |SEMI |SEMI |UR |UR |UR |UR | + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section21/Rule21-19.md b/docs/ashrae_90p1_2022/section21/Rule21-19.md new file mode 100644 index 0000000000..23bc8d5431 --- /dev/null +++ b/docs/ashrae_90p1_2022/section21/Rule21-19.md @@ -0,0 +1,43 @@ +# Boiler - Rule 21-19 + +**Rule ID:** 21-19 +**Rule Description:** Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop. +**Rule Assertion:** B-RMD +**Appendix G Section:** Section 21 Boiler +**Appendix G Section Reference:** Section G3.2.3.5 + +**Applicability:** All required data elements exist for B_RMD +**Applicability Checks:** + +1. B-RMD is modeled with at least one baseline HVAC system type: 1, 5, 7, 11.2, 12, 1a, 7a, 11.2a, or 12a. +2. Fluid Loop type is "HEATING" + +**Evaluation Context:** each Fluid Loop +**Data Lookup:** None +**Function Call:** + +1. get_baseline_system_types() + +**Applicability Checks:** + +- Get B-RMD system types: `baseline_hvac_system_dict = get_baseline_system_types(B-RMD)` + + - Check if B-RMD is modeled with at least one baseline HVAC system type: 1, 5, 7, 11.2, 12, 1a, 7a, 11.2a, or 12a, continue to rule logic: `if any(sys_type in baseline_hvac_system_dict.keys() for sys_type in ["SYS-1", "SYS-5", "SYS-7", "SYS-11.2", "SYS-12", "SYS-1A", "SYS-7A", "SYS-11.2A", "SYS-12A"]): CHECK_RULE_LOGIC` + + - Else, rule is not applicable to B-RMD: `else: RULE_NOT_APPLICABLE` + +## Rule Logic: + +- For each heating fluid loop in the baseline model: `for hw_loop_b in B_RMD["fluid_loops"][?(@.type == "HEATING")]:` + + - Get the associated heating design and control data group: `hw_design_control_b = hw_loop_b["heating_design_and_control"]` + + **Rule Assertion:** + - Case 1: If the hot water loop operation is on-demand: `if hw_design_control_b["operation"] == "INTERMITTENT": PASS` + + - Case 2: Else: `else: FAIL` + +## Notes +- None + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section22/Rule22-42.md b/docs/ashrae_90p1_2022/section22/Rule22-42.md new file mode 100644 index 0000000000..ae6cd20a77 --- /dev/null +++ b/docs/ashrae_90p1_2022/section22/Rule22-42.md @@ -0,0 +1,54 @@ + +# CHW & CW - Rule 22-42 + +**Rule ID:** 22-42 +**Rule Description:** The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design. +**Rule Assertion:** Baseline RMD = expected value +**Appendix G Section:** G3.2.2.1 Baseline + +**Mandatory Rule:** True +**Evaluation Context:** Each Chiller +**Table Lookup:** +J-6 +**Function Call:** +1. does_chiller_performance_match_curve() + +## Applicability Check: + +- **Check 1:** Get B-RMD system types: `baseline_hvac_system_dict = get_baseline_system_types(B-RMD)` + +- Check if B-RMD is modeled with at least one air-side system that is Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11b, 12b, i.e. with air-side system served by chiller(s), continue to the next applicability check: `if any(sys_type in baseline_hvac_system_dict.keys() for sys_type in ["SYS-7", "SYS-8", "SYS-11.1", "SYS-11.2", "SYS-12", "SYS-13", "SYS-7B", "SYS-8B", "SYS-11B", "SYS-12B"]): NEXT_APPLICABILITY_CHECK` + +- Else, rule is not applicable to B-RMD: `else: RULE_NOT_APPLICABLE` + +- Get primary and secondary loops for B-RMD: `primary_secondary_loop_dictionary = get_primary_secondary_loops_dict(B_RMD)` + +- For each chiller in B_RMD: `for chiller in B_RMD...chillers:` + + - Check if chiller is connected to a primary chilled water loop that serves HVAC systems: `if chiller.cooling_loop.id in primary_secondary_loop_dictionary: CHECK_RULE_LOGIC` + +## Rule Logic: + +- figure out the set of performance curves needed for the chiller - this should be V, X, Y, Z, AA or AB. Initialize a variable curve_set and set it to "NONE": `curve_set = "NONE"` +- get the chiller rated capacity: `rated_capacity = chiller["rated_capacity"]` + +- check if the compressor type is CENTRIFUGAL: `if chiller["compressor_type"] == "CENTRIFUGAL":` + - if the capacity is less than 150 tons, the category is Z: `if rated_capacity < 150 tons: curve_set = "Z"` + - otherwise, if the capacity is between 150 and 300 tons, the category is AA: `elif (rated_capacity >= 150 tons) and (rated_capacity < 300 tons): curve_set = "AA"` + - else the capacity is greater than or equal to 300 tons, the category is AB: `else: curve_set = "AB"` + +- otherwise, check if the compressor type is POSITIVE_DISPLACEMENT or SCROLL: `if chiller["compressor_type"] in ["POSITIVE_DISPLACEMENT","SCROLL","SCREW"]:` + - if the capacity is less than 150 tons, the category is V: `if rated_capacity < 150 tons: curve_set = "V"` + - else if the capacity is greater than or equal to 300 tons, the category is AA: `elif rated_capacity >= 300 tons: curve_set = "Y"` + - otherwise, the capacity is between 150 and 300, so the curves set is AB: `else: curve_set = "X"` + + **Rule Assertion:** + - Case 1: all lists of missing or non-matching validation points have a length of zero: PASS: `if does_chiller_performance_match_curve(chiller, curve_set): PASS` + - Case 2: all other cases fail: `else: FAIL` + + +**Notes:** +None + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section22/Rule22-43.md b/docs/ashrae_90p1_2022/section22/Rule22-43.md new file mode 100644 index 0000000000..3df23d9bbb --- /dev/null +++ b/docs/ashrae_90p1_2022/section22/Rule22-43.md @@ -0,0 +1,66 @@ +# Chiller - Rule 22-43 +**Schema Version:** 0.0.25 +**Mandatory Rule:** False +**Rule ID:** 22-43 +**Rule Description:** When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25. +**Rule Assertion:** Baseline RMD = expected value +**Appendix G Section:** Section G3.2.2.1 Equipment Efficiencies +**90.1 Section Reference:** None +**Data Lookup:** None +**Manual Check:** No +**Evaluation Context:** Chiller +**Data Lookup:** None +**Function Call:** +1. does_chiller_performance_match_curve() +2. get_primary_secondary_loops_dict() +3. get_baseline_system_types() + + +## Applicability Check: + +- **Check 1:** Get B-RMD system types: `baseline_hvac_system_dict = get_baseline_system_types(B-RMD)` + +- Check if B-RMD is modeled with at least one air-side system that is Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11b, 12b, i.e. with air-side system served by chiller(s), continue to the next applicability check: `if any(sys_type in baseline_hvac_system_dict.keys() for sys_type in ["SYS-7", "SYS-8", "SYS-11.1", "SYS-11.2", "SYS-12", "SYS-13", "SYS-7B", "SYS-8B", "SYS-11B", "SYS-12B"]): NEXT_APPLICABILITY_CHECK` + +- Else, rule is not applicable to B-RMD: `else: RULE_NOT_APPLICABLE` + +- Get primary and secondary loops for B-RMD: `primary_secondary_loop_dictionary = get_primary_secondary_loops_dict(B_RMD)` + +- For each chiller in B_RMD: `for chiller in B_RMD...chillers:` + + - Figure out the set of performance curves needed for the chiller - this should be V, X, Y, Z, AA or AB. Initialize a variable curve_set and set it to "NONE": `curve_set = "NONE"` + + - Get the chiller rated capacity: `rated_capacity = chiller.rated_capacity` + + - If the compressor type is CENTRIFUGAL: `if chiller.compressor_type == "CENTRIFUGAL":` + + - If the capacity is less than 150 tons, the category is Z: `if chiller_capacity_tons < 150: curve_set = "Z"` + + - Elif the capacity is between 150 and 300 tons, the category is AA: `elif (chiller_capacity_tons >= 150) and (chiller_capacity_tons < 300): curve_set = "AA"` + + - Else the capacity is greater than or equal to 300 tons, the category is AB: `else: curve_set = "AB"` + + - otherwise, check if the compressor type is POSITIVE_DISPLACEMENT or SCROLL: `if chiller.compressor_type in ["POSITIVE_DISPLACEMENT","SCROLL","SCREW"]:` + + - If the capacity is less than 150 tons, the category is V: `if chiller_capacity_tons < 150: curve_set = "V"` + + - Elif if the capacity is greater than or equal to 300 tons, the category is Y: `elif chiller_capacity_tons >= 300: curve_set = "Y"` + + - Else the capacity is between 150 and 300, so the curve set is X: `else: curve_set = "X"` + + - If the curve set is "NONE" exit evaluation early with UNDETERMINED outcome - the curve set could be none if the chiller.compressor_type is not one of the recognized types for Appendix G: `if curve_set is "NONE": UNDETERMINED` + + - Check if chiller is connected to a primary chilled water loop that serves HVAC systems and has performance that aligns with App J: `if chiller.cooling_loop.id in primary_secondary_loop_dictionary and does_chiller_performance_match_curve(chiller, curve_set): CHECK_RULE_LOGIC` + +## Rule Logic: + + **Rule Assertion:** + - Case 1: the chiller's minimum part-load ratio and minimum compressor unloading ratio are both equal to 0.25: PASS `if chiller.minimum_load_ratio == 0.25 AND chiller.minimum_unload_ratio == 0.25: PASS` + - Case 2: either the chiller's minimum part-load ratio or minimum compressor unloading ratio are not defined: UNDETERMINED `elif chiller.minimum_load_ratio == NULL OR chiller.minimum_unload_ratio == NULL: UNDETERMINED` + - Case 3: else: FAIL: `else: FAIL` + + +**Notes:** +1. RCT should include the expected ratios and modeled ratios in the calc_vals for transparency. + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section22/Rule22-44.md b/docs/ashrae_90p1_2022/section22/Rule22-44.md new file mode 100644 index 0000000000..0f4c7667a1 --- /dev/null +++ b/docs/ashrae_90p1_2022/section22/Rule22-44.md @@ -0,0 +1,59 @@ +# CHW & CW - Rule 22-44 + +**Rule ID:** 22-44 +**Rule Description:** Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10°F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller. +**Rule Assertion:** Proposed RMD = expected value +**Appendix G Section:** Table G3.1 #10b Proposed Column +**Applicability Check** +1. Proposed includes at least one non process chiller + +**Mandatory Rule:** True +**Evaluation Context:** Each Chiller +**Table Lookup:** 90.1 Appendix J Table J-1 +**Function Call:** +1. does_chiller_performance_match_curve() + +## Applicability Check: +- For each building segment in P-RMD: `for building_segment in P-RMD...Building.building_segments:` + - For each HVAC system in building segment: `for hvac in building_segment.heating_ventilating_air_conditioning_systems:` + - Save chilled water loop that serves cooling systems to non-process CHW coil loop list (list for all loops connected to cooling coils): `if getattr(hvac, 'cooling_system', None) and getattr(hvac.cooling_system, 'chilled_water_loop', None): non_process_chw_coil_loop_list.append(hvac.cooling_system.chilled_water_loop)` +- For each chiller in P_RMD: `for chiller in P_RMD...chillers:` + - Check if chiller loop serves any HVAC systems, if not, then NOT_APPLICABLE for the chiller: `if chiller["cooling_loop"] in non_process_chw_coil_loop_list: CHECK_RULE_LOGIC` + +## Rule Logic: + + - figure out the set of performance curves needed for the chiller - this should be A - U. Initialize a variable curve_set and set it to "NONE": `curve_set = "NONE"` + - get the chiller rated capacity: `rated_capacity = chiller["rated_capacity"]` + + - Data Table J-1 Lookup - determine the set of performance curves to check based on the chiller type and as shown below: + - if the chiller is air-cooled: `if chiller.get("condensing_loop") is None:` + - if the capacity is less than 150 tons, the curves to check are A and K: `if rated_capacity < 150 tons: curve_set_list = ["A", "K"]` + - if the capacity is greater than or equal to 150 tons, the curves to check are B and L: `else: curve_set_list = ["B", "L"]` + + - if the compressor type is POSITIVE_DISPLACEMENT or SCROLL: `if chiller["compressor_type"] in ["POSITIVE_DISPLACEMENT","SCROLL","SCREW"]:` + - if the capacity is less than 75 tons, the curves to check are C and M: `if rated_capacity < 75 tons: curve_set_list = ["C", "M"]` + - else if the capacity is less than 150 tons, the curves to check are D and N: `elif rated_capacity < 150 tons: curve_set_list = ["D", "N"]` + - else if the capacity is less than 300 tons, the curves to check are E and O: `elif rated_capacity < 300 tons: curve_set_list = ["E", "O"]` + - else if the capacity is less than 600 tons, the curves to check are F and P: `elif rated_capacity < 600 tons: curve_set_list = ["F", "P"]` + - else the capacity is greater than or equal to 600 tons, so the curves to check are G and Q: `else: curve_set_list = ["G", "Q"]` + + - if the compressor type is CENTRIFUGAL: `if chiller["compressor_type"] == "CENTRIFUGAL":` + - if the capacity is less than 150 tons, the curves to check are H and R: `if rated_capacity < 150 tons: curve_set_list= ["H", "R"]` + - else if the capacity is less than 300 tons, the curves to check are H and S: `elif rated_capacity < 300 tons: curve_set_list = ["H", "S"]` + - else if the capacity is less than 400 tons, the curves to check are I and T: `elif rated_capacity < 400 tons: curve_set_list = ["I", "T"]` + - else if the capacity is less than 600 tons, the curves to check are J and U: `elif rated_capacity < 600 tons: curve_set_list = ["J", "U"]` + - else the capacity is greater than or equal to 600 tons, the curves to check are J and U: `else: curve_set_list = ["J", "U"]` + + - get the design temperature across the condenser: `design_temperature_across_condenser = chiller["design_leaving_condenser_temperature"] - chiller["design_entering_condenser_temperature"]` + + **Rule Assertion:** + - Case 1: all lists of missing or non-matching validation points have a length of zero and the design temperature across the condenser is 10F: PASS `if any(does_chiller_performance_match_curve(chiller, curve_set) for curve_set in curve_set_list) and design_temperature_across_condenser == 10: PASS` + - Case 2: all lists of missing or non-matching validation points have a length of zero and the design temperature across the condenser is NOT 10F: FAIL `elif any(does_chiller_performance_match_curve(chiller, curve_set) for curve_set in curve_set_list) and design_temperature_across_condenser != 10: FAIL` + - Case 3: else when the chiller performance does not match the curves in Appendix J: UNDETERMINED `else: UNDETERMINED and raise_message "FAIL unless manufacturer full- and part-load data is provided to support the modeled curves.` + - Note to RDS team - if there is missing operating point data the outcome is also UNDETERMINED with a message indicating that the modeled performance curves could not be evaluated. + +**Notes:** +1. This rule requires a new data element in the schema: 'design_leaving_condenser_temperature' in the Chiller data group + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section5/Rule5-42.md b/docs/ashrae_90p1_2022/section5/Rule5-42.md new file mode 100644 index 0000000000..81dc55e892 --- /dev/null +++ b/docs/ashrae_90p1_2022/section5/Rule5-42.md @@ -0,0 +1,39 @@ +# Envelope - Rule 5-42 +**Schema Version:** 0.0.37 +**Mandatory Rule:** False +**Rule ID:** 5-42 + +**Rule Description:** Each linear thermal bridge and point thermal bridge as identified in Section 5.5.5 shall be modeled using either of the following techniques: + +a. A separate model of the assembly within the energy simulation model. +b. Adjustment of the clear-field U-factor in accordance with Section A10.2. + +**Rule Assertion:** B-RMR = expected value +**Appendix G Section:** Section G3.1-5 Building Envelope Modeling Requirements for the Proposed building +**Appendix G Section Reference:** Table G3.1 Section 5(a) Exception #1 +**Data Lookup:** None +**Evaluation Context:** Evaluate each Project + +**Applicability Checks:** + +1. A project has at least one regulated surface. + +**Function Call:** + +**Manual Check:** Ensure that linear and point thermal bridges, as identified in Section 5.5.5 are modeled using either of the following techniques: +a. A separate model of the assembly within the energy simulation model. +b. Adjustment of the clear-field U-factor in accordance with Section A10.2. + +**Rule Logic:** +**Applicability:** +- for each building in the proposed RMD: `for building in P_RMD....buildings:` + - get the surface conditioning category dictionary for the building: `scc_dictionary_p = get_surface_conditioning_category(climate_zone, building)` + - for each zone in the building: `for zone in building....zones:` + - for each surface in the zone: `for surface in zone.surfaces:` + - get the surface conditioning category: `scc = scc_dictionary_p[surface.id]` + - if the project has at least one surface that is not an unregulated surface then this rule applies: `if scc != UNREGULATED:` + - set the outcome as UNDETERMINED because the rule cannot be fully evaluated: `outcome = UNDETERMINED` +- if the loop completes without finding a regulated surface then the rule is not applicable: `outcome = NOT_APPLICABLE` + + + **[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section5/Rule5-43.md b/docs/ashrae_90p1_2022/section5/Rule5-43.md new file mode 100644 index 0000000000..be89644bf8 --- /dev/null +++ b/docs/ashrae_90p1_2022/section5/Rule5-43.md @@ -0,0 +1,37 @@ + +# Envelope - Rule 5-43 + +**Mandatory Rule:** True +**Rule ID:** 5-43 +**Rule Description:** Automatic fenestration shading devices shall not be modeled in the Baseline. +**Rule Assertion:** Baseline RMD = expected value +**Appendix G Section:** Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building +**Schema Version** 0.1.3 + +**Manual Check:** None +**Evaluation Context:** Each Building +**Function Call:** + + +## Applicability Check: +- check whether there are subsurfaces in the building. If there are, continue to rule logic: `if len(B_RMD...subsurfaces) == 0: NOT APPLICABLE` +- otherwise, continue to the rule logic `else: CONTINUE TO RULE LOGIC` + +## Rule Logic: +- create a list automatic_shades_modeled and initialize it as an empty list: `automatic_shades_modeled = []` +- look at each surface: `for surface in B_RMD...surfaces:` + - check if the surface is an exterior surface type: `if surface.adjacent_to == "EXTERIOR":` + - look at each subsurface: `for sub_surface in surface.subsurfaces:` + - check whether the subsurface has the data element has_automatic_shades: `if sub_surface.has_automatic_shades != NULL:` + - if the window has automatic shades, append this sub_surface id to the list automatic_shades_modeled: `if sub_surface.has_automatic_shades: automatic_shades_modeled.append(sub_surface.id)` +- GO TO RULE ASSERTION + +**Rule Assertion:** +- Case 1: If the baseline does not have shading devices, the list automatic_shades_modeled will be empty, PASS: `if len(automatic_shades_modeled) == 0: PASS` +- Case 2: Otherwise FAIL and raise a message listing the subsurface IDs that failed: `else: FAIL and raise_message("Baseline model incorrectly includes automatic fenestration shading devices. Address this issue for the following subsurfaces: " + ", ".join(automatic_shades_modeled))` + + +**Notes:** + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section5/Rule5-44.md b/docs/ashrae_90p1_2022/section5/Rule5-44.md new file mode 100644 index 0000000000..6d7cc6cde6 --- /dev/null +++ b/docs/ashrae_90p1_2022/section5/Rule5-44.md @@ -0,0 +1,43 @@ + +# Envelope - Rule 5-44 + +**Rule ID:** 5-44 +**Rule Description:** The baseline above-grade wall surfaces shall be modeled with a solar reflectance of 0.25. +**Rule Assertion:** B-RMD SurfaceOpticalProperties:absorptance_solar_exterior = 0.75 +**Appendix G Section:** Table G3.1 Section 5(j) Baseline +**Appendix G Section Reference:** None + +**Applicability:** All required data elements exist for B_RMD +**Applicability Checks:** None + +**Manual Check:** None +**Evaluation Context:** Each Data Element +**Data Lookup:** None +**Function Call:** + + 1. get_opaque_surface_type() + 2. get_surface_conditioning_category() + +## Rule Logic: + +- Get surface conditioning category dictionary for B_RMD: ```scc_dictionary_b = get_surface_conditioning_category(B_RMD)``` + +- For each building segment in the Baseline model: `for building_segment_b in B_RMD.building.building_segments:` + + - For each zone_b in building_segment_b: `for zone_b in building_segments.zones:` + + - For each surface_b in zone_b: `for surface_b in zone_b.surfaces;` + + - Check if surface is above grade wall and is regulated, get surface optical properties: `if ( get_opaque_surface_type(surface_b.id) == "ABOVE-GRADE WALL" ) AND ( scc_dictionary_b[surface_b.id] != "UNREGULATED" ): surface_optical_properties_b = surface_b.surface_optical_properties` + + **Rule Assertion:** + + - Case 1: If above-grade wall surface solar reflectance is equal to 0.25: `if surface_optical_properties_b.absorptance_solar_exterior == 0.75: PASS` + + - Case 2: Else: `Else: FAIL` + +**Notes:** +- None + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section5/Rule5-45.md b/docs/ashrae_90p1_2022/section5/Rule5-45.md new file mode 100644 index 0000000000..1cb6f11f64 --- /dev/null +++ b/docs/ashrae_90p1_2022/section5/Rule5-45.md @@ -0,0 +1,42 @@ +# Envelope - Rule 5-45 + +**Rule ID:** 5-45 +**Rule Description:** The baseline above-grade wall surfaces shall be modeled with a thermal emittance of 0.90. +**Rule Assertion:** B-RMD SurfaceOpticalProperties:absorptance_thermal_exterior = 0.90 +**Appendix G Section:** Table G3.1 Section 5(j) Baseline +**Appendix G Section Reference:** None + +**Applicability:** All required data elements exist for B_RMD +**Applicability Checks:** None + +**Manual Check:** None +**Evaluation Context:** Each Data Element +**Data Lookup:** None +**Function Call:** + + 1. get_opaque_surface_type() + 2. get_surface_conditioning_category() + +## Rule Logic: + +- Get surface conditioning category dictionary for B_RMD: ```scc_dictionary_b = get_surface_conditioning_category(B_RMD)``` + +- For each building segment in the Baseline model: `for building_segment_b in B_RMD.building.building_segments:` + + - For each zone_b in building_segment_b: `for zone_b in building_segments.zones:` + + - For each surface_b in zone_b: `for surface_b in zone_b.surfaces;` + + - Check if surface is above grade wall and is regulated, get surface optical properties: `if ( get_opaque_surface_type(surface_b.id) == "ABOVE-GRADE WALL" ) AND ( scc_dictionary_b[surface_b.id] != "UNREGULATED" ): surface_optical_properties_b = surface_b.surface_optical_properties` + + **Rule Assertion:** + + - Case 1: If above-grade wall surface thermal emittance is equal to 0.90: `if surface_optical_properties_b.absorptance_thermal_exterior == 0.90: PASS` + + - Case 2: Else: `Else: FAIL` + +**Notes:** +- None + + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section6/Rule6-1.md b/docs/ashrae_90p1_2022/section6/Rule6-1.md new file mode 100644 index 0000000000..66908395d8 --- /dev/null +++ b/docs/ashrae_90p1_2022/section6/Rule6-1.md @@ -0,0 +1,74 @@ + +# Lighting - Rule 6-1 + +**Rule ID:** 6-1 +**Rule Description:** The total building interior lighting power shall not exceed the interior lighting power allowance determined using either Table G3.7 or G3.8. +**Appendix G Section:** Section G1.2.1(b) Mandatory Provisions related to interior lighting power +**Schema Version:** 0.1.3 + +**Appendix G Section Reference:** + +- Table G3.7, Performance Rating Method Lighting Power Density Allowances and Occupancy Sensor Reductions Using the Space-by-Space Method +- Table G3.8, Performance Rating Method Lighting Power Densities Using the Building Area Method + +**Applicability:** All required data elements exist for P_RMR +**Manual Check:** Yes +**Evaluation Context:** Each Data Element +**Data Lookup:** Table G3.7 and Table G3.8 +**Function Call:** None + +## Rule Logic: + +- For each building segment in the Proposed Model: `building_segment_p in P_RMR.building.building_segments` + + - If building segment specifies lighting building area type, get the allowable lighting power density from Table G3-8: `if building_segment_p.lighting_building_area_type in table_G3_8: allowable_LPD_BAM = data_lookup(table_G3_8, building_segment_p.lighting_building_area_type)` + + - Look at each zone in the building segment: `zone_p in building_segment_p.zones:` + + - For each space in zone: `space_p in zone_p.spaces:` + - Get total lighting power density in space, EXCLUDING retail display lighting located in Sales Area space types: `total_space_LPD_p = 0` + - Look at each lighting object in the space: `for interior_lighting in space_p.interior_lighting:` + - create a boolean is_part_of_total and set it to true: `is_part_of_total = TRUE` + - check whether the space type is one of the retail space types: `if space_p.lighting_space_type == "SALES AREA":` + - check whether this specific interior_lighting object is Retail display. If it is, set is_part_of_total to FALSE: `if interior_lighting.purpose_type == "RETAIL_DISPLAY": is_part_of_total = FALSE` + - Add the LPD of this interior_lighting if it is not retail display lighting located in a retail space: `if is_part_of_total: building_segment_design_lighting_wattage += interior_lighting.power_per_area * space_p.floor_area` + + - If building segment specifies lighting building area type , add space floor area to the total building segment floor area: `if allowable_LPD_BAM: total_building_segment_area_p += space_p.floor_area` + + - Check if any space does not specify lighting space type, flag for Building Area Method: `if NOT space_p.lighting_space_type: check_BAM_flag = TRUE` + + - Else, get the allowable lighting power density from Table G3-7: `else: allowable_LPD_space = data_lookup(table_G3_7, space_p.lighting_space_type)` + + - Add to the total allowable lighting wattage for the building segment using Space-by-Space method: `allowable_lighting_wattage_SBS += allowable_LPD_space * space_p.floor_area` + +**Rule Assertion:** + +- Case 1: For each building segment, if both lighting building area type and lighting space type in all spaces are specified, and the total lighting power in P_RMR is less than or equal to the higher of the Building Area Method and Space-by-Space Method allowances: `if ( allowable_LPD_BAM ) and ( NOT check_BAM_flag ) and ( building_segment_design_lighting_wattage <= max(allowable_LPD_BAM * total_building_segment_area_p, allowable_lighting_wattage_SBS) ): PASS` + +- Case 2: Else if both lighting building area type and lighting space type in all spaces are specified, and the total lighting power in P_RMR is more than the higher of the Building Area Method and Space-by-Space Method allowances: `else if ( allowable_LPD_BAM ) and ( NOT check_BAM_flag ) and ( building_segment_design_lighting_wattage > max(allowable_LPD_BAM * total_building_segment_area_p, allowable_lighting_wattage_SBS) ): FAIL` + +- Case 3: Else if lighting building area type is not specified, and lighting space type in all spaces are specified, and the total lighting power in P_RMR is less than or equal to the Space-by-Space Method allowance: `else if ( NOT allowable_LPD_BAM ) and ( NOT check_BAM_flag ) and ( building_segment_design_lighting_wattage <= allowable_lighting_wattage_SBS ): PASS and raise_warning 'PROJECT PASSES BASED ON SPACE-BY-SPACE METHOD. VERIFY IF PROJECT USES SPACE-BY-SPACE METHOD.'` + +- Case 4: Else if lighting building area type is not specified, and lighting space type in all spaces are specified, and the total lighting power in P_RMR is more than the Space-by-Space Method allowance: `else if ( NOT allowable_LPD_BAM ) and ( NOT check_BAM_flag ) and ( building_segment_design_lighting_wattage > allowable_lighting_wattage_SBS ): FAIL and raise_warning 'PROJECT FAILS BASED ON SPACE-BY-SPACE METHOD. LIGHTING_BUILDING_AREA_TYPE IS NOT KNOWN TO DETERMINE BUILDING AREA METHOD ALLOWANCE.'` + +- Case 5: Else if lighting building area type is specified, and lighting space type is not specified in all spaces, and the total lighting power in P_RMR is less than or equal to Building Area Method allowance: `else if ( allowable_LPD_BAM ) and ( check_BAM_flag ) and ( building_segment_design_lighting_wattage <= allowable_LPD_BAM * total_building_segment_area_p ): PASS and raise_warning 'PROJECT PASSES BASED ON BUILDING AREA METHOD. VERIFY IF PROJECT USES BUILDING AREA METHOD.'` + +- Case 6: Else if lighting building area type is specified, and lighting space type is not specified in all spaces, and the total lighting power in P_RMR is more than Building Area Method allowance: `else if ( allowable_LPD_BAM ) and ( check_BAM_flag ) and ( building_segment_design_lighting_wattage > allowable_LPD_BAM * total_building_segment_area_p ): FAIL and raise_warning 'PROJECT FAILS BASED ON BUILDING AREA METHOD. LIGHTING_SPACE_TYPE IS NOT KNOWN IN ALL SPACES TO DETERMINE SPACE-BY-SPACE METHOD ALLOWANCE.'` + +- Case 7: Else, lighting building area type is not specified, and lighting space type is not specified in all spaces: `Else: FAIL and raise_warning 'LIGHTING_BUILDING_AREA_TYPE IS NOT KNOWN AND LIGHTING_SPACE_TYPE IS NOT KNOWN IN ALL SPACES TO DETERMINE ALLOWANCE.'` + +**Notes Before Update for Reference Only:** +Updated the Rule ID from 6-2 to 6-1 on 6/8/2022 + +The RDS needs to be updated in the future based on the following: +- If lighting_building_area_type and lighting_space_type are know known, then calculate allowance based on both, pass if less than max + +- If lighting_building_area_type is not specified, lighting_space_type for all spaces in the building segment is included: then determine allowance based on lighting space type. + - If PASS- Output should say that project passed based on space by space method. Reviewer should verify if the project uses space by space method. + - If FAIL- then CAUTION and say that it fails space by space method and lighting_building_area_type is not known to determine allowance based on BAT. + +- If lighting_building_area_type provided but lighting_space_type not included: + - If PASS - Output should say that project passed based on building area method. Reviewer should verify if the project uses building area method. + - If FAIL- then CAUTION and say that it fails building area method and lighting_space_type is not known to determine allowance based on space by sspace method. + +**[Back](../_toc.md)** \ No newline at end of file diff --git a/docs/ashrae_90p1_2022/section6/Rule6-11.md b/docs/ashrae_90p1_2022/section6/Rule6-11.md new file mode 100644 index 0000000000..b62c73ddf4 --- /dev/null +++ b/docs/ashrae_90p1_2022/section6/Rule6-11.md @@ -0,0 +1,45 @@ + +# Lighting - Rule 6-11 + +**Rule ID:** 6-11 +**Rule Description:** Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b) +**Rule Assertion:** Proposed RMD = expected value +**Appendix G Section:** G1.2.1b.1 and the methodology described in Table 9.5.2.2(b) + +**Mandatory Rule:** True +**Evaluation Context:** Each Space +**Function Call:** + +- get_component_by_id() + +## Applicability Check: +- look at each building segment: `for building_segment in P_RMD.building_segments:` + - look at each space: `for space in building_segment...spaces:` + - set a boolean called applicable to false: `applicable = false` + - set lighting_space_type equal to the space.lighting_space_type: `lighting_space_type = space.lighting_space_type` + - if the lighting space type is a Sales Area, look at each InteriorLighting object in the model: `if lighting_space_type == "SALES AREA":` + - look at each interior lighting: `for interior_lighting in space.interior_lighting:` + - if the interior lighting purpose_type is RETAIL_DISPLAY, set applicable to true - we don't go to the rule logic for each interior lighting because the evaluation context is at the space level: `if interior_lighting.purpose_type == "RETAIL_DISPLAY": applicable = true` + - if the boolean applicable is true, continue to rule logic: `if applicable: CONTINUE TO RULE LOGIC` + - otherwise, rule is not applicable: `else: RULE NOT APPLICABLE` + + ## Rule Logic: + - 9.5.2.2(b) gives a formula (750 W + (Retail Area 1 × 0.40 W/ft2) + (Retail Area 2 × 0.40 W/ft2) + (Retail Area 3 × 0.70 W/ft2) + (Retail Area 4 × 1.00 W/ft2)) for retail display lighting that is based on four area categories. We don't have access to these four area categories in the schema, so we will calculate the maximum and minimum values possible based on this function. The maximum is calculated based on 100% of the space floor area being type 4: `maximum_retail_display_W = 750 + space.floor_area * (1)` + - the minimum is calculated based on none of the floor area being a retail area: `minimum_retail_display_W = 750` + - now calculate the total proposed interior display lighting power for this space - initialize at 0: `proposed_interior_display_W = 0` + - look at each lighting in the space: `for interior_lighting in space.interior_lighting:` + - if the interior lighting purpose_type is RETAIL_DISPLAY, add the lighting wattage to proposed_interior_display_W: `if interior_lighting.purpose_type == "RETAIL_DISPLAY": proposed_interior_display_W = proposed_interior_display_W + interior_lighting.power_per_area * space.floor_area` + + **Rule Assertion:** + - Case 1: If the proposed_interior_display_W is less than the minimum, then PASS: `if(proposed_interior_display_W < minimum_retail_display_W): PASS` + - Case 2: Otherwise, if the proposed_interior_display_W is greater than maximum_retail_display_W, then FAIL: `elif proposed_interior_display_W > maximum_retail_display_W: FAIL` + - Case 3: All other cases UNDETERMINED and provide note: `else: UNDETERMINED; note = "It could not be determined whether the proposed retail display lighting power is less than or equal to the allowance calculated according to the formulas in ASHRAE 90.1 Section 9.5.2.2(b)." + +` + + +**Notes:** +1. Is the lighting space type check necessary because we are checking the interior_lighting.purpose_type to be RETAIL_DISPLAY? + +**[Back](../_toc.md)** + diff --git a/poetry.lock b/poetry.lock index 316e6e7259..bc609651db 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1360,7 +1360,10 @@ files = [ {file = "xlrd-1.2.0.tar.gz", hash = "sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2"}, ] +[extras] +ashrae9012022 = [] + [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "21aaf82571e7183b2e58503551cc8f47ac528955eac0c4df89375d2fa80ca246" +content-hash = "30cf97c06ccd1713e615c556fec657049602cc8f7761992899da3ccdb2375d8b" diff --git a/pyproject.toml b/pyproject.toml index 0303284f36..49a1978fc9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,10 +2,18 @@ name = "ruleset-checking-tool" version = "0.4.2" description = "PNNL ruleset checking tool" -authors = ["Weili Xu ", "Charlie Holly ", "Juan Gonzalez ", "Yun Joon Jung ", "Jiarong Xie ", "Jackson Jarbose ", "Karen Walkerman "] +authors = ["Weili Xu ", "Charlie Holly ", "Juan Gonzalez ", "Yun Joon Jung ", "Jiarong Xie ", "Jackson Jarboe ", "Karen Walkerman "] license = "MIT" readme = "README.md" -packages = [{include = "rct229"}] +packages = [ + { include = "rct229" } +] + +exclude = ["rct229/rulesets/ashrae9012022"] +include = [ + { path = "rct229/rulesets/ashrae9012019", format = "sdist" }, + { path = "rct229/rulesets/ashrae9012022", format = "sdist" }, +] [tool.poetry.dependencies] python = "^3.10" @@ -24,6 +32,7 @@ jsonpath-ng = "^1.6.1" pyinstrument = "^4.6.2" pydash = "^7.0.7" openpyxl = "^3.1.2" +astor = "^0.8.1" [tool.poetry.group.dev.dependencies] black = "^22.6.0" @@ -40,6 +49,13 @@ astor = "^0.8.1" rct229 = 'rct229.cli:cli' minify-jsons = 'rct229.utils.minify_jsons:main' +[tool.poetry.extras] +ashrae9012022 = ["rct229.rulesets.ashrae9012022"] + +[tool.poetry.plugins."rct229.rulesets"] +"ashrae9012019" = "rct229.rulesets.ashrae9012019" +"ashrae9012022" = "rct229.rulesets.ashrae9012022" + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" diff --git a/rct229/__init__.py b/rct229/__init__.py index 3d26edf777..d2251f509e 100755 --- a/rct229/__init__.py +++ b/rct229/__init__.py @@ -1 +1,3 @@ +import rct229.rulesets + __version__ = "0.4.1" diff --git a/rct229/cli.py b/rct229/cli.py index c7c0201930..8b3d5a1534 100644 --- a/rct229/cli.py +++ b/rct229/cli.py @@ -2,12 +2,11 @@ from rct229.reports import reports as rct_report from rct229.rule_engine.engine import evaluate_all_rules -from rct229.rule_engine.rulesets import RuleSet, RuleSetTest -from rct229.ruletest_engine.run_ruletests import run_ashrae9012019_tests +from rct229.ruletest_engine.ruletest_jsons import get_ruleset_test_sections +from rct229.rule_engine.rulesets import RuleSet from rct229.schema.schema_enums import SchemaEnums from rct229.schema.schema_store import SchemaStore from rct229.utils.assertions import RCTException -from rct229.web_application import count_number_of_rules, count_number_of_ruletest_cases CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"]) @@ -16,6 +15,12 @@ def print_version(): click.echo(f"{__name__}, version {__version__}") +def initialize_ruleset(ruleset_name: str): + """Initialize schema and enums for the requested ruleset.""" + SchemaStore.set_ruleset(ruleset_name) + SchemaEnums.update_schema_enum() + + @click.group(context_settings=CONTEXT_SETTINGS) @click.version_option(None, "-v", "--version") def cli(): @@ -38,20 +43,45 @@ def cli(): @click.option("--ruleset", "-rs", multiple=False, default="ashrae9012019") @click.argument("section", type=click.STRING, required=False) def run_test(ruleset, section=None): - print(f"software test workflow for section {section}") + print( + f"{ruleset.upper()} software test workflow" + + (f" for section {section}" if section else "") + + "\n" + ) if ruleset == RuleSet.ASHRAE9012019_RULESET: - SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) + initialize_ruleset(ruleset) + # Dynamically get all available test sections for this ruleset + test_sections = get_ruleset_test_sections(ruleset) + + from rct229.ruletest_engine.run_ruletests import ( + run_ashrae9012019_tests, + ) + outcome_list = run_ashrae9012019_tests(section) if section is None: for idx, outcome in enumerate(outcome_list): - assert ( - outcome - ), f"{RuleSetTest.ASHRAE9012019_TEST_LIST[idx]} failed in the test" + assert outcome, f"{test_sections[idx]} failed in the test" + else: + assert all(outcome_list), f"{section} failed in the test" + + elif ruleset == RuleSet.ASHRAE9012022_RULESET: + initialize_ruleset(ruleset) + # Dynamically get all available test sections for this ruleset + test_sections = get_ruleset_test_sections(ruleset) + + from rct229.ruletest_engine.run_ruletests import ( + run_ashrae9012022_tests, + ) + + outcome_list = run_ashrae9012022_tests(section) + if section is None: + for idx, outcome in enumerate(outcome_list): + assert outcome, f"{test_sections[idx]} failed in the test" else: assert all(outcome_list), f"{section} failed in the test" else: print( - f"ruleset document {ruleset} is not currently supported by the RCT. Please select one from the following: ashrae9012019" + f"ruleset document {ruleset} is not currently supported by the RCT. Please select one from the following: ashrae9012019, ashrae9012022" ) @@ -75,11 +105,15 @@ def run_test(ruleset, section=None): ) def evaluate(rpds, ruleset, reports, reports_directory): # TODO need to switch this to a if-else for selecting rulesets - if ruleset == RuleSet.ASHRAE9012019_RULESET: - SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) - SchemaEnums.update_schema_enum() - print("Test implementation of rule engine for ASHRAE Std 229 RCT.") - print("") + if ruleset not in [RuleSet.ASHRAE9012019_RULESET, RuleSet.ASHRAE9012022_RULESET]: + raise RCTException( + f"Ruleset {ruleset} not supported. Available: " + f"{RuleSet.ASHRAE9012019_RULESET}, {RuleSet.ASHRAE9012022_RULESET}" + ) + + initialize_ruleset(ruleset) + print("Test implementation of rule engine for ASHRAE Std 229 RCT.") + print("") available_report_modules = rct_report.__getreports__() available_report_dict = {key: value for key, value in available_report_modules} @@ -113,6 +147,9 @@ def evaluate(rpds, ruleset, reports, reports_directory): @click.option("--ruleset_standard", "-rs", multiple=False, default="ashrae9012019") def count_rules(ruleset_standard): """Count the number of ruletest cases in a ruleset standard.""" + initialize_ruleset(ruleset_standard) + from rct229.web_application import count_number_of_rules + count_dict = count_number_of_rules(ruleset_standard) click.echo(f"Number of rules in '#{ruleset_standard}': {count_dict['total']}") @@ -135,6 +172,9 @@ def count_rules(ruleset_standard): @click.option("--ruleset_standard", "-rs", multiple=False, default="ashrae9012019") def count_test_cases(ruleset_standard): """Count the number of ruletest cases in a ruleset standard.""" + initialize_ruleset(ruleset_standard) + from rct229.web_application import count_number_of_ruletest_cases + count_dict = count_number_of_ruletest_cases(ruleset_standard) click.echo( f"Number of rule test cases in '#{ruleset_standard}': {count_dict['total']}" diff --git a/rct229/reports/__init__.py b/rct229/reports/__init__.py index 850279988b..480a0076c3 100644 --- a/rct229/reports/__init__.py +++ b/rct229/reports/__init__.py @@ -5,6 +5,7 @@ __all__ = [ "ashrae9012019", + "ashrae9012022", "general", ] diff --git a/rct229/rule_engine/engine.py b/rct229/rule_engine/engine.py index 163f72d880..015d1aa79a 100644 --- a/rct229/rule_engine/engine.py +++ b/rct229/rule_engine/engine.py @@ -194,7 +194,7 @@ def evaluate_rules( f"Required RPDs provided are invalid. See error messages: {invalid_rmds}", ) - ## Now check the optional RMDs + # Now check the optional RMDs invalid_rmds = {} for ruleset_model in rmds.get_ruleset_model_types(): # used is None but rmds contain this ruleset model diff --git a/rct229/rule_engine/ruleset_model_factory.py b/rct229/rule_engine/ruleset_model_factory.py index 67b950455c..2e52552461 100644 --- a/rct229/rule_engine/ruleset_model_factory.py +++ b/rct229/rule_engine/ruleset_model_factory.py @@ -1,14 +1,21 @@ -from rct229.rule_engine.rulesets import RuleSet from rct229.schema.schema_enums import SchemaEnums from rct229.schema.schema_store import SchemaStore from rct229.utils.assertions import assert_ -ruleset_model_dict = { - RuleSet.ASHRAE9012019_RULESET: [ - "RulesetModelOptions2019ASHRAE901", - "CommonRulesetModelOptions", - ] -} + +def get_ruleset_model_dict(): + from rct229.rule_engine.rulesets import RuleSet + + return { + RuleSet.ASHRAE9012019_RULESET: [ + "RulesetModelOptions2019ASHRAE901", + "CommonRulesetModelOptions", + ], + RuleSet.ASHRAE9012022_RULESET: [ + "RulesetModelOptions2019ASHRAE901", + "CommonRulesetModelOptions", + ], + } def get_ruleset_model_types(self): @@ -58,7 +65,7 @@ def get_rmd_instance(): rmd = RuleSetModels() ruleset_model_types_enums = [ SchemaEnums.schema_enums[rmt] - for rmt in ruleset_model_dict[SchemaStore.SELECTED_RULESET] + for rmt in get_ruleset_model_dict()[SchemaStore.SELECTED_RULESET] ] ruleset_model_types_enum_list = list( diff --git a/rct229/rule_engine/rulesets.py b/rct229/rule_engine/rulesets.py index d3aea5aa7f..e94560af99 100644 --- a/rct229/rule_engine/rulesets.py +++ b/rct229/rule_engine/rulesets.py @@ -1,39 +1,25 @@ -from rct229.ruletest_engine.ruletest_jsons.ashrae9012019 import ( - ELEVATOR_DIR, - ENVELOPE_DIR, - HVAC_AIRSIDE_DIR, - HVAC_BASELINE_DIR, - HVAC_CHILLED_WATER_DIR, - HVAC_GENERAL_DIR, - HVAC_HOT_WATER_DIR, - LIGHTING_DIR, - PERFORMANCE_CALC_DIR, - RECEPTACLE_DIR, - SCHEDULE_DIR, - SERVICE_HOT_WATER_DIR, -) +from importlib.metadata import entry_points # Ruleset enumerator class RuleSet: - ASHRAE9012019_RULESET = "ashrae9012019" - - -class RuleSetTest: - ASHRAE9012019_TEST_LIST = [ - PERFORMANCE_CALC_DIR, - ELEVATOR_DIR, - ENVELOPE_DIR, - HVAC_AIRSIDE_DIR, - HVAC_CHILLED_WATER_DIR, - HVAC_GENERAL_DIR, - HVAC_HOT_WATER_DIR, - HVAC_BASELINE_DIR, - LIGHTING_DIR, - RECEPTACLE_DIR, - SCHEDULE_DIR, - SERVICE_HOT_WATER_DIR, - ] + """Dynamic registry for available rulesets.""" + + # Optional static declarations (for IDE awareness) + ASHRAE9012019_RULESET: str + ASHRAE9012022_RULESET: str + + @classmethod + def discover(cls): + """Discover and register all available rulesets dynamically.""" + eps = entry_points(group="rct229.rulesets") + for ep in eps: + attr_name = ep.name.upper().replace("-", "_") + "_RULESET" + setattr(cls, attr_name, ep.name) + return cls + + +RuleSet.discover() class LeapYear: diff --git a/rct229/rulesets/__init__.py b/rct229/rulesets/__init__.py index 5dfe84b9d4..15246af841 100644 --- a/rct229/rulesets/__init__.py +++ b/rct229/rulesets/__init__.py @@ -1,54 +1,61 @@ import importlib import inspect +import sys +from importlib.metadata import entry_points import rct229.rule_engine.partial_rule_definition as base_partial_rule_classes import rct229.rule_engine.rule_base as base_classes import rct229.rule_engine.rule_list_base as base_list_classes import rct229.rule_engine.rule_list_indexed_base as base_list_indexed_classes -import rct229.rulesets as rulesets from rct229.rule_engine.rule_base import RuleDefinitionBase from rct229.rule_engine.rulesets import RuleSet - -# All list for registering a ruleset. -__all__ = [RuleSet.ASHRAE9012019_RULESET] - -# Added to remove the sub-module that are not rules. from rct229.schema.schema_store import SchemaStore + MODULE_EXCEPTION_LIST = ["math", "itertools"] +# Dynamically load all registered rulesets via entry points +def discover_ruleset_plugins(): + eps = entry_points(group="rct229.rulesets") + loaded = {} + for ep in eps: + try: + mod = ep.load() + loaded[ep.name] = mod + setattr(sys.modules[__name__], ep.name, mod) + except Exception as e: + print(f"Warning: failed to load ruleset plugin '{ep.name}': {e}") + return loaded + + +def register_rulesets(): + for name in __all__: + setattr(RuleSet, name.upper().replace("-", "_") + "_RULESET", name) + + +# Dynamically discover all ruleset modules +_DISCOVERED_RULESETS = discover_ruleset_plugins() + +# Update __all__ to reflect discovered rule names +__all__ = sorted(_DISCOVERED_RULESETS.keys()) + + def __getruleset__(): - ruleset_list = inspect.getmembers(rulesets, inspect.ismodule) - for ruleset in ruleset_list: - if ruleset[0] == SchemaStore.SELECTED_RULESET: - return ruleset[1] + selected = SchemaStore.SELECTED_RULESET + return _DISCOVERED_RULESETS.get(selected) def __getrules__(): + selected_ruleset = __getruleset__() + if not selected_ruleset: + return [] + modules = [] - ruleset_list = inspect.getmembers(rulesets, inspect.ismodule) - for ruleset in ruleset_list: - if ruleset[0] == SchemaStore.SELECTED_RULESET: - __getrules_module__helper(ruleset[1], modules) - # Adding the module names that should be excluded from the available rules. Such as RuleDefinitionBase - base_class_names = [f[0] for f in inspect.getmembers(base_classes, inspect.isclass)] - base_class_names = base_class_names + [ - f[0] for f in inspect.getmembers(base_list_classes, inspect.isclass) - ] - base_class_names = base_class_names + [ - f[0] for f in inspect.getmembers(base_partial_rule_classes, inspect.isclass) - ] - base_class_names = list( - set( - base_class_names - + [ - f[0] - for f in inspect.getmembers(base_list_indexed_classes, inspect.isclass) - ] - ) - ) - # --- End adding base class names + __getrules_module__helper(selected_ruleset, modules) + + base_class_names = _get_base_class_names() + available_rules = [] for module in modules: available_rules += [ @@ -58,7 +65,7 @@ def __getrules__(): lambda obj: inspect.isclass(obj) and issubclass(obj, RuleDefinitionBase), ) - if (not f[0].startswith("_")) and (not f[0] in base_class_names) + if not f[0].startswith("_") and f[0] not in base_class_names ] return available_rules @@ -90,12 +97,28 @@ def _meet_exception_modules(inspection_results): return any(f[0] in MODULE_EXCEPTION_LIST for f in inspection_results) +def _get_base_class_names(): + base_class_names = [f[0] for f in inspect.getmembers(base_classes, inspect.isclass)] + base_class_names += [ + f[0] for f in inspect.getmembers(base_list_classes, inspect.isclass) + ] + base_class_names += [ + f[0] for f in inspect.getmembers(base_partial_rule_classes, inspect.isclass) + ] + base_class_names += [ + f[0] for f in inspect.getmembers(base_list_indexed_classes, inspect.isclass) + ] + return list(set(base_class_names)) + + +def __getsectiondict__(): + selected_ruleset = __getruleset__() + return getattr(selected_ruleset, "section_dict", None) if selected_ruleset else None + + def __getrulemap__(): - ruleset_list = inspect.getmembers(rulesets, inspect.ismodule) - for ruleset in ruleset_list: - if ruleset[0] == SchemaStore.SELECTED_RULESET: - rules_dict = getattr(ruleset[1], "rules_dict", None) - return rules_dict + selected_ruleset = __getruleset__() + return getattr(selected_ruleset, "rules_dict", None) if selected_ruleset else None def __getattr__(name): diff --git a/rct229/rulesets/ashrae9012019/__init__.py b/rct229/rulesets/ashrae9012019/__init__.py index 0fd8521ec6..4ba741a74d 100644 --- a/rct229/rulesets/ashrae9012019/__init__.py +++ b/rct229/rulesets/ashrae9012019/__init__.py @@ -1,8 +1,9 @@ import importlib +import pkgutil +import re +from pathlib import Path -from rct229.rule_engine.rulesets import RuleSet from rct229.schema.schema_enums import SchemaEnums -from rct229.schema.schema_store import SchemaStore # Add all available rule modules in __all__ __all__ = [ @@ -21,8 +22,16 @@ "section23", "section_list", "section_dict", + "BASELINE_0", + "BASELINE_90", + "BASELINE_180", + "BASELINE_270", + "USER", + "PROPOSED", ] +SHORT_NAME = "prm9012019" + rules_dict = { "prm9012019rule73j65": "section1rule1", "prm9012019rule63e94": "section1rule2", @@ -86,6 +95,7 @@ "prm9012019rule66m62": "section6rule7", "prm9012019rule16x33": "section6rule8", "prm9012019rule22c86": "section6rule9", + "PRM9012019rule86d29": "section6rule13", "prm9012019rule86j27": "section10rule1", "prm9012019rule34l50": "section10rule7", "prm9012019rule73m45": "section10rule10", @@ -269,15 +279,9 @@ "23": "HVAC-AirSide", } -if SchemaEnums.schema_enums.get("RulesetModelOptions2019ASHRAE901"): - RMD = SchemaEnums.schema_enums.get("RulesetModelOptions2019ASHRAE901") - COMMON_RMD = SchemaEnums.schema_enums.get("CommonRulesetModelOptions") - -else: - SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) - SchemaEnums.update_schema_enum() - RMD = SchemaEnums.schema_enums.get("RulesetModelOptions2019ASHRAE901") - COMMON_RMD = SchemaEnums.schema_enums.get("CommonRulesetModelOptions") +SchemaEnums.update_schema_enum_by_ruleset("ashrae9012019") +RMD = SchemaEnums.schema_enums.get("RulesetModelOptions2019ASHRAE901") +COMMON_RMD = SchemaEnums.schema_enums.get("CommonRulesetModelOptions") BASELINE_0 = RMD.BASELINE_0 BASELINE_90 = RMD.BASELINE_90 @@ -287,6 +291,65 @@ PROPOSED = COMMON_RMD.PROPOSED +def build_section_rule_to_rule_id(ruleset_package): + """ + Dynamically generate a mapping of section-rule to rule ID using SHORT_NAME + defined in each section's __init__.py. + + Example output: + { + "1-1": "CALC-1", + "1-2": "CALC-2", + "5-1": "ENV-1", + ... + } + """ + section_number_to_name_map = {} + + # Iterate over all submodules/subpackages in the ruleset package (e.g., section1, section5) + package_path = Path(ruleset_package.__path__[0]) + + for finder, name, ispkg in pkgutil.iter_modules([str(package_path)]): + if not name.startswith("section"): + continue # skip non-section directories + + section_module = importlib.import_module(f"{ruleset_package.__name__}.{name}") + section_num_match = re.match(r"section(\d+)", name) + if not section_num_match: + continue + + # Get the SHORT_NAME defined in section's __init__.py + short_name = getattr(section_module, "SHORT_NAME", None) + if short_name is None: + print( + f"Warning: {name} missing SHORT_NAME in the __init__.py file. Skipping." + ) + continue + + # Find all rule files (sectionXruleY.py) + rule_files = [ + f + for f in (package_path / name).glob("section*rule*.py") + if re.match(r"section\d+rule\d+\.py$", f.name) + ] + + for rule_file in rule_files: + rule_match = re.match(r"section(\d+)rule(\d+)\.py$", rule_file.name) + if rule_match: + rule_section = rule_match.group(1) + rule_num = rule_match.group(2) + key = f"{rule_section}-{rule_num}" + section_number_to_name_map[key] = f"{short_name}-{rule_num}" + + return section_number_to_name_map + + +# Automatically build the section-rule ID map when the package is imported +section_rule_to_rule_id = build_section_rule_to_rule_id( + importlib.import_module(__name__) +) + + def __getattr__(name): if name in __all__: return importlib.import_module("." + name, __name__) diff --git a/rct229/rulesets/ashrae9012019/data/__init__.py b/rct229/rulesets/ashrae9012019/data/__init__.py index f19d1da567..358e185ded 100644 --- a/rct229/rulesets/ashrae9012019/data/__init__.py +++ b/rct229/rulesets/ashrae9012019/data/__init__.py @@ -1,6 +1,5 @@ import glob import json -import pprint from os.path import basename, dirname, join # A dictionary that will contain all the data in this folder diff --git a/rct229/rulesets/ashrae9012019/ruleset_functions/baseline_systems/baseline_hvac_test_util.py b/rct229/rulesets/ashrae9012019/ruleset_functions/baseline_systems/baseline_hvac_test_util.py index ae6a88102c..8e00f205ef 100644 --- a/rct229/rulesets/ashrae9012019/ruleset_functions/baseline_systems/baseline_hvac_test_util.py +++ b/rct229/rulesets/ashrae9012019/ruleset_functions/baseline_systems/baseline_hvac_test_util.py @@ -15,8 +15,10 @@ Path(os.path.dirname(__file__)).parent.parent.parent.parent, "ruletest_engine", "ruletest_jsons", - "ashrae9012019", + "scripts", + "resources", "system_types", + "90.1_system_types", ) diff --git a/rct229/rulesets/ashrae9012019/section1/__init__.py b/rct229/rulesets/ashrae9012019/section1/__init__.py index 34aaa10819..ff3cdd4987 100644 --- a/rct229/rulesets/ashrae9012019/section1/__init__.py +++ b/rct229/rulesets/ashrae9012019/section1/__init__.py @@ -13,6 +13,8 @@ "section1rule9", ] +SHORT_NAME = "CALC" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section10/__init__.py b/rct229/rulesets/ashrae9012019/section10/__init__.py index dfbb92778f..c8d66810fb 100644 --- a/rct229/rulesets/ashrae9012019/section10/__init__.py +++ b/rct229/rulesets/ashrae9012019/section10/__init__.py @@ -8,6 +8,8 @@ "section10rule15", ] +SHORT_NAME = "HVAC-GEN" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section11/__init__.py b/rct229/rulesets/ashrae9012019/section11/__init__.py index 40951a9632..1ce324689e 100644 --- a/rct229/rulesets/ashrae9012019/section11/__init__.py +++ b/rct229/rulesets/ashrae9012019/section11/__init__.py @@ -21,6 +21,8 @@ "section11rule17", ] +SHORT_NAME = "SHW" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section12/__init__.py b/rct229/rulesets/ashrae9012019/section12/__init__.py index 5dfa55fb9f..d308ee6995 100644 --- a/rct229/rulesets/ashrae9012019/section12/__init__.py +++ b/rct229/rulesets/ashrae9012019/section12/__init__.py @@ -9,6 +9,8 @@ "section12rule5", ] +SHORT_NAME = "REC" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section16/__init__.py b/rct229/rulesets/ashrae9012019/section16/__init__.py index 758a59dddc..b1f9680aca 100644 --- a/rct229/rulesets/ashrae9012019/section16/__init__.py +++ b/rct229/rulesets/ashrae9012019/section16/__init__.py @@ -11,6 +11,8 @@ "section16rule7", ] +SHORT_NAME = "ELV" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section18/__init__.py b/rct229/rulesets/ashrae9012019/section18/__init__.py index f210980c09..2943ab99e3 100644 --- a/rct229/rulesets/ashrae9012019/section18/__init__.py +++ b/rct229/rulesets/ashrae9012019/section18/__init__.py @@ -7,6 +7,8 @@ "section18rule3", ] +SHORT_NAME = "HVAC-SYS" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section19/__init__.py b/rct229/rulesets/ashrae9012019/section19/__init__.py index 49e1535b13..ccb82c9a1b 100644 --- a/rct229/rulesets/ashrae9012019/section19/__init__.py +++ b/rct229/rulesets/ashrae9012019/section19/__init__.py @@ -41,6 +41,8 @@ "section19rule37", ] +SHORT_NAME = "HVAC-GEN" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section21/__init__.py b/rct229/rulesets/ashrae9012019/section21/__init__.py index 0a82fbcbbc..95f1885a40 100644 --- a/rct229/rulesets/ashrae9012019/section21/__init__.py +++ b/rct229/rulesets/ashrae9012019/section21/__init__.py @@ -22,6 +22,8 @@ "section21rule18", ] +SHORT_NAME = "HVAC-HW" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section22/__init__.py b/rct229/rulesets/ashrae9012019/section22/__init__.py index 56c7b5068a..30fe52ae0a 100644 --- a/rct229/rulesets/ashrae9012019/section22/__init__.py +++ b/rct229/rulesets/ashrae9012019/section22/__init__.py @@ -45,6 +45,8 @@ "section22rule41", ] +SHORT_NAME = "HVAC-CHW" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section23/__init__.py b/rct229/rulesets/ashrae9012019/section23/__init__.py index 33fdb8a12a..8f94f1c3e2 100644 --- a/rct229/rulesets/ashrae9012019/section23/__init__.py +++ b/rct229/rulesets/ashrae9012019/section23/__init__.py @@ -21,6 +21,8 @@ "section23rule17", ] +SHORT_NAME = "HVAC-SPEC" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section4/__init__.py b/rct229/rulesets/ashrae9012019/section4/__init__.py index 442a7c383f..b1cc71c0e7 100644 --- a/rct229/rulesets/ashrae9012019/section4/__init__.py +++ b/rct229/rulesets/ashrae9012019/section4/__init__.py @@ -8,6 +8,8 @@ "section4rule14", ] +SHORT_NAME = "SCH" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section5/__init__.py b/rct229/rulesets/ashrae9012019/section5/__init__.py index d15464c0ab..38330d33f4 100644 --- a/rct229/rulesets/ashrae9012019/section5/__init__.py +++ b/rct229/rulesets/ashrae9012019/section5/__init__.py @@ -45,6 +45,8 @@ "section5rule40", ] +SHORT_NAME = "ENV" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section6/__init__.py b/rct229/rulesets/ashrae9012019/section6/__init__.py index 2bba0dc2ec..47b3b6e466 100644 --- a/rct229/rulesets/ashrae9012019/section6/__init__.py +++ b/rct229/rulesets/ashrae9012019/section6/__init__.py @@ -11,8 +11,11 @@ "section6rule7", "section6rule8", "section6rule9", + "section6rule13", ] +SHORT_NAME = "LTG" + def __getattr__(name): if name in __all__: diff --git a/rct229/rulesets/ashrae9012019/section6/section6rule13.py b/rct229/rulesets/ashrae9012019/section6/section6rule13.py new file mode 100644 index 0000000000..c14305bc4e --- /dev/null +++ b/rct229/rulesets/ashrae9012019/section6/section6rule13.py @@ -0,0 +1,125 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all + +LIGHTING_SPACE = SchemaEnums.schema_enums["LightingSpaceOptions2019ASHRAE901TG37"] +LIGHTING_OCCUPANCY_CONTROL = SchemaEnums.schema_enums["LightingOccupancyControlOptions"] +SPACE_FUNCTION = SchemaEnums.schema_enums["SpaceFunctionOptions"] +BUILDING_AREA_LIMIT = 5000 * ureg("ft2") + + +class PRM9012019rule86d29(RuleDefinitionListIndexedBase): + """Rule 13 of ASHRAE 90.1-2019 Appendix G Section 6 (Lighting)""" + + def __init__(self): + super(PRM9012019rule86d29, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012019rule86d29.BuildingRule(), + index_rmd=BASELINE_0, + id="6-13", + description="In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + ruleset_section_title="Lighting", + standard_section="Table G3.1 #6 Baseline column", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012019rule86d29.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012019rule86d29.BuildingRule.SpaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].spaces[*]", + ) + + def is_applicable(self, context, data=None): + building_b = context.BASELINE_0 + + building_area_b = sum( + find_all( + "$.building_segments[*].zones[*].spaces[*].floor_area", + building_b, + ) + ) + + return building_area_b > BUILDING_AREA_LIMIT + + def list_filter(self, context_item, data): + space_b = context_item.BASELINE_0 + + return space_b.get("interior_lighting") + + class SpaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012019rule86d29.BuildingRule.SpaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={"$": ["lighting_space_type"]}, + ) + + def is_applicable(self, context, data=None): + space_b = context.BASELINE_0 + lighting_space_type_b = space_b["lighting_space_type"] + space_function_b = space_b.get("function") + + return lighting_space_type_b in ( + LIGHTING_SPACE.LOUNGE_BREAKROOM_ALL_OTHERS, + LIGHTING_SPACE.CONFERENCE_MEETING_MULTIPURPOSE_ROOM, + LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_PENITENTIARY, + LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER, + LIGHTING_SPACE.LABORATORY_EXCEPT_IN_OR_AS_A_CLASSROOM, + ) or ( + space_function_b == SPACE_FUNCTION.LABORATORY + and lighting_space_type_b + == LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_SCHOOL + ) + + def get_calc_vals(self, context, data=None): + space_b = context.BASELINE_0 + + occupancy_sensor_controls_b = [ + getattr_( + interior_lighting_b, + "interior_lighting", + "occupancy_control_type", + ) + for interior_lighting_b in space_b["interior_lighting"] + ] + occupancy_sensor_schedules_b = [ + getattr_( + interior_lighting_b, + "interior_lighting", + "are_schedules_used_for_modeling_occupancy_control", + ) + for interior_lighting_b in space_b["interior_lighting"] + ] + + return { + "occupancy_sensor_controls_b": occupancy_sensor_controls_b, + "occupancy_sensor_schedules_b": occupancy_sensor_schedules_b, + } + + def rule_check(self, context, calc_vals=None, data=None): + occupancy_sensor_controls_b = calc_vals["occupancy_sensor_controls_b"] + occupancy_sensor_schedules_b = calc_vals["occupancy_sensor_schedules_b"] + + return not any( + val + in [ + LIGHTING_OCCUPANCY_CONTROL.NONE, + LIGHTING_OCCUPANCY_CONTROL.MANUAL_ON, + None, + ] + for val in occupancy_sensor_controls_b + ) and all(occupancy_sensor_schedules_b) diff --git a/rct229/rulesets/ashrae9012022/__init__.py b/rct229/rulesets/ashrae9012022/__init__.py new file mode 100644 index 0000000000..ffe7466208 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/__init__.py @@ -0,0 +1,176 @@ +import importlib +import pkgutil +import re +from pathlib import Path + +from rct229.schema.schema_enums import SchemaEnums + +# Add all available rule modules in __all__ +__all__ = [ + "section5", + "section6", + "section12", + "section21", + "section22", + "SHORT_NAME", + "BASELINE_0", + "BASELINE_90", + "BASELINE_180", + "BASELINE_270", + "USER", + "PROPOSED", +] + +SHORT_NAME = "prm9012022" + +rules_dict = { + "prm9012022rule77j30": "section5rule1", + "prm9012022rule72a03": "section5rule2", + "prm9012022rule73o42": "section5rule3", + "prm9012022rule43n21": "section5rule4", + "prm9012022rule02s62": "section5rule5", + "prm9012022rule70u00": "section5rule6", + "prm9012022rule20r05": "section5rule7", + "prm9012022rule48v87": "section5rule8", + "prm9012022rule38m70": "section5rule9", + "prm9012022rule29j06": "section5rule10", + "prm9012022rule46p73": "section5rule11", + "prm9012022rule40d86": "section5rule12", + "prm9012022rule73r04": "section5rule13", + "prm9012022rule67j71": "section5rule14", + "prm9012022rule04o58": "section5rule15", + "prm9012022rule80o45": "section5rule16", + "prm9012022rule87g56": "section5rule17", + "prm9012022rule82y74": "section5rule18", + "prm9012022rule57c26": "section5rule19", + "prm9012022rule96n40": "section5rule20", + "prm9012022rule44m70": "section5rule21", + "prm9012022rule50p59": "section5rule22", + "prm9012022rule11q41": "section5rule23", + "prm9012022rule78j13": "section5rule24", + "prm9012022rule84u02": "section5rule25", + "prm9012022rule34b75": "section5rule26", + "prm9012022rule69v04": "section5rule27", + "prm9012022rule42c42": "section5rule28", + "prm9012022rule39f24": "section5rule29", + "prm9012022rule18s99": "section5rule30", + "prm9012022rule48w84": "section5rule31", + "prm9012022rule78r30": "section5rule32", + "prm9012022rule45p36": "section5rule33", + "prm9012022rule69u47": "section5rule34", + "prm9012022rule39k65": "section5rule35", + "prm9012022rule23m90": "section5rule36", + "prm9012022rule67a77": "section5rule37", + "prm9012022rule40i28": "section5rule38", + "prm9012022rule50m61": "section5rule39", + "prm9012022rule33l08": "section5rule40", + "prm9012022rule49t86": "section5rule42", + "prm9012022rule86r63": "section5rule43", + "prm9012022rule13d92": "section5rule44", + "prm9012022rule22f12": "section5rule45", + "prm9012022rule23o29": "section6rule11", + "prm9012022rule12d80": "section6rule12", + "prm9012022rule86d29": "section6rule13", + "prm9012022rule23z21": "section12rule5", + "prm9012022rule93e12": "section21rule19", + "prm9012022rule93e20": "section22rule43", + "prm9012022Rule43f22": "section22rule44", +} + +section_list = [ + "All", + "Envelope", + "Lighting", + "Receptacles", + "HVAC-HotWaterSide", + "HVAC-ChilledWaterSide", +] + +section_dict = { + "5": "Envelope", + "6": "Lighting", + "12": "Receptacles", + "21": "HVAC-HotWaterSide", + "22": "HVAC-ChilledWaterSide", +} + +# Update this field if 2022 uses different term. +SchemaEnums.update_schema_enum_by_ruleset("ashrae9012022") +RMD = SchemaEnums.schema_enums.get("RulesetModelOptions2019ASHRAE901") +COMMON_RMD = SchemaEnums.schema_enums.get("CommonRulesetModelOptions") + +BASELINE_0 = RMD.BASELINE_0 +BASELINE_90 = RMD.BASELINE_90 +BASELINE_180 = RMD.BASELINE_180 +BASELINE_270 = RMD.BASELINE_270 +USER = COMMON_RMD.USER +PROPOSED = COMMON_RMD.PROPOSED + + +def build_section_rule_to_rule_id(ruleset_package): + """ + Dynamically generate a mapping of section-rule to rule ID using SHORT_NAME + defined in each section's __init__.py. + + Example output: + { + "1-1": "CALC-1", + "1-2": "CALC-2", + "5-1": "ENV-1", + ... + } + """ + section_number_to_name_map = {} + + # Iterate over all submodules/subpackages in the ruleset package (e.g., section1, section5) + package_path = Path(ruleset_package.__path__[0]) + + for finder, name, ispkg in pkgutil.iter_modules([str(package_path)]): + if not name.startswith("section"): + continue # skip non-section directories + + section_module = importlib.import_module(f"{ruleset_package.__name__}.{name}") + section_num_match = re.match(r"section(\d+)", name) + if not section_num_match: + continue + + # Get the SHORT_NAME defined in section's __init__.py + short_name = getattr(section_module, "SHORT_NAME", None) + if short_name is None: + print( + f"Warning: {name} missing SHORT_NAME in the __init__.py file. Skipping." + ) + continue + + # Find all rule files (sectionXruleY.py) + rule_files = [ + f + for f in (package_path / name).glob("section*rule*.py") + if re.match(r"section\d+rule\d+\.py$", f.name) + ] + + for rule_file in rule_files: + rule_match = re.match(r"section(\d+)rule(\d+)\.py$", rule_file.name) + if rule_match: + rule_section = rule_match.group(1) + rule_num = rule_match.group(2) + key = f"{rule_section}-{rule_num}" + section_number_to_name_map[key] = f"{short_name}-{rule_num}" + + return section_number_to_name_map + + +# Automatically build the section-rule ID map when the package is imported +section_rule_to_rule_id = build_section_rule_to_rule_id( + importlib.import_module(__name__) +) + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/data/__init__.py b/rct229/rulesets/ashrae9012022/data/__init__.py new file mode 100644 index 0000000000..358e185ded --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data/__init__.py @@ -0,0 +1,14 @@ +import glob +import json +from os.path import basename, dirname, join + +# A dictionary that will contain all the data in this folder +data = {} + +# Get a list of the JSON file names in this folder +_json_paths = glob.glob(join(dirname(__file__), "*.json")) + +# Import each JSON file and store the contents in data +for json_path in _json_paths: + with open(json_path) as file: + data[basename(json_path)[:-5]] = json.load(file) diff --git a/rct229/rulesets/ashrae9012022/data/ashrae_90_1_prm_2022.construction_properties.json b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_prm_2022.construction_properties.json new file mode 100644 index 0000000000..5ca9e9ea6b --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_prm_2022.construction_properties.json @@ -0,0 +1,10384 @@ +{ + "construction_properties": [ + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.282, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.352, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.49 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 0", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.49 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.282, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.352, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.49 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 1", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.49 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.35, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.218, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.352, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 2", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.069, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.218, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.084, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.352, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3A", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.25 VT 0.28 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.25, + "assembly_minimum_vt_shgc": 0.28, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3B", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.34 VT 0.37 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.34, + "assembly_minimum_vt_shgc": 0.37, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.34 VT 0.37 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.34, + "assembly_minimum_vt_shgc": 0.37, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 1.22 SHGC 0.34 VT 0.37 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.34, + "assembly_minimum_vt_shgc": 0.37, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.61 VT 0.67 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 1.22 SHGC 0.34 VT 0.37 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.34, + "assembly_minimum_vt_shgc": 0.37, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.61 VT 0.67 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.61, + "assembly_minimum_vt_shgc": 0.67, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 1.36 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 1.36 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 3C", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.069, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.218, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.36 VT 0.40 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.36, + "assembly_minimum_vt_shgc": 0.4, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.19 VT 0.21 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.19, + "assembly_minimum_vt_shgc": 0.21, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 4", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.069, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.173, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.084, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 5", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.069, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.173, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.084, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.39 VT 0.43 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 0.119, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.39 VT 0.43 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.39, + "assembly_minimum_vt_shgc": 0.43, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 6", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.063, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.173, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.57 SHGC 0.49 VT 0.54 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.57, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.49, + "assembly_minimum_vt_shgc": 0.54, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.54, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 0.119, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 0.119, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.68 VT 0.75 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.68, + "assembly_minimum_vt_shgc": 0.75, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.69 SHGC 0.64 VT 0.70 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.64, + "assembly_minimum_vt_shgc": 0.7, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.64 VT 0.70 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.64, + "assembly_minimum_vt_shgc": 0.7, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.69 SHGC 0.64 VT 0.70 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.69, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.64, + "assembly_minimum_vt_shgc": 0.7, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 7", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 1.36 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.36, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Nonresidential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Residential", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "NonSwinging", + "building_category": "Semiheated", + "construction": "Typical Overhead Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 1.45, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Nonresidential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Residential", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.5, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorDoor", + "standards_construction_type": "Swinging", + "building_category": "Semiheated", + "construction": "Typical Insulated Metal Door", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.7, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.038, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.032, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorFloor", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.052, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Nonresidential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.048, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Residential", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.048, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorRoof", + "standards_construction_type": "IEAD", + "building_category": "Semiheated", + "construction": "PRM IEAD Roof", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.093, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Nonresidential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.064, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Residential", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.055, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWall", + "standards_construction_type": "SteelFramed", + "building_category": "Semiheated", + "construction": "PRM Steel Framed Exterior Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.124, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "ExteriorWindow", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Nonresidential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Residential", + "construction": "PRM U 0.46 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 0.46, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 10.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 10.1, + "maximum_percent_of_surface": 20.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 20.1, + "maximum_percent_of_surface": 30.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GlassDoor", + "standards_construction_type": "Any Vertical Glazing", + "building_category": "Semiheated", + "construction": "PRM U 1.22 SHGC 0.40 VT 0.44 Simple Glazing Glass Door", + "orientation": null, + "minimum_percent_of_surface": 30.1, + "maximum_percent_of_surface": 40.0, + "assembly_maximum_u_value": 1.22, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.4, + "assembly_minimum_vt_shgc": 0.44, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Nonresidential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.54, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Residential", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.52, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactFloor", + "standards_construction_type": "Unheated", + "building_category": "Semiheated", + "construction": "PRM Slab on Grade Floor", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": 0.73, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Nonresidential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 0.119, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Residential", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 0.119, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "GroundContactWall", + "standards_construction_type": "Concrete Block", + "building_category": "Semiheated", + "construction": "PRM Below Grade Wall", + "orientation": null, + "minimum_percent_of_surface": null, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": null, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": 1.14, + "assembly_maximum_solar_heat_gain_coefficient": null, + "assembly_minimum_vt_shgc": null, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.58 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Nonresidential", + "construction": "PRM U 0.58 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Residential", + "construction": "PRM U 0.58 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.58, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 0.81 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 0.0, + "maximum_percent_of_surface": 2.0, + "assembly_maximum_u_value": 0.81, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + }, + { + "template": "90.1-PRM-2022", + "climate_zone_set": "ClimateZone 8", + "operation_type": null, + "intended_surface_type": "Skylight", + "standards_construction_type": "Any Skylight", + "building_category": "Semiheated", + "construction": "PRM U 0.81 SHGC 0.55 VT 0.61 Simple Glazing Window", + "orientation": null, + "minimum_percent_of_surface": 2.0, + "maximum_percent_of_surface": null, + "assembly_maximum_u_value": 0.81, + "u_value_includes_interior_film_coefficient": true, + "u_value_includes_exterior_film_coefficient": true, + "assembly_maximum_f_factor": null, + "assembly_maximum_c_factor": null, + "assembly_maximum_solar_heat_gain_coefficient": 0.55, + "assembly_minimum_vt_shgc": 0.61, + "notes": null + } + ] +} \ No newline at end of file diff --git a/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_3_2.json b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_3_2.json new file mode 100644 index 0000000000..c1936cf2ef --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_3_2.json @@ -0,0 +1,48 @@ +{ + "heated_space_criteria":[ + { + "climate_zone": "0", + "heating_output_btu/h-^2": 5 + }, + { + "climate_zone": "1", + "heating_output_btu/h-^2": 5 + }, + { + "climate_zone": "2", + "heating_output_btu/h-^2": 5 + }, + { + "climate_zone": "3A,3B", + "heating_output_btu/h-^2": 9 + }, + { + "climate_zone": "3C", + "heating_output_btu/h-^2": 7 + }, + { + "climate_zone": "4A,4B", + "heating_output_btu/h-^2": 10 + }, + { + "climate_zone": "4C", + "heating_output_btu/h-^2": 8 + }, + { + "climate_zone": "5", + "heating_output_btu/h-^2": 12 + }, + { + "climate_zone": "6", + "heating_output_btu/h-^2": 14 + }, + { + "climate_zone": "7", + "heating_output_btu/h-^2": 16 + }, + { + "climate_zone": "8", + "heating_output_btu/h-^2": 19 + } + ] +} \ No newline at end of file diff --git a/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_4.json b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_4.json new file mode 100644 index 0000000000..d4e58cefc1 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_4.json @@ -0,0 +1,130 @@ +{ + "performance_curve_coefficient": [ + { + "Set": "A", + "EIR-f-T": [1.777758, -0.038258, 0.000431, -0.005368, 0.000118, -0.000115], + "CAP-f-T": [-1.347697, 0.070674, -0.000566, 0.016793, -0.000104, -0.000076], + "EIR-f-PLR": [0.087789, 0.185696, 1.561411, -0.832304] + }, + { + "Set": "B", + "EIR-f-T": [1.872341, -0.041886, 0.000442, -0.006710, 0.000123, -0.000086], + "CAP-f-T": [-1.153535, 0.075066, -0.000622, 0.009777, -0.000071, -0.000057], + "EIR-f-PLR": [0.118081, 0.107477, 1.570838, -0.794051] + }, + { + "Set": "C", + "EIR-f-T": [2.001725, -0.044957, 0.000484, -0.008296, 0.000168, -0.000125], + "CAP-f-T": [-0.907598, 0.073300, -0.000653, 0.003700, -0.000054, 0.000006], + "EIR-f-PLR": [0.243730, 0.165972, 0.586099] + }, + { + "Set": "D", + "EIR-f-T": [1.679306, -0.041960, 0.000456, -0.002081, 0.000128, -0.000125], + "CAP-f-T": [-0.857791, 0.074596, -0.000670, 0.001523, -0.000042, 0.000012], + "EIR-f-PLR": [0.208982, 0.224001, 0.561479] + }, + { + "Set": "E", + "EIR-f-T": [1.136125, -0.034608, 0.000401, 0.008006, 0.000058, -0.000131], + "CAP-f-T": [-0.424942, 0.047087, -0.000458, 0.006232, -0.000070, 0.000058], + "EIR-f-PLR": [0.246644, 0.184576, 0.566463] + }, + { + "Set": "F", + "EIR-f-T": [1.161349, -0.040557, 0.000431, 0.013567, 0.000003, -0.000103], + "CAP-f-T": [0.012766, 0.033086, -0.000350, 0.004004, -0.000061, 0.000083], + "EIR-f-PLR": [0.244926, 0.218890, 0.532972] + }, + { + "Set": "G", + "EIR-f-T": [0.874461, -0.041390, 0.000430, 0.022262, -0.000058, -0.000097], + "CAP-f-T": [0.122304, 0.024081, -0.000293, 0.006302, -0.000081, 0.000116], + "EIR-f-PLR": [0.264371, 0.263302, 0.471690] + }, + { + "Set": "H", + "EIR-f-T": [0.474969, -0.036087, 0.000223, 0.030749, -0.000178, 0.000094], + "CAP-f-T": [-0.454052, 0.056252, -0.000669, 0.000736, -0.000099, 0.000249], + "EIR-f-PLR": [0.304206, 0.073866, 0.621457] + }, + { + "Set": "I", + "EIR-f-T": [0.596868, -0.022768, 0.000131, 0.023536, -0.000130, 0.000024], + "CAP-f-T": [0.947009, 0.032913, -0.000354, -0.020151, 0.000062, 0.000148], + "EIR-f-PLR": [0.276961, 0.101749, 0.621383] + }, + { + "Set": "J", + "EIR-f-T": [0.551957, -0.036196, 0.000300, 0.028396, -0.000147, 0.000029], + "CAP-f-T": [-0.702242, 0.077132, -0.000785, -0.005637, -0.000033, 0.000145], + "EIR-f-PLR": [0.290891, 0.059366, 0.649421] + }, + { + "Set": "K", + "EIR-f-T": [2.054048, -0.042406, 0.000450, -0.009813, 0.000140, -0.000093], + "CAP-f-T": [-1.325652, 0.074160, -0.000607, 0.013871, -0.000088, -0.000069], + "EIR-f-PLR": [0.036849, 0.100792, 1.614142, -0.748013] + }, + { + "Set": "L", + "EIR-f-T": [1.673814, -0.041178, 0.000429, -0.003424, 0.000109, -0.000084], + "CAP-f-T": [-0.939345, 0.074488, -0.000615, 0.005127, -0.000048, -0.000048], + "EIR-f-PLR": [0.095711, 0.009903, 1.543396, -0.646737] + }, + { + "Set": "M", + "EIR-f-T": [2.018167, -0.045111, 0.000485, -0.008503, 0.000168, -0.000124], + "CAP-f-T": [-0.913752, 0.073361, -0.000654, 0.003787, -0.000054, 0.000006], + "EIR-f-PLR": [0.107200, 0.182611, 0.705182] + }, + { + "Set": "N", + "EIR-f-T": [1.849951, -0.043409, 0.000467, -0.005187, 0.000146, -0.000123], + "CAP-f-T": [-0.840342, 0.071938, -0.000641, 0.002703, -0.000047, 0.000007], + "EIR-f-PLR": [0.183811, -0.044417, 0.855660] + }, + { + "Set": "O", + "EIR-f-T": [1.020192, -0.030046, 0.000363, 0.008504, 0.000053, -0.000135], + "CAP-f-T": [-0.451749, 0.051393, -0.000490, 0.004351, -0.000058, 0.000050], + "EIR-f-PLR": [0.090936, 0.207812, 0.696735] + }, + { + "Set": "P", + "EIR-f-T": [1.189071, -0.038585, 0.000415, 0.011574, 0.000017, -0.000108], + "CAP-f-T": [-0.063852, 0.038321, -0.000388, 0.002935, -0.000054, 0.000072], + "EIR-f-PLR": [0.103665, 0.148024, 0.744887] + }, + { + "Set": "Q", + "EIR-f-T": [0.916144, -0.041541, 0.000436, 0.020987, -0.000047, -0.000100], + "CAP-f-T": [0.131880, 0.023312, -0.000286, 0.006699, -0.000084, 0.000116], + "EIR-f-PLR": [0.061706, 0.261711, 0.677017] + }, + { + "Set": "R", + "EIR-f-T": [0.860442, -0.036414, 0.000317, 0.022419, -0.000108, 0.000001], + "CAP-f-T": [-0.062772, 0.054642, -0.000550, -0.008072, 0.000004, 0.000101], + "EIR-f-PLR": [0.072183, 0.108650, 0.818174] + }, + { + "Set": "S", + "EIR-f-T": [0.582513, -0.033786, 0.000227, 0.027678, -0.000157, 0.000067], + "CAP-f-T": [0.015941, 0.049796, -0.000573, -0.007266, -0.000041, 0.000219], + "EIR-f-PLR": [0.064979, 0.151829, 0.779131] + }, + { + "Set": "T", + "EIR-f-T": [0.634610, -0.033472, 0.000260, 0.026148, -0.000130, 0.000015], + "CAP-f-T": [0.127596, 0.046709, -0.000538, -0.006247, -0.000047, 0.000195], + "EIR-f-PLR": [0.082812, 0.152816, 0.764822] + }, + { + "Set": "U", + "EIR-f-T": [0.593414, -0.028948, 0.000224, 0.024197, -0.000126, 0.000027], + "CAP-f-T": [-0.487422, 0.071558, -0.000737, -0.006964, -0.000032, 0.000158], + "EIR-f-PLR": [0.058583, 0.205486, 0.736345] + } + ] +} diff --git a/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_6.json b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_6.json new file mode 100644 index 0000000000..db51056c47 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data/ashrae_90_1_table_J_6.json @@ -0,0 +1,40 @@ +{ + "performance_curve_coefficient": [ + { + "Set": "V", + "EIR-f-T": [2.044998, -0.047515, 0.000505, -0.008787, 0.000175, -0.00012], + "CAP-f-T": [-0.981909, 0.076674, -0.000687, 0.00392, -0.000058, 0.000006], + "EIR-f-PLR": [0.276037, 0.253577, 0.466353] + }, + { + "Set": "X", + "EIR-f-T": [1.037805, -0.024695, 0.000329, 0.00313, 0.000102, -0.000159], + "CAP-f-T": [-0.683858, 0.065283, -0.000602, 0.002347, -0.00005, 0.000036], + "EIR-f-PLR": [0.250801, 0.345915, 0.399138] + }, + { + "Set": "Y", + "EIR-f-T": [1.188945, -0.039426, 0.000413, 0.012888, 0.000002, -0.000098], + "CAP-f-T": [-0.160681, 0.04439, -0.000429, 0.001024, -0.000035, 0.000055], + "EIR-f-PLR": [0.320097, 0.074356, 0.602938] + }, + { + "Set": "Z", + "EIR-f-T": [0.857485, -0.036148, 0.000314, 0.022356, -0.000108, 0.000001], + "CAP-f-T": [-0.061958, 0.054739, -0.00055, -0.008177, 0.000005, 0.000101], + "EIR-f-PLR": [0.281669, 0.202762, 0.515409] + }, + { + "Set": "AA", + "EIR-f-T": [0.479847, -0.035964, 0.000225, 0.031377, -0.000183, 0.000085], + "CAP-f-T": [-0.128081, 0.050459, -0.000581, -0.004297, -0.000049, 0.0002], + "EIR-f-PLR": [0.339494, 0.04909, 0.611582] + }, + { + "Set": "AB", + "EIR-f-T": [0.74721, -0.038874, 0.000313, 0.027638, -0.000133, -0.000008], + "CAP-f-T": [0.117208, 0.04294, -0.000478, -0.00393, -0.000045, 0.000155], + "EIR-f-PLR": [0.309752, 0.153649, 0.536462] + } + ] +} diff --git a/rct229/rulesets/ashrae9012022/data_fns/__init__.py b/rct229/rulesets/ashrae9012022/data_fns/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns.py b/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns.py new file mode 100644 index 0000000000..f960f3c57e --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns.py @@ -0,0 +1,55 @@ +from rct229.rulesets.ashrae9012022.data import data +from rct229.rulesets.ashrae9012022.data_fns.table_utils import find_osstd_table_entry +from rct229.schema.config import ureg + +# This dictionary maps the ClimateZoneOptions2019ASHRAE901 enumerations to +# the corresponding climate zone values in the OSSTD file +# ashrae_90_1_table_3_2.json +table_3_2_climate_zone_enumeration_to_climate_zone_map = { + "CZ0A": "0", + "CZ0B": "0", + "CZ1A": "1", + "CZ1B": "1", + "CZ2A": "2", + "CZ2B": "2", + "CZ3A": "3A,3B", + "CZ3B": "3A,3B", + "CZ3C": "3C", + "CZ4A": "4A,4B", + "CZ4B": "4A,4B", + "CZ4C": "4C", + "CZ5A": "5", + "CZ5B": "5", + "CZ5C": "5", + "CZ6A": "6", + "CZ6B": "6", + "CZ7": "7", + "CZ8": "8", +} + + +def table_3_2_lookup(climate_zone_enum_val): + """Returns the minimum heating output for a climate zone as + required by ASHRAE 90.1 Table 3.2 + Parameters + ---------- + climate_zone_enum_val : str + One of the ClimateZoneOptions2019ASHRAE901 enumeration values + Returns + ------- + dict + { system_min_heating_output: Quantity – the heating output for the given climate zone given by Table 3.2 [Btu/h-ft^2] } + """ + climate_zone = table_3_2_climate_zone_enumeration_to_climate_zone_map[ + climate_zone_enum_val + ] + osstd_entry = find_osstd_table_entry( + [("climate_zone", climate_zone)], + osstd_table=data["ashrae_90_1_table_3_2"], + ) + btuh_per_ft2 = osstd_entry["heating_output_btu/h-^2"] + system_min_heating_output = btuh_per_ft2 * ureg( + "british_thermal_unit / (hour * foot ** 2)" + ) + + return {"system_min_heating_output": system_min_heating_output} diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns_test.py b/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns_test.py new file mode 100644 index 0000000000..a9e97c98b0 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_3_2_fns_test.py @@ -0,0 +1,60 @@ +from rct229.rulesets.ashrae9012022.data import data +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import ( + table_3_2_climate_zone_enumeration_to_climate_zone_map, + table_3_2_lookup, +) +from rct229.rulesets.ashrae9012022.data_fns.table_utils import ( + check_enumeration_to_osstd_match_field_value_map, +) +from rct229.schema.config import ureg + +btuh_per_ft2 = ureg("british_thermal_unit / (hour * foot ** 2)") + + +# Testing table_3_2------------------------------------------ +def test__table_3_2_CZ0(): + assert table_3_2_lookup("CZ0B") == {"system_min_heating_output": 5 * btuh_per_ft2} + + +def test__table_3_2_CZ1(): + assert table_3_2_lookup("CZ1A") == {"system_min_heating_output": 5 * btuh_per_ft2} + + +def test__table_3_2_CZ2(): + assert table_3_2_lookup("CZ2A") == {"system_min_heating_output": 5 * btuh_per_ft2} + + +def test__table_3_2_CZ3(): + assert table_3_2_lookup("CZ3A") == {"system_min_heating_output": 9 * btuh_per_ft2} + + +def test__table_3_2_CZ4(): + assert table_3_2_lookup("CZ4A") == {"system_min_heating_output": 10 * btuh_per_ft2} + + +def test__table_3_2_CZ5(): + assert table_3_2_lookup("CZ5A") == {"system_min_heating_output": 12 * btuh_per_ft2} + + +def test__table_3_2_CZ6(): + assert table_3_2_lookup("CZ6A") == {"system_min_heating_output": 14 * btuh_per_ft2} + + +def test__table_3_2_CZ7(): + assert table_3_2_lookup("CZ7") == {"system_min_heating_output": 16 * btuh_per_ft2} + + +def test__table_3_2_CZ8(): + assert table_3_2_lookup("CZ8") == {"system_min_heating_output": 19 * btuh_per_ft2} + + +# Testing climate_zone_enumeration_to_climate_zone_map ---------- +def test__climate_zone_enumeration_to_climate_zone_map(): + # check_enumeration_to_osstd_match_field_value_map() will throw exception(s) + # when a check fails + check_enumeration_to_osstd_match_field_value_map( + match_field_name="climate_zone", + enum_type="ClimateZoneOptions2019ASHRAE901", + osstd_table=data["ashrae_90_1_table_3_2"], + enumeration_to_match_field_value_map=table_3_2_climate_zone_enumeration_to_climate_zone_map, + ) diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns.py b/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns.py new file mode 100644 index 0000000000..db5a3b5fbe --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns.py @@ -0,0 +1,226 @@ +from rct229.rulesets.ashrae9012022.data import data +from rct229.rulesets.ashrae9012022.data_fns.table_utils import find_osstd_table_entry +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, +) +from rct229.schema.config import ureg +from rct229.utils.assertions import assert_ + +# This dictionary maps the opaque surface types that are returned from get_opaque_surface_type() +# to the corresponding construction values in ashrae_90_1_prm_2019.construction_properties.json +SURFACE_TYPE_TO_CONSTRUCTION_MAP = { + OST.ABOVE_GRADE_WALL: "ExteriorWall", + OST.ROOF: "ExteriorRoof", + OST.HEATED_SOG: "GroundContactFloor", + OST.UNHEATED_SOG: "GroundContactFloor", + OST.FLOOR: "ExteriorFloor", + OST.BELOW_GRADE_WALL: "GroundContactWall", + "VERTICAL GLAZING": "ExteriorWindow", + "SKYLIGHT": "Skylight", + "DOOR": "ExteriorDoor", +} + +DOOR_SUBCLASSIFICATION_TYPE_TO_STANDARD_CONSTRUCTION_MAP = { + "METAL_COILING_DOOR": "NonSwinging", + "NONSWINGING_DOOR": "NonSwinging", + "SECTIONAL_GARAGE_DOOR": "NonSwinging", + "SWINGING_DOOR": "Swinging", +} + +# This dictionary maps surface conditioning categories as returned from get_surface_conditioning_category_dict() +# to the corresponding building category values in ashrae_90_1_prm_2019.construction_properties.json +# TODO Temporary fix for EXTERIOR MIXED type surface - +# Need to review with RDS on Surface_Conditioning_Category (Zone_Conditioning_Category) functions +SURFACE_CONDITIONING_CATEGORY_TO_BUILDING_CATEGORY_MAP = { + "EXTERIOR RESIDENTIAL": "Residential", + "EXTERIOR MIXED": "Nonresidential", + "EXTERIOR NON-RESIDENTIAL": "Nonresidential", + "SEMI-EXTERIOR": "Semiheated", +} + +# This dictionary maps the ClimateZoneOptions2019ASHRAE901 enumerations to +# the corresponding climate zone set values in the OSSTD file ashrae_90_1_prm_2019.construction_properties.json +CLIMATE_ZONE_ENUMERATION_TO_CLIMATE_ZONE_SET_MAP = { + "CZ0A": "ClimateZone 0", + "CZ0B": "ClimateZone 0", + "CZ1A": "ClimateZone 1", + "CZ1B": "ClimateZone 1", + "CZ2A": "ClimateZone 2", + "CZ2B": "ClimateZone 2", + "CZ3A": "ClimateZone 3", + "CZ3B": "ClimateZone 3", + "CZ3C": "ClimateZone 3", + "CZ4A": "ClimateZone 4", + "CZ4B": "ClimateZone 4", + "CZ4C": "ClimateZone 4", + "CZ5A": "ClimateZone 5", + "CZ5B": "ClimateZone 5", + "CZ5C": "ClimateZone 5", + "CZ6A": "ClimateZone 6", + "CZ6B": "ClimateZone 6", + "CZ7": "ClimateZone 7", + "CZ8": "ClimateZone 8", +} + + +# Helper function to add WWR to the search criteria for getting the correct + + +# Exterior windows, skylight and glass doors +def wwr_to_search_criteria(wwr): + wwr_search_list = [] + if wwr <= 0.1: + wwr_search_list.append(("minimum_percent_of_surface", 0)) + wwr_search_list.append(("maximum_percent_of_surface", 10)) + elif wwr <= 0.2: + wwr_search_list.append(("minimum_percent_of_surface", 10.1)) + wwr_search_list.append(("maximum_percent_of_surface", 20)) + elif wwr <= 0.3: + wwr_search_list.append(("minimum_percent_of_surface", 20.1)) + wwr_search_list.append(("maximum_percent_of_surface", 30)) + elif wwr <= 0.4: + wwr_search_list.append(("minimum_percent_of_surface", 30.1)) + wwr_search_list.append(("maximum_percent_of_surface", 40)) + else: + wwr_search_list.append(("minimum_percent_of_surface", None)) + wwr_search_list.append(("maximum_percent_of_surface", None)) + return wwr_search_list + + +# Helper function to add WWR to the search criteria for getting the correct +# Exterior skylight +def skylit_to_search_criteria(wwr): + skylit_search_list = [] + if wwr <= 0.02: + skylit_search_list.append(("minimum_percent_of_surface", 0)) + skylit_search_list.append(("maximum_percent_of_surface", 2.0)) + else: + skylit_search_list.append(("minimum_percent_of_surface", 2.0)) + skylit_search_list.append(("maximum_percent_of_surface", None)) + return skylit_search_list + + +def table_G34_lookup( + climate_zone, + surface_conditioning_category, + opaque_surface_type, + wwr=None, + skylit_wwr=None, + classification=None, +): + """Returns the assembly maximum values for a given climate zone, surface conditioning category + and opaque surface type as required by ASHRAE 90.1 Table G3.4-1 through G3.4-8 + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumeration values + surface_conditioning_category : str + A surface conditioning category as returned by get_surface_conditioning_category_dict() + opaque_surface_type : str + An opaque surface type as returned by get_opaque_surfact_type() + wwr: float + Window to wall ratio of the building, default to None, required for searching transparent + classification: string + Used for specifying particular construction type from database + Returns + ------- + dict + { assembly_maximum_u_value: Quantity - The assembly maximum u value given by Table G3.4-1 } + + """ + climate_zone_set = climate_zone_adjustment_for_fenestration_data( + climate_zone, + CLIMATE_ZONE_ENUMERATION_TO_CLIMATE_ZONE_SET_MAP[climate_zone], + wwr or skylit_wwr, + ) + building_category = SURFACE_CONDITIONING_CATEGORY_TO_BUILDING_CATEGORY_MAP[ + surface_conditioning_category + ] + construction = SURFACE_TYPE_TO_CONSTRUCTION_MAP[opaque_surface_type] + + # TODO Need to revisit this code when space implementation is completed + # construction_set = find_osstd_table_entry( + # [ + # ("template", "90.1-PRM-2019"), + # ("building_type", "Any"), + # ("space_type", "Semiheated" if building_category == "Semiheated" else None), + # ("is_residential", "Yes" if building_category == "Residential" else "No") + # ], + # osstd_table=data["ashrae_90_1_prm_2019.construction_sets"] + # ) + + search_criteria = [ + ("climate_zone_set", climate_zone_set), + ("intended_surface_type", construction), + ("building_category", building_category), + ] + + assert_( + wwr is None or skylit_wwr is None, + "One of the `wwr` or `skylit_wwr` argument must be None.", + ) + if wwr is not None: # when `wwr == 0.0`, `if wwr:` becomes False + search_criteria.extend(wwr_to_search_criteria(wwr)) + + if skylit_wwr is not None: # when `skylit_wwr ==0`, `if skylit_wwr:` becomes False + search_criteria.extend(skylit_to_search_criteria(skylit_wwr)) + + if classification is not None: + search_criteria.append( + ( + "standards_construction_type", + DOOR_SUBCLASSIFICATION_TYPE_TO_STANDARD_CONSTRUCTION_MAP[ + classification + ], + ) + ) + + osstd_entry = find_osstd_table_entry( + search_criteria, + osstd_table=data["ashrae_90_1_prm_2022.construction_properties"], + ) + + search_results = {} + + if osstd_entry["assembly_maximum_u_value"]: + search_results["u_value"] = osstd_entry["assembly_maximum_u_value"] * ( + ureg.Btu_h / ureg.ft2 / ureg.delta_degF + ) + if osstd_entry["assembly_maximum_f_factor"]: + search_results["f_factor"] = osstd_entry["assembly_maximum_f_factor"] * ( + ureg.Btu_h / ureg.ft / ureg.delta_degF + ) + if osstd_entry["assembly_maximum_c_factor"]: + search_results["c_factor"] = osstd_entry["assembly_maximum_c_factor"] * ( + ureg.Btu_h / ureg.ft2 / ureg.delta_degF + ) + if osstd_entry["assembly_maximum_solar_heat_gain_coefficient"]: + search_results["solar_heat_gain_coefficient"] = osstd_entry[ + "assembly_maximum_solar_heat_gain_coefficient" + ] + # TODO need to add fenestration properties + return search_results + + +def climate_zone_adjustment_for_fenestration_data( + rct_climate_zone: str, osstd_climate_zone: str, fenestration_request: bool +): + """ + Helper function to adjust climate zone string: + + Parameters + ---------- + rct_climate_zone + osstd_climate_zone + fenestration_request + + Returns + ------- + + """ + return ( + osstd_climate_zone + rct_climate_zone[-1] + if fenestration_request and osstd_climate_zone.endswith("3") + else osstd_climate_zone + ) diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns_test.py b/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns_test.py new file mode 100644 index 0000000000..93f7599ff7 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_G3_4_fns_test.py @@ -0,0 +1,94 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.schema.config import ureg + +ip_u_value_units = ureg("Btu / (hr * ft2 * delta_degF)") + + +def test__table_G34_CZ0A_ABOVE_GRADE_WALL_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup("CZ0A", "EXTERIOR RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.124 * ip_u_value_units + } + + +def test__table_G34_CZ1A_ABOVE_GRADE_WALL_EXTERIOR_NON_RESIDENTIAL(): + assert table_G34_lookup("CZ1A", "EXTERIOR NON-RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.124 * ip_u_value_units + } + + +def test__table_G34_CZ2A_ABOVE_GRADE_WALL_SEMI_EXTERIOR(): + assert table_G34_lookup("CZ2A", "SEMI-EXTERIOR", "ABOVE-GRADE WALL") == { + "u_value": 0.352 * ip_u_value_units + } + + +def test__table_G34_CZ3A_ABOVE_GRADE_WALL_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup("CZ3A", "EXTERIOR RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.084 * ip_u_value_units + } + + +def test__table_G34_CZ3A_WWR_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup( + "CZ3A", "EXTERIOR RESIDENTIAL", "VERTICAL GLAZING", 0.09 + ) == { + "u_value": 0.57 * ip_u_value_units, + "solar_heat_gain_coefficient": 0.39, + } + + +def test__table_G34_CZ3C_WWR_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup( + "CZ3C", "EXTERIOR RESIDENTIAL", "VERTICAL GLAZING", 0.09 + ) == { + "u_value": 1.22 * ip_u_value_units, + "solar_heat_gain_coefficient": 0.61, + } + + +def test__table_G34_CZ3C_WWR_40_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup( + "CZ3C", "EXTERIOR RESIDENTIAL", "VERTICAL GLAZING", 0.39 + ) == { + "u_value": 1.22 * ip_u_value_units, + "solar_heat_gain_coefficient": 0.34, + } + + +def test__table_G34_CZ4A_WWR_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup( + "CZ4A", "EXTERIOR RESIDENTIAL", "VERTICAL GLAZING", 0.09 + ) == { + "u_value": 0.57 * ip_u_value_units, + "solar_heat_gain_coefficient": 0.39, + } + + +def test__table_G34_CZ4A_ABOVE_GRADE_WALL_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup("CZ4A", "EXTERIOR RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.064 * ip_u_value_units + } + + +def test__table_G34_CZ5A_ABOVE_GRADE_WALL_SEMI_EXTERIOR(): + assert table_G34_lookup("CZ5A", "SEMI-EXTERIOR", "ABOVE-GRADE WALL") == { + "u_value": 0.124 * ip_u_value_units + } + + +def test__table_G34_CZ6A_ABOVE_GRADE_WALL_EXTERIOR_RESIDENTIAL(): + assert table_G34_lookup("CZ6A", "EXTERIOR RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.064 * ip_u_value_units + } + + +def test__table_G34_CZ7_ABOVE_GRADE_WALL_NON_RESIDENTIAL(): + assert table_G34_lookup("CZ7", "EXTERIOR NON-RESIDENTIAL", "ABOVE-GRADE WALL") == { + "u_value": 0.064 * ip_u_value_units + } + + +def test__table_CZ8_CZ0A_ABOVE_GRADE_WALL_SEMI_EXTERIOR(): + assert table_G34_lookup("CZ8", "SEMI-EXTERIOR", "ABOVE-GRADE WALL") == { + "u_value": 0.124 * ip_u_value_units + } diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns.py b/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns.py new file mode 100644 index 0000000000..c83b263f8a --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns.py @@ -0,0 +1,55 @@ +from rct229.rulesets.ashrae9012022.data import data +from rct229.rulesets.ashrae9012022.data_fns.table_utils import find_osstd_table_entry + + +def table_J_4_lookup(Set: str, output_variable: str) -> list[float]: + """Returns the performance curve coefficients as specified in ASHRAE 90.1 Table J-4 + + Parameters + ---------- + Set : str + One of the set specified in Table J-4 ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U") + output_variable: str + One of the performance curve types ("EIR-f-T", "CAP-f-T", "EIR-f-PLR") + + Returns + ------- + list of floats + + """ + + if Set not in ( + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + ): + return None + + if output_variable not in ("EIR-f-T", "CAP-f-T", "EIR-f-PLR"): + return None + + osstd_entry = find_osstd_table_entry( + [("Set", Set)], + osstd_table=data["ashrae_90_1_table_J_4"], + ) + performance_coefficient = osstd_entry[output_variable] + + return performance_coefficient diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns_test.py b/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns_test.py new file mode 100644 index 0000000000..fd80d6c1c1 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_J_4_fns_test.py @@ -0,0 +1,55 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_J_4_fns import ( + table_J_4_lookup, +) + + +def test__table_J_4_A_EIR_f_T(): + assert table_J_4_lookup("A", "EIR-f-T") == [ + 1.777758, + -0.038258, + 0.000431, + -0.005368, + 0.000118, + -0.000115, + ] + + +def test__table_J_4_B_CAP_f_T(): + assert table_J_4_lookup("B", "CAP-f-T") == [ + -1.153535, + 0.075066, + -0.000622, + 0.009777, + -0.000071, + -0.000057, + ] + + +def test__table_J_4_C_EIR_f_PLR(): + assert table_J_4_lookup("C", "EIR-f-PLR") == [0.243730, 0.165972, 0.586099] + + +def test__table_J_4_M_EIR_f_T(): + assert table_J_4_lookup("M", "EIR-f-T") == [ + 2.018167, + -0.045111, + 0.000485, + -0.008503, + 0.000168, + -0.000124, + ] + + +def test__table_J_4_N_CAP_f_T(): + assert table_J_4_lookup("N", "CAP-f-T") == [ + -0.840342, + 0.071938, + -0.000641, + 0.002703, + -0.000047, + 0.000007, + ] + + +def test__table_J_4_S_EIR_f_PLR(): + assert table_J_4_lookup("S", "EIR-f-PLR") == [0.064979, 0.151829, 0.779131] diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns.py b/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns.py new file mode 100644 index 0000000000..ee68379ea5 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns.py @@ -0,0 +1,33 @@ +from rct229.rulesets.ashrae9012022.data import data +from rct229.rulesets.ashrae9012022.data_fns.table_utils import find_osstd_table_entry + + +def table_J_6_lookup(Set: str, output_variable: str) -> list[float]: + """Returns the performance curve coefficients as specified in ASHRAE 90.1 Table J-6 + + Parameters + ---------- + Set : str + One of the set specified in Table J-6 ("V", "X", "Y", "Z", "AA", "AB") + output_variable: str + One of the performance curve types ("EIR-f-T", "CAP-f-T", "EIR-f-PLR") + + Returns + ------- + list of floats + + """ + + if Set not in ("V", "X", "Y", "Z", "AA", "AB"): + return None + + if output_variable not in ("EIR-f-T", "CAP-f-T", "EIR-f-PLR"): + return None + + osstd_entry = find_osstd_table_entry( + [("Set", Set)], + osstd_table=data["ashrae_90_1_table_J_6"], + ) + performance_coefficient = osstd_entry[output_variable] + + return performance_coefficient diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns_test.py b/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns_test.py new file mode 100644 index 0000000000..b8beba04d0 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_J_6_fns_test.py @@ -0,0 +1,29 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_J_6_fns import ( + table_J_6_lookup, +) + + +def test__table_J_6_X_EIR_f_T(): + assert table_J_6_lookup("X", "EIR-f-T") == [ + 1.037805, + -0.024695, + 0.000329, + 0.00313, + 0.000102, + -0.000159, + ] + + +def test__table_J_6_Y_CAP_f_T(): + assert table_J_6_lookup("Y", "CAP-f-T") == [ + -0.160681, + 0.04439, + -0.000429, + 0.001024, + -0.000035, + 0.000055, + ] + + +def test__table_J_6_AA_EIR_f_PLR(): + assert table_J_6_lookup("AA", "EIR-f-PLR") == [0.339494, 0.04909, 0.611582] diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_utils.py b/rct229/rulesets/ashrae9012022/data_fns/table_utils.py new file mode 100644 index 0000000000..8de760f06f --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_utils.py @@ -0,0 +1,161 @@ +from rct229.schema.schema_enums import SchemaEnums + + +def find_osstd_table_entry(match_field_name_value_pairs, osstd_table): + """Find a specific entry in an OSSTD table + + This takes advantage of the consistent structure across all the OSSTD + JSON files. Each file contains a dictionary with a single key. The value + associated with that key is a list of dictionaries. This function searches + through those inner dictionaries to find one that matches all the + provided + match_field_name: match_field_value + pairs. + + Parameters + ---------- + match_field_name_value_pairs : list of 2-tuples + List of (match_field_name, match_field_value) tuples + osstd_table : dict + The OSSTD table data as loaded from its JSON file + + Returns + ------- + dict + The matching table entry + """ + assert type(osstd_table) is dict + + keys = list(osstd_table) + assert len(keys) == 1 + + data_list = osstd_table[keys[0]] + assert type(data_list) is list + + matching_entries = list( + filter( + lambda entry: all( + [ + entry[match_field_name] == match_field_value + for ( + match_field_name, + match_field_value, + ) in match_field_name_value_pairs + ] + ), + data_list, + ) + ) + assert ( + len(matching_entries) == 1 + ), f"Not exactly one match in OSSTD for {match_field_name_value_pairs}, found {len(matching_entries)} instead." + + matching_entry = matching_entries[0] + assert type(matching_entry) is dict + + return matching_entries[0] + + +def find_osstd_table_entries(match_field_name_value_pairs, osstd_table: dict): + """Find specific entries in an OSSTD table + + This takes advantage of the consistent structure accross all the OSSTD + JSON files. Each file contains a dictionary with a single key. The value + associated with that key is a list of dictionaries. This function searches + through those inner dictionaries to find all entries that match all the + provided match_field_name_value_pairs + + Parameters + ---------- + match_field_name_value_pairs : list of 2-tuples + List of (match_field_name, match_field_value) tuples + osstd_table : dict + The OSSTD table data as loaded from its JSON file + + Returns + ------- + list + The matching table entries + """ + assert type(osstd_table) is dict + + keys = list(osstd_table) + assert len(keys) == 1 + + data_list = osstd_table[keys[0]] + assert type(data_list) is list + + matching_entries = list( + filter( + lambda entry: all( + [ + entry[match_field_name] == match_field_value + for ( + match_field_name, + match_field_value, + ) in match_field_name_value_pairs + ] + ), + data_list, + ) + ) + + assert len(matching_entries) > 0, "No entries found in the table" + + for matching_entry in matching_entries: + assert type(matching_entry) is dict + + return matching_entries + + +def check_enumeration_to_osstd_match_field_value_map( + match_field_name, + enum_type, + osstd_table, + enumeration_to_match_field_value_map, + exclude_enum_names=[], +): + """A sanity check for an enumeration to OSSTD match field value map + + Checks that + 1. Each enumerated value (except for those in exclude_enum_names) is a + key in the map + 2. There is actually a matching entry in the underlying OSSTD table + corresponding to each enumated value + + This function only applies to OSSTD tables that have a field name, + match_field_name, whose values are unique in the OSSTD table. + + Parameters + ---------- + match_field_name : str + Field name for the OSSTD lookup + enum_type : str + The name of an enumeration from the ruleset + osstd_table : dict + An OSSTD table + enumeration_to_match_field_value_map : dict + The map to be checked + exclude_enum_names: list + A list of strings of the enumeration names to be excluded from the check + For example, "NONE" may be used as a flag that is not intended to be + looked up. + + Returns + ------- + dict + The matching table entry + """ + for e in SchemaEnums.schema_enums[enum_type].get_list(): + if e in exclude_enum_names: + continue + + # Make sure each space type in the enumeration is in our map + match_field_value = enumeration_to_match_field_value_map[e] + assert match_field_value is not None, f"{e} is not in the map" + + # Make sure there is a corresponding entry in the OSSTD table + # find_osstd_table_entry() will throw if not + entry = find_osstd_table_entry( + [(match_field_name, match_field_value)], osstd_table + ) diff --git a/rct229/rulesets/ashrae9012022/data_fns/table_utils_test.py b/rct229/rulesets/ashrae9012022/data_fns/table_utils_test.py new file mode 100644 index 0000000000..45a515b45d --- /dev/null +++ b/rct229/rulesets/ashrae9012022/data_fns/table_utils_test.py @@ -0,0 +1,25 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_utils import find_osstd_table_entry + + +FAKE_OSSTD_TABLE = { + "fake_list": [ + { + "match_field": 1, + "other_field": "some_value", + }, + { + "match_field": 2, + "other_field": "some_other_value", + }, + ] +} + + +def test__find_osstd_table_entry__with_single_pair(): + assert find_osstd_table_entry( + [("match_field", 2)], + osstd_table=FAKE_OSSTD_TABLE, + ) == { + "match_field": 2, + "other_field": "some_other_value", + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/__init__.py b/rct229/rulesets/ashrae9012022/ruleset_functions/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve.py b/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve.py new file mode 100644 index 0000000000..5f024b2af1 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve.py @@ -0,0 +1,300 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_J_4_fns import table_J_4_lookup +from rct229.rulesets.ashrae9012022.data_fns.table_J_6_fns import table_J_6_lookup +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import assert_, getattr_ +from rct229.utils.std_comparisons import std_equal_with_precision + +ENERGY_SOURCE = SchemaEnums.schema_enums["EnergySourceOptions"] +CHILLER_COMPRESSOR = SchemaEnums.schema_enums["ChillerCompressorOptions"] +CHILLER_EFFICIENCY_METRIC = SchemaEnums.schema_enums["ChillerEfficiencyMetricOptions"] + + +EXPECTED_VALIDATION_PLR = [0.25, 0.50, 0.75, 1.00] +EXPECTED_CHILLED_WATER_TEMPS = [39.0, 45.0, 50.0, 55.0] +EXPECTED_ENTERING_CONDENSER_WATER_TEMPS = [60.0, 72.5, 85.0, 97.5, 104.0] + + +class J4_CURVE: + A = "A" + B = "B" + C = "C" + D = "D" + E = "E" + F = "F" + G = "G" + H = "H" + I = "I" + J = "J" + K = "K" + L = "L" + M = "M" + N = "N" + O = "O" + P = "P" + Q = "Q" + R = "R" + S = "S" + T = "T" + U = "U" + + +class J6_CURVE: + V = "V" + X = "X" + Y = "Y" + Z = "Z" + AA = "AA" + AB = "AB" + + +J4_CURVE_SET = [ + J4_CURVE.A, + J4_CURVE.B, + J4_CURVE.C, + J4_CURVE.D, + J4_CURVE.E, + J4_CURVE.F, + J4_CURVE.G, + J4_CURVE.H, + J4_CURVE.I, + J4_CURVE.J, + J4_CURVE.K, + J4_CURVE.L, + J4_CURVE.M, + J4_CURVE.N, + J4_CURVE.O, + J4_CURVE.P, + J4_CURVE.Q, + J4_CURVE.R, + J4_CURVE.S, + J4_CURVE.T, + J4_CURVE.U, +] +J6_CURVE_SET = [ + J6_CURVE.V, + J6_CURVE.X, + J6_CURVE.Y, + J6_CURVE.Z, + J6_CURVE.AA, + J6_CURVE.AB, +] + + +def does_chiller_performance_match_curve(chiller: dict, curve_set: str) -> bool: + """ + Evaluates whether the chiller performance curves align with the sets of performance curves specified in Appendix J of ASHRAE 90.1-2022 Appendix G. + + Parameters + ---------- + chiller: dict + The chiller object containing all relevant data for the chiller to be validated against the performance curves in Appendix J of ASHRAE 90.1-2022. + This includes the rated capacity, full load efficiency (COP), compressor type, and the lists of capacity and power operating points. + curve_set: str + The curve set that the chiller is expected to align with. This should be a letter code of A, B, etc. to lookup in either Table J-4 or J-6. + + Returns + ------- + bool + boolean value indicating whether the chiller performance validation passed or failed. + + """ + + if curve_set in J4_CURVE_SET: + table_lookup = "J-4" + elif curve_set in J6_CURVE_SET: + table_lookup = "J-6" + else: + raise ValueError( + "Invalid curve set provided. Must be A-U for Table J-4 or V-AB for Table J-6." + ) + + rated_capacity = getattr_(chiller, "chillers", "rated_capacity") + efficiency_metric_type = getattr_(chiller, "chillers", "efficiency_metric_types") + assert_( + "FULL_LOAD_EFFICIENCY_RATED" in efficiency_metric_type, + "The `FULL_LOAD_EFFICIENCY_RATED` must exist in the `efficiency_metric_types`.", + ) + # find where the "FULL_LOAD_EFFICIENCY_RATED" is located + full_load_efficiency_rated_position = efficiency_metric_type.index( + "FULL_LOAD_EFFICIENCY_RATED" + ) + + full_load_efficiency_rated = getattr_( + chiller, "chillers", "efficiency_metric_values" + )[full_load_efficiency_rated_position] + + assert_( + rated_capacity > 0 * ureg("W"), "The `capacity` value must be greater than 0 W." + ) + assert_( + full_load_efficiency_rated > 0, + "The `efficiency_metric_values` must be greater than 0.", + ) + + rated_power = rated_capacity / full_load_efficiency_rated + + if table_lookup == "J-4": + eir_f_t_coefficients = table_J_4_lookup(curve_set, "EIR-f-T") + cap_f_t_coefficients = table_J_4_lookup(curve_set, "CAP-f-T") + plr_coefficients = table_J_4_lookup(curve_set, "EIR-f-PLR") + else: + eir_f_t_coefficients = table_J_6_lookup(curve_set, "EIR-f-T") + cap_f_t_coefficients = table_J_6_lookup(curve_set, "CAP-f-T") + plr_coefficients = table_J_6_lookup(curve_set, "EIR-f-PLR") + + capacity_operating_pts_dict = {} + capacity_operating_points = getattr_( + chiller, "chillers", "capacity_operating_points" + ) + for capacity_operating_point in capacity_operating_points: + chilled_water_supply_temp = getattr_( + capacity_operating_point, + "capacity_operating_points", + "chilled_water_supply_temperature", + ).to("degF") + condenser_temp = getattr_( + capacity_operating_point, + "capacity_operating_points", + "condenser_temperature", + ).to("degF") + + dict_key = ( + f"{round(chilled_water_supply_temp.m, 1)}, {round(condenser_temp.m, 1)}" + ) + capacity_operating_pts_dict[dict_key] = getattr_( + capacity_operating_point, + "capacity_operating_points", + "capacity", + ) + assert_( + capacity_operating_pts_dict[dict_key] > 0, + "The 'capacity' value must be greater than 0 W.", + ) + + power_operating_pts_dict = {} + power_operating_points = getattr_(chiller, "chillers", "power_operating_points") + for power_operating_point in power_operating_points: + chilled_water_supply_temp = getattr_( + power_operating_point, + "power_operating_points", + "chilled_water_supply_temperature", + ).to("degF") + condenser_temp = getattr_( + power_operating_point, + "power_operating_points", + "condenser_temperature", + ).to("degF") + + dict_key = ( + f"{round(chilled_water_supply_temp.m, 1)}, {round(condenser_temp.m, 1)}" + ) + + power_operating_pts_dict.setdefault(dict_key, []) + power_operating_pts_dict[dict_key].append(power_operating_point) + + given_capacities = {} + non_matching_capacity_operating_points = [] + missing_capacity_operating_points = [] + for chwt in EXPECTED_CHILLED_WATER_TEMPS: + for ecwt in EXPECTED_ENTERING_CONDENSER_WATER_TEMPS: + dict_key = f"{chwt}, {ecwt}" + if dict_key in capacity_operating_pts_dict: + expected_capacity = ( + cap_f_t_coefficients[0] + + cap_f_t_coefficients[1] * chwt + + cap_f_t_coefficients[2] * chwt**2 + + cap_f_t_coefficients[3] * ecwt + + cap_f_t_coefficients[4] * ecwt**2 + + cap_f_t_coefficients[5] * chwt * ecwt + ) * rated_capacity + + given_capacity = capacity_operating_pts_dict[dict_key] + given_capacities[dict_key] = given_capacity + + if not std_equal_with_precision( + given_capacity, expected_capacity, 1 * ureg("ton") + ): + non_matching_capacity_operating_points.append( + {"CHWT": chwt, "ECWT": ecwt} + ) + else: + missing_capacity_operating_points.append({"CHWT": chwt, "ECWT": ecwt}) + + non_matching_power_operating_points = [] + missing_power_operating_points = [] + for chwt in EXPECTED_CHILLED_WATER_TEMPS: + for ecwt in EXPECTED_ENTERING_CONDENSER_WATER_TEMPS: + dict_key = f"{chwt}, {ecwt}" + if dict_key in power_operating_pts_dict: + for power_operating_point in power_operating_pts_dict[dict_key]: + load = getattr_( + power_operating_point, "power_operating_points", "load" + ) + given_power = getattr_( + power_operating_point, "power_operating_points", "power" + ) + + plr = ( + load / given_capacities[dict_key] + ) # already checked `given_capacities[dict_key]` > 0.0 + + # plr.m because plr is a "dimensionless" unit + if any( + [ + std_equal_with_precision(plr.m, expected_plr, 2) + for expected_plr in EXPECTED_VALIDATION_PLR + ] + ): + if len(plr_coefficients) == 3: + eir_plr = ( + plr_coefficients[0] + + plr_coefficients[1] * plr + + plr_coefficients[2] * plr**2 + ) + elif len(plr_coefficients) == 4: + eir_plr = ( + plr_coefficients[0] + + plr_coefficients[1] * plr + + plr_coefficients[2] * plr**2 + + plr_coefficients[3] * plr**3 + ) + + eir_ft = ( + eir_f_t_coefficients[0] + + eir_f_t_coefficients[1] * chwt + + eir_f_t_coefficients[2] * chwt**2 + + eir_f_t_coefficients[3] * ecwt + + eir_f_t_coefficients[4] * ecwt**2 + + eir_f_t_coefficients[5] * chwt * ecwt + ) + expected_power = ( + given_capacities[dict_key] + * eir_ft + * eir_plr + * rated_power + / rated_capacity + ) + + if not std_equal_with_precision( + given_power, expected_power, 1 * ureg("ton") + ): + non_matching_power_operating_points.append( + {"CHWT": chwt, "ECWT": ecwt, "PLR": "ALL"} + ) + else: + missing_power_operating_points.append( + {"CHWT": chwt, "ECWT": ecwt, "PLR": plr} + ) + else: + missing_power_operating_points.append( + {"CHWT": chwt, "ECWT": ecwt, "PLR": plr} + ) + + return ( + len(non_matching_capacity_operating_points) + == len(missing_capacity_operating_points) + == len(non_matching_power_operating_points) + == len(missing_power_operating_points) + == 0 + ) diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve_test.py new file mode 100644 index 0000000000..613c77efef --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/does_chiller_performance_match_curve_test.py @@ -0,0 +1,475 @@ +import copy + +import pytest +from rct229.rulesets.ashrae9012022.ruleset_functions.does_chiller_performance_match_curve import ( + does_chiller_performance_match_curve, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd +from rct229.utils.assertions import RCTFailureException + +TEST_RMD = { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": True, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1", + } + ], + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": True, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1", + } + ], + }, + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1", + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1", + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [{"id": "Supply Fan 1"}], + "return_fans": [{"id": "Return Fan 1"}], + }, + } + ], + } + ], + } + ], + "boilers": [ + {"id": "Boiler 1", "loop": "Boiler Loop 1", "energy_source_type": "NATURAL_GAS"} + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 527550.0, + "condensing_loop": "Condenser Loop 1", + "efficiency_metric_values": [5.5], + "efficiency_metric_types": ["FULL_LOAD_EFFICIENCY_RATED"], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "capacity": 522221.2, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "capacity": 417000.3, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85 * ureg("degF")).to("degC").m, + "capacity": 474715.3, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "capacity": 502507.3, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "capacity": 438845.2, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "capacity": 565443.4, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "capacity": 488077.1, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85 * ureg("degF")).to("degC").m, + "capacity": 533764.0, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "capacity": 553642.8, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "capacity": 505807.2, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "capacity": 584604.0, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "capacity": 530449.9, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85 * ureg("degF")).to("degC").m, + "capacity": 566113.4, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "capacity": 579397.7, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "capacity": 544750.9, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "capacity": 588439.3, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "capacity": 557497.4, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85 * ureg("degF")).to("degC").m, + "capacity": 583137.4, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "capacity": 589827.4, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "capacity": 568369.3, + }, + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 79979.2, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 93409.8, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85.0 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 102356.5, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 107134.4, + }, + { + "chilled_water_supply_temperature": (39 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 108084.6, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 71797.9, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 84935.4, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85.0 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 93202.5, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 96760.4, + }, + { + "chilled_water_supply_temperature": (45 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 96800.8, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 66960.6, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 80260.3, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85.0 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 88538.4, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 91899.9, + }, + { + "chilled_water_supply_temperature": (50 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 91737.6, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (60 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 63538.7, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (72.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 77160.5, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (85.0 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 85681.6, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (97.5 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 89177.3, + }, + { + "chilled_water_supply_temperature": (55 * ureg("degF")) + .to("degC") + .m, + "condenser_temperature": (104 * ureg("degF")).to("degC").m, + "load": 522221.2, + "power": 89031.4, + }, + ], + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED", + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED", + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED", + }, + ], + "fluid_loops": [ + {"id": "Boiler Loop 1", "type": "HEATING"}, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [{"id": "Secondary CHW Loop 1", "type": "COOLING"}], + }, + {"id": "Condenser Loop 1", "type": "CONDENSER"}, + ], + "heat_rejections": [{"id": "Heat Rejection 1", "loop": "Condenser Loop 1"}], + "type": "BASELINE_0", +} + +TEST_RMD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_CHILLER = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0]["chillers"][0] + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RMD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__does_chiller_performance_match_curve6__pass(): + assert does_chiller_performance_match_curve(TEST_CHILLER, "AA") + + +def test__does_chiller_performance_match_curve__full_load_efficiency_rated_not_exist(): + with pytest.raises( + RCTFailureException, + match="The `FULL_LOAD_EFFICIENCY_RATED` must exist in the `efficiency_metric_types`.", + ): + TEST_CHILLER_ZERO_EFFI = copy.deepcopy(TEST_CHILLER) + TEST_CHILLER_ZERO_EFFI["efficiency_metric_types"] = [] + does_chiller_performance_match_curve(TEST_CHILLER_ZERO_EFFI, "AA") + + +def test__does_chiller_performance_match_curve__zero_full_load_efficiency_rated(): + with pytest.raises( + RCTFailureException, + match="The `efficiency_metric_values` must be greater than 0.", + ): + TEST_CHILLER_ZERO_EFFI = copy.deepcopy(TEST_CHILLER) + TEST_CHILLER_ZERO_EFFI["efficiency_metric_values"][0] = 0.0 + does_chiller_performance_match_curve(TEST_CHILLER_ZERO_EFFI, "AA") + + +def test__does_chiller_performance_match_curve__zero_capacity(): + with pytest.raises( + RCTFailureException, + match="The 'capacity' value must be greater than 0 W.", + ): + TEST_CHILLER_ZERO_EFFI = copy.deepcopy(TEST_CHILLER) + TEST_CHILLER_ZERO_EFFI["capacity_operating_points"][0]["capacity"] = 0.0 + does_chiller_performance_match_curve(TEST_CHILLER_ZERO_EFFI, "AA") diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict.py new file mode 100644 index 0000000000..9199f80f88 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict.py @@ -0,0 +1,99 @@ +from typing import Any + +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_building_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR +NONE_AREA_TYPE = "NONE" + + +class AreaTypeWindowWallAreaDict: + total_wall_area: float | int + total_window_area: float | int + + +def get_area_type_window_wall_area_dict( + climate_zone: str, constructions: list, building: dict +) -> dict[str | Any, dict[str, Any]]: + """Gets a dictionary mapping building area type to a dictionary of (total area of + above grade vertical surfaces) and (total area of fenestration) + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + constructions : list + A list of construction objects as defined by the ASHRAE229 schema + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + + Returns + ------- + dict + A dictionary that saves each area type in a building as per Table G3.1.1-1 with its total fenestration + and envelope above-grade wall areas, + {"AREA_TYPE_1": + {"total_wall_area": , + "total_window_area": }, + "AREA_TYPE_2": + {"total_wall_area": , + "total_window_area": } + } + """ + # required fields for this function are coming from the nested functions. + scc_dictionary = get_building_surface_conditioning_category_dict( + climate_zone, building, constructions + ) + window_wall_areas_dictionary = {} + for building_segment in find_all("building_segments[*]", building): + area_type = building_segment.get("area_type_vertical_fenestration") + if not area_type: + area_type = "NONE" + + if area_type not in window_wall_areas_dictionary: + window_wall_areas_dictionary[area_type]: AreaTypeWindowWallAreaDict = { + "total_wall_area": ZERO.AREA, + "total_window_area": ZERO.AREA, + } + + for surface in find_all("zones[*].surfaces[*]", building_segment): + if (get_opaque_surface_type(surface) == OST.ABOVE_GRADE_WALL) and ( + scc_dictionary[surface["id"]] + in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.EXTERIOR_MIXED, + SCC.SEMI_EXTERIOR, + ] + ): + window_wall_areas_dictionary[area_type]["total_wall_area"] += getattr_( + surface, "surface", "area" + ) + + # add sub-surfaces + for subsurface in find_all("$.subsurfaces[*]", surface): + glazed_area = getattr_(subsurface, "subsurface", "glazed_area") + opaque_area = getattr_(subsurface, "subsurface", "opaque_area") + if ( + getattr_(subsurface, "subsurface", "classification") == DOOR + ) and (glazed_area > opaque_area): + window_wall_areas_dictionary[area_type][ + "total_window_area" + ] += (glazed_area + opaque_area) + else: + window_wall_areas_dictionary[area_type][ + "total_window_area" + ] += (glazed_area + opaque_area) + return window_wall_areas_dictionary diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict_test.py new file mode 100644 index 0000000000..6edc4a2ff6 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_area_type_window_wall_area_dict_test.py @@ -0,0 +1,576 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import table_3_2_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_area_type_window_wall_area_dict import ( + get_area_type_window_wall_area_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + CAPACITY_THRESHOLD as CAPACITY_THRESHOLD_QUANTITY, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + CRAWLSPACE_HEIGHT_THRESHOLD as CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd + +CLIMATE_ZONE = "CZ0A" +POWER_DELTA = 1 +SYSTEM_MIN_HEATING_OUTPUT_QUANTITY = table_3_2_lookup(CLIMATE_ZONE)[ + "system_min_heating_output" +] + +# Convert pint quantities to match schema units +SYSTEM_MIN_HEATING_OUTPUT = ( + (SYSTEM_MIN_HEATING_OUTPUT_QUANTITY * 100 * ureg("m2")).to("W").magnitude +) +POWER_THRESHOLD_100 = (CAPACITY_THRESHOLD_QUANTITY * 100 * ureg("m2")).to("W").magnitude +CRAWLSPACE_HEIGHT_THRESHOLD = CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY.to("m").magnitude + + +# This single rmd is intended to exercise all the get_zone_conditioning_category_dict() code +TEST_rmd = { + "id": "test_rmd", + "constructions": [ + { + "id": "const_1_5_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "interior_wall_3_1_1", + "u_factor": 0.222, # W/(m2 * K) + }, + { + "id": "interior_wall_3_2_1", + "u_factor": 0.222, # W/(m2 * K) + }, + ], + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + # area_type_vertical_fenestration is nonresidential type + # In total this building segment has 10m2 windows and 20m2 walls. + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_1_1, directly conditioned zone + { + "id": "hvac_1_1", + "cooling_system": { + "id": "csys_1_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + # Used for zone_1_2, directly conditioned zone + { + "id": "hvac_1_2", + "heating_system": { + "id": "hsys_1_2_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_1 => directly_conditioned_zone + # zone has a space with a residential lighting_space_type + # => zone_has_residential_spaces + # zone has a space with a nonresidential lighting_space_type + # => zone_has_nonresidential_spaces + # zone_has_nonresidential_spaces AND zone_has_nonresidential_spaces + # => zone_conditioning_category is "CONDITIONED MIXED" + { + "id": "zone_1_1", + "spaces": [ + { + # Residential + "id": "space_1_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + { + # Non-residential + "id": "space_1_1_2", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2", + "area": 10, # m2 + "tilt": 90, # above grade wall + "subsurfaces": [ + { + "id": "subsurface_1_1_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_1", + } + ], + }, + # hvac_1_2 => directly_conditioned_zone + # zone has no residential spaces but a space has a lighting_space_type + # => zone_has_nonresidential_spaces + # Not zone_has_residential_spaces and zone_has_nonesidential_spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_1_2", + "spaces": [ + { + # Non-residential + "id": "space_1_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", + "area": 10, # m2 + "tilt": 90, # above grade wall + "subsurfaces": [ + { + "id": "subsurface_1_2_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2", + } + ], + }, + ], + }, + # area_type_vertical_fenestration is nonresidential type + # In total this building segment has 10m2 windows and 20m2 walls. + { + "id": "bldg_seg_1_2", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_1_2_1, directly conditioned zone + { + "id": "hvac_1_2_1", + "cooling_system": { + "id": "csys_1_2_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + # Used for zone_1_2_2, directly conditioned zone + { + "id": "hvac_1_2_2", + "heating_system": { + "id": "hsys_1_2_2_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_1 => directly_conditioned_zone + # zone has a space with a residential lighting_space_type + # => zone_has_residential_spaces + # zone has a space with a nonresidential lighting_space_type + # => zone_has_nonresidential_spaces + # zone_has_nonresidential_spaces AND zone_has_nonresidential_spaces + # => zone_conditioning_category is "CONDITIONED MIXED" + { + "id": "zone_1_2_1", + "spaces": [ + { + # Residential + "id": "space_1_2_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + { + # Non-residential + "id": "space_1_2_1_2", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_2_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2_2", + "area": 10, # m2 + "tilt": 90, # above grade wall + "subsurfaces": [ + { + "id": "subsurface_1_2_1_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2_1", + } + ], + }, + # hvac_1_2 => directly_conditioned_zone + # zone has no residential spaces but a space has a lighting_space_type + # => zone_has_nonresidential_spaces + # Not zone_has_residential_spaces and zone_has_nonesidential_spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_1_2_2", + "spaces": [ + { + # Non-residential + "id": "space_1_2_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_2_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2_1", + "area": 10, # m2 + "tilt": 90, # above grade wall + "subsurfaces": [ + { + "id": "subsurface_1_2_2_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2_2", + } + ], + }, + ], + }, + # building segment area_type_vertical_fenestration is commercial type + # Total window area: 10m2, Total wall area: 20m2 + { + "id": "bldg_seg_2", + "lighting_building_area_type": "FIRE_STATION", + "area_type_vertical_fenestration": "RETAIL_STAND_ALONE", + "heating_ventilating_air_conditioning_systems": [ + # Used for directly conditioned zone + { + "id": "hvac_2_1", + "cooling_system": { + "id": "csys_2_1_1", + "design_sensible_cool_capacity": POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + # Used for semi-heated zone + { + "id": "hvac_2_2", + "heating_system": { + "id": "csys_2_2_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_2_1 => directly_conditioned_zone + # zone only has residential spaces + # => zone_conditioning_category is "CONDITIONED RESIDENTIAL" + # has 5m2 window and 10m2 wall + { + "id": "zone_2_1", + "spaces": [ + { + "id": "space_2_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "HEALTHCARE_FACILITY_PATIENT_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_2_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2", + "area": 10, # m2 + "tilt": 90, # above grade wall + "subsurfaces": [ + { + "id": "subsurface_2_1_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_2_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_2_1", + } + ], + }, + # hvac_2_2 => semiheated_zone + # zone_conditioning_category is "SEMI-HEATED" + # It has a Door subsurface but the opaque surface is greater than window surface + # So its total surface does not count towards total window area + { + "id": "zone_2_2", + "spaces": [ + { + "id": "space_2_2_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_2_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "tilt": 90, # above grade wall + "construction": "const_1_5_1", + "subsurfaces": [ + { + "id": "subsurface_2_2_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 2, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_2_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_2_2", + } + ], + }, + ], + }, + # Building segment has no area_type_vertical_fenestration + # The total window area in this building segment is 5 m2 + # The total wall area in this building segment is 10 m2 + { + "id": "bldg_seg_3", + "lighting_building_area_type": "CONVENTION_CENTER", + "heating_ventilating_air_conditioning_systems": [ + # Used for directly conditioned zone + { + "id": "hvac_3_1", + "cooling_system": { + "id": "csys_3_1_1", + "design_sensible_cool_capacity": POWER_THRESHOLD_100 + + POWER_DELTA, + }, + } + ], + "zones": [ + # hvac_3_1 => directly_conditioned_zone + # has a door subsurface, the glazed area is greater than the opaque area, + # so its total area count towards window area. + { + "id": "zone_3_1", + "spaces": [ + { + "id": "space_3_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "HEALTHCARE_FACILITY_PATIENT_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_3_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2", # semi-heated + "area": 10, # m2 + "tilt": 90, # above grade wall + "construction": "interior_wall_3_1_1", + "subsurfaces": [ + { + "id": "subsurface_3_1_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 2, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_3_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_3_1", + } + ], + }, + # no hvac, lighting_space_type == "PARKING_AREA_INTERIOR" => unenclosed + # has a 2 m2 window, however it should not count towards the total wall and window area + { + "id": "zone_3_2", + "spaces": [ + { + "id": "space_3_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "PARKING_AREA_INTERIOR", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_3_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_3_1", # directly conditioned + "area": 10, # m2 + "tilt": 90, # above grade wall + "construction": "interior_wall_3_2_1", + "subsurfaces": [ + { + "id": "subsurface_3_2_1_1", + "classification": "WINDOW", + "glazed_area": 2, # m2 + "opaque_area": 0, + "u_factor": 2.4, # W/(m2 * K) + }, + ], + } + ], + }, + ], + }, + ], + } + ], + "constructions": [ + { + "id": "const_1_5_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "interior_wall_3_1_1", + "u_factor": 0.222, # W/(m2 * K) + }, + { + "id": "interior_wall_3_2_1", + "u_factor": 0.222, # W/(m2 * K) + }, + ], + "type": "BASELINE_0", +} + +TEST_rmd_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_rmd], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_BUILDING = quantify_rmd(TEST_rmd_12)["ruleset_model_descriptions"][0]["buildings"][ + 0 +] +TEST_CONSTRUCTIONS = quantify_rmd(TEST_rmd_12)["ruleset_model_descriptions"][0][ + "constructions" +] + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_rmd_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__get_area_type_window_wall_area(): + assert get_area_type_window_wall_area_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING + ) == { + "HOTEL_MOTEL_SMALL": { + "total_wall_area": 40 * ureg("m2"), + "total_window_area": 20 * ureg("m2"), + }, + "RETAIL_STAND_ALONE": { + "total_wall_area": 20 * ureg("m2"), + "total_window_area": 10 * ureg("m2"), + }, + "NONE": { + "total_wall_area": 10 * ureg("m2"), + "total_window_area": 5 * ureg("m2"), + }, + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_baseline_surface_conditioning_category_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_baseline_surface_conditioning_category_dict.py new file mode 100644 index 0000000000..736b0f5ed5 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_baseline_surface_conditioning_category_dict.py @@ -0,0 +1,62 @@ +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + get_building_surface_conditioning_category_dict, + SurfaceConditioningCategory, +) + + +def get_baseline_surface_conditioning_category_dict( + climate_zone, building_b, constructions_b, building_p, constructions_p +): + """Determines the surface conditioning category for every surface in the baseline building based on the requirement + below. + + Space conditioning categories used to determine applicability of the envelope requirements in Tables G3.4-1 through + G3.4-8 shall be the same as in the proposed design. + Exception: Envelope components of the HVAC zones that are semiheated in the proposed design must meet conditioned + envelope requirements in Tables G3.4-1 through G3.4-8 if, based on the sizing runs, these zones are served by a + baseline system with sensible cooling output capacity >= 5 Btu/h·ft2 of floor area, or with heating output capacity + greater than or equal to the criteria in Table G3.4-9, or that are indirectly conditioned spaces. + + Parameters + ---------- + + + Returns + ------- + dict + A dictionary that maps surface IDs to one of the conditioning categories: + EXTERIOR_RESIDENTIAL, EXTERIOR_NON_RESIDENTIAL, EXTERIOR_MIXED, + SEMI_EXTERIOR, UNREGULATED + """ + + building_surface_conditioning_category_dict_b = ( + get_building_surface_conditioning_category_dict( + climate_zone, building_b, constructions_b + ) + ) + building_surface_conditioning_category_dict_p = ( + get_building_surface_conditioning_category_dict( + climate_zone, building_p, constructions_p + ) + ) + + baseline_surface_conditioning_category_dict = {} + for surface_id in building_surface_conditioning_category_dict_b: + if building_surface_conditioning_category_dict_p[ + surface_id + ] == SurfaceConditioningCategory.SEMI_EXTERIOR and building_surface_conditioning_category_dict_b[ + surface_id + ] in [ + SurfaceConditioningCategory.EXTERIOR_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_MIXED, + ]: + baseline_surface_conditioning_category_dict[ + surface_id + ] = SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL + else: + baseline_surface_conditioning_category_dict[ + surface_id + ] = building_surface_conditioning_category_dict_b[surface_id] + + return baseline_surface_conditioning_category_dict diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict.py new file mode 100644 index 0000000000..74d7b0d8e2 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict.py @@ -0,0 +1,103 @@ +from pint import Quantity +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + ZoneConditioningDataDict, + get_building_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR + + +def get_building_scc_skylight_roof_ratios_dict( + climate_zone: str, constructions: list, building: dict +) -> ZoneConditioningDataDict: + """Gets a dictionary mapping skylight and envelope roof ratios for a building for residential, non-residential, + mixed and semi-heated surface conditioning categories + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + constructions : list + A list of construction dictionaries as defined by the ASHRAE229 schema + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + Returns + ------- + dict + A dictionary that saves each surface conditioning category (residential, non-residential, mixed and semi-heated) + with its skylight-roof-ratios for each building in rmd. + { + "building_id": {"EXTERIOR RESIDENTIAL": srr_res, "EXTERIOR NON-RESIDENTIAL": srr_nonres, + "EXTERIOR MIXED": srr_mixed, "SEMI-EXTERIOR": srr_semiheated}, + } + """ + # required fields for this function are coming from the nested functions + scc_dictionary = get_building_surface_conditioning_category_dict( + climate_zone, building, constructions + ) + total_res_roof_area = ZERO.AREA + total_res_skylight_area = ZERO.AREA + total_nonres_roof_area = ZERO.AREA + total_nonres_skylight_area = ZERO.AREA + total_mixed_roof_area = ZERO.AREA + total_mixed_skylight_area = ZERO.AREA + total_semiheated_roof_area = ZERO.AREA + total_semiheated_skylight_area = ZERO.AREA + + for surface in find_all("building_segments[*].zones[*].surfaces[*]", building): + if get_opaque_surface_type(surface) == OST.ROOF: + roof_area = getattr_(surface, "surface", "area") + skylight_area = _helper_calculate_skylight_area(surface) + if scc_dictionary[surface["id"]] == SCC.EXTERIOR_RESIDENTIAL: + total_res_roof_area += roof_area + total_res_skylight_area += skylight_area + elif scc_dictionary[surface["id"]] == SCC.EXTERIOR_NON_RESIDENTIAL: + total_nonres_roof_area += roof_area + total_nonres_skylight_area += skylight_area + elif scc_dictionary[surface["id"]] == SCC.EXTERIOR_MIXED: + total_mixed_roof_area += roof_area + total_mixed_skylight_area += skylight_area + elif scc_dictionary[surface["id"]] == SCC.SEMI_EXTERIOR: + total_semiheated_roof_area += roof_area + total_semiheated_skylight_area += skylight_area + + srr_res = 0.0 + srr_nonres = 0.0 + srr_mixed = 0.0 + srr_semiheated = 0.0 + if total_res_roof_area > ZERO.AREA: + srr_res = total_res_skylight_area / total_res_roof_area + if total_nonres_roof_area > ZERO.AREA: + srr_nonres = total_nonres_skylight_area / total_nonres_roof_area + if total_mixed_roof_area > ZERO.AREA: + srr_mixed = total_mixed_skylight_area / total_mixed_roof_area + if total_semiheated_roof_area > ZERO.AREA: + srr_semiheated = total_semiheated_skylight_area / total_semiheated_roof_area + + return { + getattr(SCC, "EXTERIOR_RESIDENTIAL"): srr_res, + getattr(SCC, "EXTERIOR_NON_RESIDENTIAL"): srr_nonres, + getattr(SCC, "EXTERIOR_MIXED"): srr_mixed, + getattr(SCC, "SEMI_EXTERIOR"): srr_semiheated, + } + + +def _helper_calculate_skylight_area(surface: dict) -> Quantity: + total_glazed_area = ZERO.AREA + for subsurface in find_all("$.subsurfaces[*]", surface): + glazed_area = getattr_(subsurface, "subsurface", "glazed_area") + opaque_area = getattr_(subsurface, "subsurface", "opaque_area") + if getattr_(subsurface, "subsurface", "classification") == DOOR: + if glazed_area > opaque_area: + total_glazed_area += glazed_area + opaque_area + else: + total_glazed_area += glazed_area + opaque_area + return total_glazed_area diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict_test.py new file mode 100644 index 0000000000..962a4c6fd4 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_skylight_roof_ratios_dict_test.py @@ -0,0 +1,752 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import table_3_2_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_skylight_roof_ratios_dict import ( + get_building_scc_skylight_roof_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + CAPACITY_THRESHOLD as CAPACITY_THRESHOLD_QUANTITY, + CRAWLSPACE_HEIGHT_THRESHOLD as CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd + +CLIMATE_ZONE = "CZ0A" +POWER_DELTA = 1 +SYSTEM_MIN_HEATING_OUTPUT_QUANTITY = table_3_2_lookup(CLIMATE_ZONE)[ + "system_min_heating_output" +] + +# Convert pint quantities to match schema units +SYSTEM_MIN_HEATING_OUTPUT = ( + (SYSTEM_MIN_HEATING_OUTPUT_QUANTITY * 100 * ureg("m2")).to("W").magnitude +) +POWER_THRESHOLD_100 = (CAPACITY_THRESHOLD_QUANTITY * 100 * ureg("m2")).to("W").magnitude +CRAWLSPACE_HEIGHT_THRESHOLD = CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY.to("m").magnitude + + +# This single rmd is intended to exercise all the get_building_scc_skylight_roof_ratios_dict function +TEST_rmd = { + "id": "test_rmd", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + # area_type_vertical_fenestration is residential type + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_1_1, directly conditioned zone + { + "id": "hvac_1_1", + "cooling_system": { + "id": "csys_1_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + # Used for zone_1_2, directly conditioned zone + { + "id": "hvac_1_2", + "heating_system": { + "id": "hsys_1_2_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + # Used for zone_1_3, directly conditioned zone + { + "id": "hvac_1_3", + "heating_system": { + "id": "hsys_1_3_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + # Used for zone_1_2, directly conditioned zone + { + "id": "hvac_1_4", + "heating_system": { + "id": "hsys_1_4_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_1 => directly_conditioned_zone + # => zone_conditioning_category is "CONDITIONED RESIDENTIAL" + # => door has greater opaque area than glazed area + # total_res_roof_area = 10 + # total_res_skylight_area = 0 + { + "id": "zone_1_1", + "spaces": [ + { + # Residential + "id": "space_1_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2", + "area": 10, # m2 + "tilt": 0, # roof + "subsurfaces": [ + { + "id": "subsurface_1_1_1_1", + "classification": "DOOR", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_1", + } + ], + }, + # hvac_1_2 => directly_conditioned_zone + # => zone_conditioning_category is "CONDITIONED RESIDENTIAL" + # => door has greater glazed area than opaque area + # total_res_roof_area = 10 + # total_res_skylight_area = 4 + { + "id": "zone_1_2", + "spaces": [ + { + # Residential + "id": "space_1_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", + "area": 10, # m2 + "tilt": 0, # roof + "subsurfaces": [ + { + "id": "subsurface_1_2_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 1, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2", + } + ], + }, + # hvac_1_3 => directly_conditioned_zone + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + # => door has greater opaque area than glazed area + # total_nonres_roof_area = 10 + # total_nonres_skylight_area = 0 + { + "id": "zone_1_3", + "spaces": [ + { + # Non-residential + "id": "space_1_3_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_3_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_4", + "area": 10, # m2 + "tilt": 0, # roof + "subsurfaces": [ + { + "id": "subsurface_1_3_1_1", + "classification": "DOOR", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_3_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_3", + } + ], + }, + # hvac_1_4 => directly_conditioned_zone + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + # => door has greater glazed area than opaque area + # total_nonres_roof_area = 10 + # total_nonres_skylight_area = 4 + { + "id": "zone_1_4", + "spaces": [ + { + # Non-residential + "id": "space_1_4_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_4_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_3", + "area": 10, # m2 + "tilt": 0, # roof + "subsurfaces": [ + { + "id": "subsurface_1_4_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 1, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_4_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_4", + } + ], + }, + ], + }, + # building segment area_type_vertical_fenestration is commercial type + # Total window area: 10m2, Total wall area: 20m2 + { + "id": "bldg_seg_2", + "lighting_building_area_type": "FIRE_STATION", + "area_type_vertical_fenestration": "RETAIL_STAND_ALONE", + "heating_ventilating_air_conditioning_systems": [ + # Used for semi-heated zone + { + "id": "hvac_2_1", + "heating_system": { + "id": "csys_2_1_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + # Used for semi-heated zone + { + "id": "hvac_2_2", + "heating_system": { + "id": "csys_2_2_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_2_1 => semiheated_zone + # zone_conditioning_category is "SEMI-HEATED" + # => door has greater opaque area than glazed area + # total_semiheated_roof_area = 10 + # total_semiheated_skylight_area = 0 + { + "id": "zone_2_1", + "spaces": [ + { + "id": "space_2_1_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_2_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_2_2", # directly conditioned + "area": 10, # m2 + "tilt": 0, # above grade wall + "construction": "const_1_5_1", + "subsurfaces": [ + { + "id": "subsurface_2_1_1_1", + "classification": "DOOR", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_2_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_2_1", + } + ], + }, + # hvac_2_2 => semiheated_zone + # zone_conditioning_category is "SEMI-HEATED" + # => door has greater glazed area than opaque area + # total_semiheated_roof_area = 10 + # total_semiheated_skylight_area = 4 + { + "id": "zone_2_2", + "spaces": [ + { + "id": "space_2_2_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_2_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_2_1", # directly conditioned + "area": 10, # m2 + "tilt": 0, # above grade wall + "construction": "const_1_6_1", + "subsurfaces": [ + { + "id": "subsurface_2_2_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 1, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_2_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_2_2", + } + ], + }, + ], + }, + { + "id": "bldg_seg_3", + "lighting_building_area_type": "MULTIFAMILY", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_3_1, directly conditioned zone + { + "id": "hvac_3_1", + "cooling_system": { + "id": "csys_3_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + { + "id": "hvac_3_2", + "cooling_system": { + "id": "csys_3_2_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_3_1 => directly_conditioned_zone + # zone has a space with a residential lighting_space_type + # => zone_has_residential_spaces + # zone has a space with a nonresidential lighting_space_type + # => zone_has_nonresidential_spaces + # zone_has_nonresidential_spaces AND zone_has_nonresidential_spaces + # => zone_conditioning_category is "CONDITIONED MIXED" + { + "id": "zone_3_1", + "spaces": [ + { + # Residential + "id": "space_3_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + { + # Non-residential + "id": "space_3_1_2", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_3_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_3_2", # directly conditioned + "area": 10, # m2 + "tilt": 0, # above grade wall + "construction": "const_3_5_1", + "subsurfaces": [ + { + "id": "subsurface_3_1_1_1", + "classification": "DOOR", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_3_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_3_1", + } + ], + }, + # hvac_3_2 => directly_conditioned_zone + # zone has a space with a residential lighting_space_type + # => zone_has_residential_spaces + # zone has a space with a nonresidential lighting_space_type + # => zone_has_nonresidential_spaces + # zone_has_nonresidential_spaces AND zone_has_nonresidential_spaces + # => zone_conditioning_category is "CONDITIONED MIXED" + { + "id": "zone_3_2", + "spaces": [ + { + # Residential + "id": "space_3_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + { + # Non-residential + "id": "space_3_2_2", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_3_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_3_1", # directly conditioned + "area": 10, # m2 + "tilt": 0, # above grade wall + "construction": "const_3_6_1", + "subsurfaces": [ + { + "id": "subsurface_3_2_1_1", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 1, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_3_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_3_2", + } + ], + }, + ], + }, + ], + } + ], + "constructions": [ + { + "id": "const_1_5_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_3_6_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_3_5_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_6_1", + "u_factor": 0.1, # W/(m2 * K) + }, + ], + "type": "BASELINE_0", +} + +TEST_RMD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_rmd], +} + +TEST_BUILDING = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0]["buildings"][ + 0 +] +TEST_CONSTRUCTIONS = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0][ + "constructions" +] + +# The purpose of below is to test out when all the summed areas equal 0. +TEST_RMD_BRANCH_COVERAGE = { + "id": "test_rmd_branch_coverage", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + # area_type_vertical_fenestration is residential type + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_1, directly conditioned zone + { + "id": "hvac_1", + "cooling_system": { + "id": "csys_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1 => directly_conditioned_zone + # => zone_conditioning_category is "CONDITIONED RESIDENTIAL" + # => window type subsurface + { + "id": "zone_1", + "spaces": [ + { + # Residential + "id": "space_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + { + "id": "surface_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1", + "area": 10, # m2 + "tilt": 90, # wall + "subsurfaces": [ + { + "id": "subsurface_1_1_1_1", + "classification": "WINDOW", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1", + } + ], + }, + ], + }, + ], + } + ], +} + +TEST_RMD_BRANCH_COVERAGE = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD_BRANCH_COVERAGE], +} + +TEST_BUILDING_BRANCH_COVERAGE = quantify_rmd(TEST_RMD_BRANCH_COVERAGE)[ + "ruleset_model_descriptions" +][0]["buildings"][0] + + +TEST_RMD_BRANCH_COVERAGE2 = { + "id": "test_rmd_branch_coverage2", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + { + "id": "hvac_1_1", + "cooling_system": { + "id": "csys_1_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_1 => directly_conditioned_zone + # => zone_conditioning_category is "UNREGULATED" + # total_res_roof_area = 10 + # total_res_skylight_area = 4 + { + "id": "zone_1_1", + "volume": 300, # m3 + "spaces": [ + { + # Residential + "id": "space_1_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + { + "id": "surface_1_1_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_2", + "area": 10, # m2 + "tilt": 30, # roof + "construction": "Construction 1", + "subsurfaces": [ + { + "id": "subsurface_1_1_1_1", + "classification": "WINDOW", + "glazed_area": 1, + "opaque_area": 3, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + } + ], + }, + ], + }, + ], + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095, + } + ], +} + + +TEST_RMD_BRANCH_COVERAGE2 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD_BRANCH_COVERAGE2], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_BUILDING_BRANCH_COVERAGE2 = quantify_rmd(TEST_RMD_BRANCH_COVERAGE2)[ + "ruleset_model_descriptions" +][0]["buildings"][0] + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RMD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__get_building_scc_skylight_roof_ratios_dict(): + assert get_building_scc_skylight_roof_ratios_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING + ) == { + SCC.EXTERIOR_RESIDENTIAL: 0.2, + SCC.EXTERIOR_NON_RESIDENTIAL: 0.2, + SCC.SEMI_EXTERIOR: 0.2, + SCC.EXTERIOR_MIXED: 0.2, + } + + +def test__get_building_scc_skylight_roof_ratios_dict__branch_coverage(): + assert get_building_scc_skylight_roof_ratios_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING_BRANCH_COVERAGE + ) == { + SCC.EXTERIOR_RESIDENTIAL: 0.0, + SCC.EXTERIOR_NON_RESIDENTIAL: 0.0, + SCC.SEMI_EXTERIOR: 0.0, + SCC.EXTERIOR_MIXED: 0.0, + } + + +def test__get_building_scc_skylight_roof_ratios_dict__branch_coverage2(): + assert get_building_scc_skylight_roof_ratios_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING_BRANCH_COVERAGE2 + ) == { + SCC.EXTERIOR_RESIDENTIAL: 0.0, + SCC.EXTERIOR_NON_RESIDENTIAL: 0.0, + SCC.SEMI_EXTERIOR: 0.0, + SCC.EXTERIOR_MIXED: 0.0, + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict.py new file mode 100644 index 0000000000..38270df25b --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict.py @@ -0,0 +1,119 @@ +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + ZoneConditioningDataDict, + get_building_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.jsonpath_utils import find_all, find_exactly_required_fields +from rct229.utils.pint_utils import ZERO + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR + +# Intended for internal use +GET_BUILDING_SCC_WINDOW_WALL_RATIO_DICT__REQUIRED_FIELDS = { + "building": { + "$.building_segments[*].zones[*].surfaces[*]": ["area"], + "$.building_segments[*].zones[*].surfaces[*].subsurfaces[*]": [ + "classification" + ], + } +} + + +def get_building_scc_window_wall_ratios_dict( + climate_zone: str, constructions: list, building: dict +) -> ZoneConditioningDataDict: + """Determines the window to wall ratio for each surface conditioning category + in a building + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + constructions : list + A list of construction dictionaries as defined by the ASHRAE229 schema + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + + Returns + ------- + dict + A dictionary that maps each surface conditioning category to its average + window to wall ratio + """ + find_exactly_required_fields( + GET_BUILDING_SCC_WINDOW_WALL_RATIO_DICT__REQUIRED_FIELDS["building"], building + ) + + # Get the conditioning category for all the surfaces in the building + scc_dict = get_building_surface_conditioning_category_dict( + climate_zone, building, constructions + ) + + # Initialize total window areas + total_res_window_area = ZERO.AREA + total_nonres_window_area = ZERO.AREA + total_mixed_window_area = ZERO.AREA + total_semi_exterior_window_area = ZERO.AREA + + # Initialize total wall areas + total_res_wall_area = ZERO.AREA + total_nonres_wall_area = ZERO.AREA + total_mixed_wall_area = ZERO.AREA + total_semi_exterior_wall_area = ZERO.AREA + + # Loop through all the surfaces in the building + for surface in find_all("$.building_segments[*].zones[*].surfaces[*]", building): + # surface conditioning category + scc = scc_dict[surface["id"]] + + if get_opaque_surface_type(surface) == OST.ABOVE_GRADE_WALL: + surface_area = surface["area"] + surface_window_area = ZERO.AREA + for subsurface in find_all("$.subsurfaces[*]", surface): + glazed_area = subsurface.get("glazed_area", ZERO.AREA) + opaque_area = subsurface.get("opaque_area", ZERO.AREA) + surface_window_area += ( + glazed_area + opaque_area + if subsurface["classification"] != DOOR + or (glazed_area > opaque_area) + else ZERO.AREA + ) + + if scc == SCC.EXTERIOR_RESIDENTIAL: + total_res_wall_area += surface_area + total_res_window_area += surface_window_area + elif scc == SCC.EXTERIOR_NON_RESIDENTIAL: + total_nonres_wall_area += surface_area + total_nonres_window_area += surface_window_area + elif scc == SCC.EXTERIOR_MIXED: + total_mixed_wall_area += surface_area + total_mixed_window_area += surface_window_area + elif scc == SCC.SEMI_EXTERIOR: + total_semi_exterior_wall_area += surface_area + total_semi_exterior_window_area += surface_window_area + else: + # Sanity check: the only remaining SCC option is UNREGULATED + assert scc == SCC.UNREGULATED + + return { + getattr(SCC, "EXTERIOR_RESIDENTIAL"): total_res_window_area + / total_res_wall_area + if total_res_wall_area > 0 + else 0, + getattr(SCC, "EXTERIOR_NON_RESIDENTIAL"): total_nonres_window_area + / total_nonres_wall_area + if total_nonres_wall_area > 0 + else 0, + getattr(SCC, "EXTERIOR_MIXED"): total_mixed_window_area / total_mixed_wall_area + if total_mixed_wall_area > 0 + else 0, + getattr(SCC, "SEMI_EXTERIOR"): total_semi_exterior_window_area + / total_semi_exterior_wall_area + if total_semi_exterior_wall_area > 0 + else 0, + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict_test.py new file mode 100644 index 0000000000..a949be7b72 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_scc_window_wall_ratios_dict_test.py @@ -0,0 +1,178 @@ +from unittest.mock import patch + +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_window_wall_ratios_dict import ( + get_building_scc_window_wall_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, +) +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd + +CLIMATE_ZONE = "CZ0A" + + +TEST_RMD = { + "id": "test_rmd", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + { + "id": "bldg_seg_1", + "zones": [ + { + "id": "zone_1_1", + "surfaces": [ + # Mock for SCC.EXTERIOR_RESIDENTIAL and OST.ABOVE_GRADE_WALL + { + "id": "surface_1_1_1", + "area": 16, # m2 + "tilt": 90, # degrees + "subsurfaces": [ + # DOOR with not (glazed_area > opaque_area) + # window_area = 0 + { + "id": "subsurface_1_1_1_1", + "classification": "DOOR", + "glazed_area": 1, + "opaque_area": 3, # m2 + }, + # DOOR with (glazed_area > opaque_area) + # window_area = 4 + { + "id": "subsurface_1_1_1_2", + "classification": "DOOR", + "glazed_area": 3, + "opaque_area": 1, # m2 + }, + # Not a DOOR + # window_area = 4 + { + "id": "subsurface_1_1_1_3", + "classification": "OTHER", + "glazed_area": 3, + "opaque_area": 1, # m2 + }, + ], + }, + # Mock for SCC.EXTERIOR_NON_RESIDENTIAL and OST.ABOVE_GRADE_WALL + { + "id": "surface_1_1_2", + "area": 12, # m2 + "tilt": 90, # degrees + "subsurfaces": [ + # Not a DOOR + # window_area = 3 + { + "id": "subsurface_1_1_2_1", + "classification": "WINDOW", + "glazed_area": 3, + }, + ], + }, + # Mock for SCC.EXTERIOR_MIXED and OST.ABOVE_GRADE_WALL + { + "id": "surface_1_1_3", + "area": 12, # m2 + "tilt": 90, # degrees + "subsurfaces": [ + # Not a DOOR + # window_area = 3 + { + "id": "subsurface_1_1_3_1", + "classification": "WINDOW", + "glazed_area": 3, + }, + ], + }, + # Mock for SCC.SEMI_EXTERIOR and OST.ABOVE_GRADE_WALL + { + "id": "surface_1_1_4", + "area": 12, # m2 + "tilt": 90, # degrees + "subsurfaces": [ + # Not a DOOR + # window_area = 3 + { + "id": "subsurface_1_1_4_1", + "classification": "WINDOW", + "glazed_area": 3, + }, + ], + }, + # Mock for SCC.UNREGULATED and OST.ABOVE_GRADE_WALL + { + "id": "surface_1_1_5", + "area": 100, # m2 + "tilt": 90, # degrees + }, + # Mock for SCC.UNREGULATED and OST.ROOF + { + "id": "surface_1_1_6", + "area": 100, # m2 + "tilt": 0, # degrees + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + }, + ], + } + ], + } + ], + "type": "BASELINE_0", +} + +TEST_SCC_DICT = { + "surface_1_1_1": SCC.EXTERIOR_RESIDENTIAL, + "surface_1_1_2": SCC.EXTERIOR_NON_RESIDENTIAL, + "surface_1_1_3": SCC.EXTERIOR_MIXED, + "surface_1_1_4": SCC.SEMI_EXTERIOR, + "surface_1_1_5": SCC.UNREGULATED, + "surface_1_1_6": SCC.UNREGULATED, +} + +TEST_RMD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_BUILDING = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0]["buildings"][ + 0 +] +TEST_CONSTRUCTIONS = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0].get( + "constructions" +) + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RMD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +@patch( + "rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_window_wall_ratios_dict.get_building_surface_conditioning_category_dict", + return_value=TEST_SCC_DICT, +) +def test__get_building_scc_skylight_roof_ratios_dict(mock_get_opaque_surface_type): + assert get_building_scc_window_wall_ratios_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING + ) == { + SCC.EXTERIOR_RESIDENTIAL: 0.5, + SCC.EXTERIOR_NON_RESIDENTIAL: 0.25, + SCC.EXTERIOR_MIXED: 0.25, + SCC.SEMI_EXTERIOR: 0.25, + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict.py new file mode 100644 index 0000000000..4f92504e77 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict.py @@ -0,0 +1,97 @@ +from typing import TypedDict + +from pint import Quantity +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_building_surface_conditioning_category_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + ZoneConditioningCategory as ZCC, + get_zone_conditioning_category_dict, +) +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO + +# NOTE: There are no required fields at this function's level, but the ruleset_functions +# called do have required fields + + +class BuildingSegmentRoofAreas(TypedDict): + total_envelope_roof_area: Quantity + total_skylight_area: Quantity + + +def get_building_segment_skylight_roof_areas_dict( + climate_zone: str, constructions: list, building: dict +) -> dict[str, BuildingSegmentRoofAreas]: + """Gets a dictionary mapping building segment id to a dictionary of (total area of + skylights) and (total area of envelope roofs) for the building_segment + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + constructions : list + A list of construction dictionaries as defined by the ASHRAE229 schema + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + + Returns + ------- + dict + A dictionary of the form + { + : { + "total_envelope_roof_area": , + "total_skylight_area": + } + } + """ + zcc_dict = get_zone_conditioning_category_dict( + climate_zone, building, constructions + ) + scc_dict = get_building_surface_conditioning_category_dict( + climate_zone, building, constructions + ) + building_segment_roof_areas_dict = {} + + for building_segment in find_all("$.building_segments[*]", building): + building_segment_roof_areas_dict[ + building_segment["id"] + ] = building_segment_roof_areas = { + "total_envelope_roof_area": ZERO.AREA, + "total_skylight_area": ZERO.AREA, + } + + for zone in find_all("$.zones[*]", building_segment): + if zcc_dict[zone["id"]] in [ + ZCC.CONDITIONED_RESIDENTIAL, + ZCC.CONDITIONED_NON_RESIDENTIAL, + ZCC.CONDITIONED_MIXED, + ZCC.SEMI_HEATED, + ]: + for surface in find_all("$.surfaces[*]", zone): + if get_opaque_surface_type(surface) == OST.ROOF and scc_dict[ + surface["id"] + ] in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.EXTERIOR_MIXED, + SCC.SEMI_EXTERIOR, + ]: + building_segment_roof_areas[ + "total_envelope_roof_area" + ] += getattr_(surface, "surface", "area") + + building_segment_roof_areas["total_skylight_area"] += sum( + find_all("$.subsurfaces[*].glazed_area", surface), ZERO.AREA + ) + sum( + find_all("$.subsurfaces[*].opaque_area", surface), ZERO.AREA + ) + + return building_segment_roof_areas_dict diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict_test.py new file mode 100644 index 0000000000..331d9c74c8 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_segment_skylight_roof_areas_dict_test.py @@ -0,0 +1,193 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import table_3_2_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_segment_skylight_roof_areas_dict import ( + get_building_segment_skylight_roof_areas_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + CRAWLSPACE_HEIGHT_THRESHOLD as CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd + +CLIMATE_ZONE = "CZ0A" +POWER_DELTA = 1 +SYSTEM_MIN_HEATING_OUTPUT_QUANTITY = table_3_2_lookup(CLIMATE_ZONE)[ + "system_min_heating_output" +] + +# Convert pint quantities to match schema units +SYSTEM_MIN_HEATING_OUTPUT = ( + (SYSTEM_MIN_HEATING_OUTPUT_QUANTITY * 100 * ureg("m2")).to("W").magnitude +) +CRAWLSPACE_HEIGHT_THRESHOLD = CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY.to("m").magnitude + + +# This single RMD is intended to exercise all the get_zone_conditioning_category_dict() code +TEST_RMD = { + "id": "test_rmd", + "constructions": [ + { + "id": "construction_1", + "u_factor": 3.2366105565544463, + } + ], + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + # area_type_vertical_fenestration is nonresidential type + # In total this building segment has 10m2 windows and 20m2 walls. + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "area_type_vertical_fenestration": "HOTEL_MOTEL_SMALL", + "heating_ventilating_air_conditioning_systems": [ + # Used for zone_1_2, directly conditioned zone + { + "id": "hvac_1_2", + "heating_system": { + "id": "hsys_1_2_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_2 => directly_conditioned_zone + # zone has no residential spaces but a space has a lighting_space_type + # => zone_has_nonresidential_spaces + # Not zone_has_residential_spaces and zone_has_nonesidential_spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_1_2", + "spaces": [ + { + # Non-residential + "id": "space_1_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_2_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", + "area": 10, # m2 + "tilt": 10, # roof + "subsurfaces": [ + { + "id": "subsurface_1_2_1_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + }, + # wall surface to verify the roof type check condition for branch coverage + { + "id": "surface_1_2_2", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", + "area": 10, # m2 + "tilt": 90, # wall + "subsurfaces": [ + { + "id": "subsurface_1_2_2_1", + "classification": "WINDOW", + "glazed_area": 5, + "opaque_area": 0, # m2 + "u_factor": 2.4, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2", + } + ], + }, + # below zone is a `UNCONDITIONED` zone for verifying zone type condition for branch coverage + { + "id": "zone_1_3", + "volume": 300, # m3 + "spaces": [ + { + # Non-residential + "id": "space_1_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_3_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_1", + "area": 10, # m2 + "tilt": 90, # wall + "construction": "construction_1", + } + ], + }, + ], + }, + ], + } + ], + "constructions": [ + { + "id": "construction_1", + "u_factor": 3.2366105565544463, + } + ], + "type": "BASELINE_0", +} + +TEST_RMD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_BUILDING = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0]["buildings"][ + 0 +] +TEST_CONSTRUCTIONS = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0].get( + "constructions" +) + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RMD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__get_building_segment_skylight_roof_areas_dict(): + assert get_building_segment_skylight_roof_areas_dict( + CLIMATE_ZONE, TEST_CONSTRUCTIONS, TEST_BUILDING + ) == { + "bldg_seg_1": { + "total_envelope_roof_area": 10 * ureg("m2"), + "total_skylight_area": 5 * ureg("m2"), + } + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_surface_conditioning_category_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_surface_conditioning_category_dict.py new file mode 100644 index 0000000000..93b79dd79c --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_building_surface_conditioning_category_dict.py @@ -0,0 +1,183 @@ +from typing import TypedDict + +import pandas as pd +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + ZoneConditioningCategory as ZCC, + get_zone_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all, find_exactly_required_fields + +# Constants +# TODO: These should directly from the enumerations +SurfaceAdjacency = SchemaEnums.schema_enums["SurfaceAdjacencyOptions"] + + +# Intended for export and internal use +class SurfaceConditioningCategory: + """Enumeration class for zone conditioning categories""" + + # Surface conditioning categories (export these) + EXTERIOR_MIXED: str = "EXTERIOR MIXED" + EXTERIOR_NON_RESIDENTIAL: str = "EXTERIOR NON-RESIDENTIAL" + EXTERIOR_RESIDENTIAL: str = "EXTERIOR RESIDENTIAL" + SEMI_EXTERIOR: str = "SEMI-EXTERIOR" + UNREGULATED: str = "UNREGULATED" + + +class ZoneConditioningDataDict(TypedDict): + EXTERIOR_RESIDENTIAL: float + EXTERIOR_NON_RESIDENTIAL: float + EXTERIOR_MIXED: float + SEMI_EXTERIOR: float + + +SCC_DATA_FRAME = pd.DataFrame( + data={ + ZCC.CONDITIONED_RESIDENTIAL: [ + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.EXTERIOR_RESIDENTIAL, + SurfaceConditioningCategory.SEMI_EXTERIOR, + ], + ZCC.CONDITIONED_NON_RESIDENTIAL: [ + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL, + SurfaceConditioningCategory.SEMI_EXTERIOR, + ], + ZCC.CONDITIONED_MIXED: [ + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.EXTERIOR_MIXED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + ], + ZCC.SEMI_HEATED: [ + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + ], + ZCC.UNENCLOSED: [ + SurfaceConditioningCategory.EXTERIOR_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_MIXED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + ], + ZCC.UNCONDITIONED: [ + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + ], + SurfaceAdjacency.EXTERIOR: [ + SurfaceConditioningCategory.EXTERIOR_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_MIXED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + ], + SurfaceAdjacency.GROUND: [ + SurfaceConditioningCategory.EXTERIOR_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_NON_RESIDENTIAL, + SurfaceConditioningCategory.EXTERIOR_MIXED, + SurfaceConditioningCategory.SEMI_EXTERIOR, + SurfaceConditioningCategory.UNREGULATED, + SurfaceConditioningCategory.UNREGULATED, + ], + }, + index=[ + ZCC.CONDITIONED_RESIDENTIAL, + ZCC.CONDITIONED_NON_RESIDENTIAL, + ZCC.CONDITIONED_MIXED, + ZCC.SEMI_HEATED, + ZCC.UNENCLOSED, + ZCC.UNCONDITIONED, + ], +) + +# Intended for internal use +GET_SURFACE_CONDITIONING_CATEGORY_DICT__REQUIRED_FIELDS = { + "building": { + "$..surface[*]": ["adjacent_to"], + } +} + + +def get_building_surface_conditioning_category_dict( + climate_zone, building, constructions +): + """Determines the surface conditioning category for every surface in a building + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + constructions : list + A list of construction dictionaries as defined by the ASHRAE229 schema + Returns + ------- + dict + A dictionary that maps surfaces to one of the conditioning categories: + EXTERIOR_RESIDENTIAL, EXTERIOR_NON_RESIDENTIAL, EXTERIOR_MIXED, + SEMI_EXTERIOR, UNREGULATED + """ + find_exactly_required_fields( + GET_SURFACE_CONDITIONING_CATEGORY_DICT__REQUIRED_FIELDS["building"], building + ) + + # The dictionary to be returned + surface_conditioning_category_dict = {} + + # Get the conditioning category for all the zones in the building + zcc_dict = get_zone_conditioning_category_dict( + climate_zone, building, constructions + ) + + # Loop through all the zones in the building + for zone in find_all("building_segments[*].zones[*]", building): + # Zone conditioning category + zcc = zcc_dict[zone["id"]] + + # Loop through all the surfaces in the zone + for surface in find_all("surfaces[*]", zone): + surface_adjacent_to = surface["adjacent_to"] + adjacency = ( + zcc_dict[getattr_(surface, "surface", "adjacent_zone")] + if surface_adjacent_to == SurfaceAdjacency.INTERIOR + else surface_adjacent_to + ) + + if adjacency in [SurfaceAdjacency.IDENTICAL, SurfaceAdjacency.UNDEFINED]: + surface_conditioning_category_dict[ + surface["id"] + ] = SurfaceConditioningCategory.UNREGULATED + + elif zcc in SCC_DATA_FRAME.index and adjacency in SCC_DATA_FRAME.columns: + surface_conditioning_category_dict[surface["id"]] = SCC_DATA_FRAME.at[ + zcc, # row index + adjacency, # column index + ] + + else: + raise ValueError( + f"Combination of zone conditioning category '{zcc}' and surface adjacency '{adjacency}' has no mapping to a surface conditioning category" + ) + + return surface_conditioning_category_dict diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict.py new file mode 100644 index 0000000000..e3137e6293 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict.py @@ -0,0 +1,104 @@ +from typing import TypedDict + +from pint import Quantity +from rct229.utils.assertions import assert_ +from rct229.utils.jsonpath_utils import find_all, find_exactly_required_fields +from rct229.utils.pint_utils import ZERO + +# Intended for export and internal use +GET_HVAC_ZONE_LIST_W_AREA_DICT__REQUIRED_FIELDS = { + "building": { + "building_segments[*].zones[*].spaces[*]": [ + "floor_area", + ], + } +} + + +class HVACZoneListArea(TypedDict): + total_area: Quantity + zone_list: list[str] + + +def get_hvac_zone_list_w_area_by_rmd_dict(rmd: dict) -> dict[str, HVACZoneListArea]: + """ + RMD version of the get_hvac_zone_list_w_area_dict function + + Parameters + ---------- + rmd dict + A dictionary representing a ruleset model description as defined by the ASHRAE229 schema + + Returns + ------- + dict + A dictionary of the form + { + : { + "zone_list": [], + "total_area": + } + } + """ + hvac_zone_list_w_area_dict = {} + for building in find_all("$.buildings[*]", rmd): + hvac_zone_list_w_area_dict.update(get_hvac_zone_list_w_area_dict(building)) + return hvac_zone_list_w_area_dict + + +def get_hvac_zone_list_w_area_dict(building: dict) -> dict[str, HVACZoneListArea]: + """Gets the list of zones and their total floor area served by each HVAC system + in a building + + Parameters + ---------- + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + + Returns + ------- + dict + A dictionary of the form + { + : { + "zone_list": [], + "total_area": + } + } + """ + find_exactly_required_fields( + GET_HVAC_ZONE_LIST_W_AREA_DICT__REQUIRED_FIELDS["building"], building + ) + + hvac_zone_list_w_area_dict = {} + + for zone in find_all("$.building_segments[*].zones[*]", building): + terminals = zone.get("terminals") + # Note: None and [] are falsey; zone.terminals is optional + if terminals: + zone_area = sum(find_all("spaces[*].floor_area", zone), ZERO.AREA) + assert_(zone_area > ZERO.AREA, f"zone:{zone['id']} has zero floor area") + for terminal in terminals: + hvac_sys_id = terminal.get( + "served_by_heating_ventilating_air_conditioning_system" + ) + if hvac_sys_id is None: + continue + + # Initialize the hvac_sys entry if not already there + if hvac_sys_id not in hvac_zone_list_w_area_dict: + hvac_zone_list_w_area_dict[hvac_sys_id] = { + "zone_list": [], + "total_area": ZERO.AREA, + } + + hvac_sys_entry = hvac_zone_list_w_area_dict[hvac_sys_id] + if zone["id"] not in hvac_sys_entry["zone_list"]: + hvac_sys_entry["zone_list"].append(zone["id"]) + hvac_sys_entry["total_area"] += zone_area + + assert_( + hvac_sys_entry["total_area"] > ZERO.AREA, + f"terminal:{terminal['id']} serves zero floor area", + ) + return hvac_zone_list_w_area_dict diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict_test.py new file mode 100644 index 0000000000..b545438117 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_hvac_zone_list_w_area_dict_test.py @@ -0,0 +1,88 @@ +from rct229.rulesets.ashrae9012022.ruleset_functions.get_hvac_zone_list_w_area_dict import ( + get_hvac_zone_list_w_area_dict, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd + +TEST_RMD = { + "id": "test_rmd", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + { + "id": "bldg_seg_1", + "heating_ventilating_air_conditioning_systems": [ + {"id": "hvac_1_1"} + ], + "zones": [ + { + "id": "zone_1_1", + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "spaces": [ + { + "id": "space_1_1_1", + "floor_area": 1000, # m2 + "occupant_multiplier_schedule": "om_sched_1", + }, + { + "id": "space_1_1_2", + "floor_area": 500, # m2 + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "terminals": [ + { + "id": "terminal_1_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_1", + }, + { + "id": "terminal_1_1_2", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_1", + }, + ], + }, + { + "id": "zone_1_2", + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + }, + ], + } + ], + } + ], + "type": "BASELINE_0", +} +TEST_RMD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} + +TEST_BUILDING = quantify_rmd(TEST_RMD_12)["ruleset_model_descriptions"][0]["buildings"][ + 0 +] + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RMD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__get_hvac_zone_list_w_area_dict(): + assert get_hvac_zone_list_w_area_dict(TEST_BUILDING) == { + "hvac_1_1": {"zone_list": ["zone_1_1"], "total_area": 1500 * ureg.m2} + } diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type.py new file mode 100644 index 0000000000..8af8efc517 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type.py @@ -0,0 +1,67 @@ +from rct229.schema.config import ureg +from rct229.utils.assertions import getattr_ + +DEGREES = ureg("degrees") +MIN_FLOOR_TILT = 120 * DEGREES +MAX_FLOOR_TILT = 180 * DEGREES +MIN_ROOF_TILT = 0 * DEGREES +MAX_ROOF_TILT = 60 * DEGREES + + +# Intended for export and internal use +class OpaqueSurfaceType: + """Enumeration class for opaque surface types""" + + ABOVE_GRADE_WALL: str = "ABOVE-GRADE WALL" + BELOW_GRADE_WALL: str = "BELOW-GRADE WALL" + FLOOR: str = "FLOOR" + GROUND: str = "GROUND" + HEATED_SOG: str = "HEATED SLAB-ON-GRADE" + ROOF: str = "ROOF" + UNHEATED_SOG: str = "UNHEATED SLAB-ON-GRADE" + + +def get_opaque_surface_type(surface: dict, has_radiant_heat: bool = False) -> str: + """Determines a surface's opaque surface type + + Parameters + ---------- + surface : dict + A dictionary representing a surface as defined by the ASHRAE229 schema. + It is assumed to have at least the minimal structure: + { + adjacent_to, + construction, + tilt + } + has_radiant_heat : bool + A boolean indicating whether the surface has radiant heating, as defined by the corresponding Construction data group + + Returns + ------- + str + One of the following surface types: "ABOVE-GRADE WALL", "BELOW-GRADE WALL", + "FLOOR", "HEATED SLAB-ON-GRADE", "ROOF", "UNHEATED SLAB-ON-GRADE" + """ + surface_tilt = getattr_(surface, "surface", "tilt") + + # Check for roof + if MIN_ROOF_TILT <= surface_tilt < MAX_ROOF_TILT: + surface_type = OpaqueSurfaceType.ROOF + + # Check for a floor type + elif MIN_FLOOR_TILT <= surface_tilt <= MAX_FLOOR_TILT: + if has_radiant_heat and surface.get("adjacent_to") == OpaqueSurfaceType.GROUND: + surface_type = OpaqueSurfaceType.HEATED_SOG + elif surface.get("adjacent_to") == OpaqueSurfaceType.GROUND: + surface_type = OpaqueSurfaceType.UNHEATED_SOG + else: + surface_type = OpaqueSurfaceType.FLOOR + + # Is a wall + elif surface.get("adjacent_to") == OpaqueSurfaceType.GROUND: + surface_type = OpaqueSurfaceType.BELOW_GRADE_WALL + else: + surface_type = OpaqueSurfaceType.ABOVE_GRADE_WALL + + return surface_type diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type_test.py new file mode 100644 index 0000000000..81a1d92593 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_opaque_surface_type_test.py @@ -0,0 +1,66 @@ +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + get_opaque_surface_type, +) +from rct229.schema.config import ureg + +# Constants +DEGREES = ureg("degrees") + +CONSTRUCTIONS = [ + { + "id": "Heated", + "has_radiant_heating": True, + }, + { + "id": "Unheated", + "has_radiant_heating": False, + }, +] +TEST_SURFACES = { + "ABOVE-GRADE WALL": { + "adjacent_to": "INTERIOR", + "construction": "Unheated", + "tilt": 80 * DEGREES, + }, + "BELOW-GRADE WALL": { + "adjacent_to": "GROUND", + "construction": "Heated", + "tilt": 100 * DEGREES, + }, + "FLOOR": { + "adjacent_to": "EXTERIOR", + "construction": "Unheated", + "tilt": 160 * DEGREES, + }, + "HEATED SLAB-ON-GRADE": { + "adjacent_to": "GROUND", + "construction": "Heated", + "tilt": 120 * DEGREES, + }, + "ROOF": { + "adjacent_to": "EXTERIOR", + "construction": "Unheated", + "tilt": 30 * DEGREES, + }, + "UNHEATED SLAB-ON-GRADE": { + "adjacent_to": "GROUND", + "construction": "Unheated", + "tilt": 180 * DEGREES, + }, +} + +constructions = [ + {"id": "sample_construction", "has_radiant_heating": True}, + {"id": "unheated_sample_construction", "has_radiant_heating": False}, +] + + +def test__get_opaque_surface_type(): + for key in TEST_SURFACES: + construction = next( + (c for c in CONSTRUCTIONS if c["id"] == TEST_SURFACES[key]["construction"]), + ) + has_radiant_heating = construction.get("has_radiant_heating", False) + assert ( + get_opaque_surface_type(TEST_SURFACES[key], has_radiant_heating) == key + ), f"Failed {key} test" diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict.py new file mode 100644 index 0000000000..aabcee57de --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict.py @@ -0,0 +1,467 @@ +from typing import List, Dict + +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import table_3_2_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_hvac_zone_list_w_area_dict import ( + get_hvac_zone_list_w_area_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + get_opaque_surface_type, +) +from rct229.schema.config import ureg +from rct229.utils.assertions import assert_, get_first_attr_, getattr_ +from rct229.utils.jsonpath_utils import find_all, find_exactly_required_fields, find_one +from rct229.utils.pint_utils import ZERO + +CAPACITY_THRESHOLD = 3.4 * ureg("Btu/(hr * ft2)") +CRAWLSPACE_HEIGHT_THRESHOLD = 7 * ureg("ft") + + +# Intended for export and internal use +class ZoneConditioningCategory: + """Enumeration class for zone conditioning categories""" + + CONDITIONED_MIXED: str = "CONDITIONED MIXED" + CONDITIONED_NON_RESIDENTIAL: str = "CONDITIONED NON-RESIDENTIAL" + CONDITIONED_RESIDENTIAL: str = "CONDITIONED RESIDENTIAL" + SEMI_HEATED: str = "SEMI-HEATED" + UNCONDITIONED: str = "UNCONDITIONED" + UNENCLOSED: str = "UNENCLOSED" + + +# Intended for internal use +GET_ZONE_CONDITIONING_CATEGORY_DICT__REQUIRED_FIELDS = { + "building": { + "building_segments[*].heating_ventilating_air_conditioning_systems[*].cooling_system": [ + "design_sensible_cool_capacity" + ], + "building_segments[*].heating_ventilating_air_conditioning_systems[*].heating_system": [ + "design_capacity" + ], + "building_segments[*].heating_ventilating_air_conditioning_systems[*].preheat_system": [ + "design_capacity" + ], + "building_segments[*].zones[*].spaces[*]": [ + "floor_area", + ], + "building_segments[*].zones[*].surfaces[*].subsurfaces[*]": [ + "u_factor", + ], + } +} + + +def get_zone_conditioning_category_rmd_dict( + climate_zone: str, rmd: dict +) -> dict[str, ZoneConditioningCategory]: + """ + Determines the zone conditioning category for every zone in an RMD. + + Parameters + ---------- + climate_zone: str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + rmd: dict + A dictionary representing a ruleset model description as defined by the ASHRAE229 schema + Returns + ------- + dict + A dictionary that maps zones to one of the conditioning categories: + CONDITIONED_MIXED, CONDITIONED_NON_RESIDENTIAL, CONDITIONED_RESIDENTIAL, + SEMI_HEATED, UNCONDITIONED, UNENCOLOSED + """ + zone_conditioning_category_rmd_dict = {} + constructions = rmd.get("constructions", []) + for building in find_all("$.buildings[*]", rmd): + zone_conditioning_category_dict = get_zone_conditioning_category_dict( + climate_zone, building, constructions + ) + zone_conditioning_category_rmd_dict.update(zone_conditioning_category_dict) + return zone_conditioning_category_rmd_dict + + +def get_zone_conditioning_category_dict( + climate_zone: str, building: dict, constructions: list +) -> dict[str, ZoneConditioningCategory]: + """Determines the zone conditioning category for every zone in a building + + Parameters + ---------- + climate_zone : str + One of the ClimateZoneOptions2019ASHRAE901 enumerated values + building : dict + A dictionary representing a building as defined by the ASHRAE229 schema + constructions : list + A list of construction dictionaries as defined by the ASHRAE229 schema + Returns + ------- + dict + A dictionary that maps zones to one of the conditioning categories: + CONDITIONED_MIXED, CONDITIONED_NON_RESIDENTIAL, CONDITIONED_RESIDENTIAL, + SEMI_HEATED, UNCONDITIONED, UNENCOLOSED + """ + if constructions is None: + constructions = [] + + find_exactly_required_fields( + GET_ZONE_CONDITIONING_CATEGORY_DICT__REQUIRED_FIELDS["building"], building + ) + + # This will be the return value + zone_conditioning_category_dict = {} + + # Create a mapping from an hvac system's id to the hvac system itself + hvac_systems_dict = { + hvac_system["id"]: hvac_system + for hvac_system in find_all( + "building_segments[*].heating_ventilating_air_conditioning_systems[*]", + building, + ) + } + + # Get a dict that maps from hvac system id to {zones_list, total_area} dict + hvac_zone_list_w_area_dict = get_hvac_zone_list_w_area_dict(building) + + # Produce a dict that maps each hvac system id to its cooling capacity + hvac_cool_capacity_dict = { + hvac_sys_id: ( + ( + hvac_systems_dict[hvac_sys_id]["cooling_system"][ + "design_sensible_cool_capacity" + ] + if assert_( + hvac_systems_dict.get(hvac_sys_id), + f"HVAC system {hvac_sys_id} is missing in the HeatingVentilatingAiConditioningSystems data group.", + ) + and find_one( + "$.cooling_system.design_sensible_cool_capacity", + hvac_systems_dict[hvac_sys_id], + ) + # Handle nonexistent cooling_system + else ZERO.POWER + ) + / hvac_values["total_area"] + ) + for (hvac_sys_id, hvac_values) in hvac_zone_list_w_area_dict.items() + } + + # Produce a dict that maps each hvac system id to its heating capacity + hvac_heat_capacity_dict = { + hvac_sys_id: ( + ( + hvac_systems_dict[hvac_sys_id]["heating_system"]["design_capacity"] + if assert_( + hvac_systems_dict.get(hvac_sys_id), + f"HVAC system {hvac_sys_id} is missing in the HeatingVentilatingAiConditioningSystems data group.", + ) + and find_one( + "$.heating_system.design_capacity", hvac_systems_dict[hvac_sys_id] + ) + # Handle missing heating_system + else ZERO.POWER + ) + + ( + hvac_systems_dict[hvac_sys_id]["preheat_system"]["design_capacity"] + if assert_( + hvac_systems_dict.get(hvac_sys_id), + f"HVAC system {hvac_sys_id} is missing in the HeatingVentilatingAiConditioningSystems data group.", + ) + and find_one( + "$.preheat_system.design_capacity", hvac_systems_dict[hvac_sys_id] + ) + # Handle missing preheat_system + else ZERO.POWER + ) + ) + / hvac_values["total_area"] + for (hvac_sys_id, hvac_values) in hvac_zone_list_w_area_dict.items() + } + + # Get heated space criterion + system_min_heating_output = table_3_2_lookup(climate_zone)[ + "system_min_heating_output" + ] + + # Produce a dict that maps each zone id to a {"sensible_cooling", "heating"} dict + # representing zone capacities + zone_capacity_dict = {} + for zone in find_all("$..zones[*]", building): + zone_id = zone["id"] + zone_area = sum(find_all("$..floor_area", zone), ZERO.AREA) + assert_(zone_area > ZERO.AREA, f"zone:{zone_id} has no floor area") + + zone_capacity_dict[zone_id] = zone_capacity = { + "sensible_cooling": ZERO.THERMAL_CAPACITY, + "heating": ZERO.THERMAL_CAPACITY, + } + # Note: Allow for there being no terminals field + for terminal in find_all("terminals[*]", zone): + # Note: there is only one hvac system even though the field name is plural + # This will change to singular in schema version 0.0.8 + hvac_sys_id = terminal.get( + "served_by_heating_ventilating_air_conditioning_system" + ) + + # Add cooling and heating capacites for the terminal + zone_capacity["sensible_cooling"] += hvac_cool_capacity_dict.get( + hvac_sys_id, ZERO.THERMAL_CAPACITY + ) + # Terminal heating_capacity will include baseboard capacity when hvac_sys_id is None + zone_capacity["heating"] += hvac_heat_capacity_dict.get( + hvac_sys_id, ZERO.THERMAL_CAPACITY + ) + (terminal.get("heating_capacity", ZERO.POWER) / zone_area) + + # Determine eligibility for directly conditioned (heated or cooled) and + # semi-heated zones + directly_conditioned_zone_ids = [] + semiheated_zone_ids = [] + for zone in find_all("$..zones[*]", building): + zone_id = zone["id"] + + if (zone_capacity_dict[zone_id]["sensible_cooling"] > CAPACITY_THRESHOLD) or ( + zone_capacity_dict[zone_id]["heating"] >= system_min_heating_output + ): + directly_conditioned_zone_ids.append(zone_id) + elif zone_capacity_dict[zone_id]["heating"] >= CAPACITY_THRESHOLD: + semiheated_zone_ids.append(zone_id) + + # Determine eligibility for indirectly conditioned zones + indirectly_conditioned_zone_ids = [] + for zone in find_all("$..zones[*]", building): + zone_id = zone["id"] + + if zone_id not in directly_conditioned_zone_ids: + # Check for any ATRIUM type spaces + # Note: any([]) is False + if any( + [ + lighting_space_type in ["ATRIUM_LOW_MEDIUM", "ATRIUM_HIGH"] + for lighting_space_type in find_all( + "spaces[*].lighting_space_type", zone + ) + ] + ): + indirectly_conditioned_zone_ids.append(zone_id) # zone_1_3 + # No ATRIUM spaces + else: + zone_directly_conditioned_ua = ZERO.UA + zone_other_ua = ZERO.UA + assert_( + find_all("surfaces[*]", zone), f"zone:{zone_id} has no surfaces" + ) + for surface in zone["surfaces"]: + subsurfaces = find_all("$.subsurfaces[*]", surface) + # Calculate the total area of all subsurfaces + subsurfaces_area = sum( + [ + subsurface.get("glazed_area", ZERO.AREA) + + subsurface.get("opaque_area", ZERO.AREA) + for subsurface in subsurfaces + ], + ZERO.AREA, # value used if there are no subsurfaces + ) + # Calculate the total UA for all subsurfaces + subsurfaces_ua = sum( + [ + subsurface["u_factor"] + * ( + # Can there be both glazed_area and opaque_area? Guessing not. Then should validate that at a high level. + subsurface.get("glazed_area", ZERO.AREA) + + subsurface.get("opaque_area", ZERO.AREA) + ) + for subsurface in subsurfaces + ], + ZERO.UA, # value used if there are no subsurfaces + ) + # Calculate the area of the surface that is not part of a subsurface + non_subsurfaces_area = ( + getattr_(surface, "surface", "area") - subsurfaces_area + ) + surface_construction = find_construction_by_surface( + surface, constructions + ) + # Calculate the UA for the surface + try: + surface_ua = ( + get_first_attr_( + surface_construction, + "construction", + ["u_factor", "f_factor", "c_factor"], + ) + * non_subsurfaces_area + + subsurfaces_ua + ) + except Exception as e: + surface_ua = ZERO.UA + + # Add the surface UA to one of the running totals for the zone + # according to whether the surface is adjacent to a directly conditioned + # zone or not + if getattr_(surface, "surface", "adjacent_to") == "INTERIOR": + if ( + len(find_all("$.spaces[*]", zone)) <= 1 + and getattr_(surface, "surface", "adjacent_zone") + in directly_conditioned_zone_ids + ): + # 1. check zone has only one space, if yes, use getattr_, if more than 1, can skip the ua calculation. + zone_directly_conditioned_ua += surface_ua # zone_1_4 + elif ( + surface.get("adjacent_zone") + in directly_conditioned_zone_ids + ): + zone_directly_conditioned_ua += surface_ua # zone_1_4 + else: + zone_other_ua += surface_ua + else: + zone_other_ua += surface_ua # zone_1_4 + + # The zone is indirectly conditioned if it is thermally more strongly + # connected to directly conditioned zones than to the exterior and other + # types of zones + if zone_directly_conditioned_ua > zone_other_ua: + indirectly_conditioned_zone_ids.append(zone_id) # zone_1_4 + + # Taking stock: + # To this point, we have determined which zones are directly conditioned, + # semi-heated, or indirectly conditioned. + # Next we determine whether the zone is residential, non-residential, or mixed. + for building_segment in find_all("building_segments[*]", building): + # Set building_segment_is_residential and building_segment_is_nonresidential flags + building_segment_is_residential = False + building_segment_is_nonresidential = False + + building_segment_lighting_building_area_type = building_segment.get( + "lighting_building_area_type" + ) + if building_segment_lighting_building_area_type in [ + "DORMITORY", + "HOTEL_MOTEL", + "MULTIFAMILY", + ]: + building_segment_is_residential = True # bldg_seg_1 + elif building_segment_lighting_building_area_type is not None: + building_segment_is_nonresidential = True # bldg_seg_2 + + for zone in find_all("zones[*]", building_segment): + zone_id = zone["id"] + if ( + zone_id in directly_conditioned_zone_ids + or zone_id in indirectly_conditioned_zone_ids + ): + # Determine zone_has_residential_spaces and zone_has_nonresidential_spaces flags + zone_has_residential_spaces = False + zone_has_nonresidential_spaces = False + for space in find_all("spaces[*]", zone): + space_lighting_space_type = space.get("lighting_space_type") + if space_lighting_space_type in [ + "DORMITORY_LIVING_QUARTERS", + "FIRE_STATION_SLEEPING_QUARTERS", + "GUEST_ROOM", + "DWELLING_UNIT", + "HEALTHCARE_FACILITY_NURSERY", + "HEALTHCARE_FACILITY_PATIENT_ROOM", + ]: + zone_has_residential_spaces = True # space_1_1_1 + elif space_lighting_space_type is not None: + zone_has_nonresidential_spaces = True # space_1_1_2 + elif ( + building_segment_is_residential + and space_lighting_space_type is None + ): + zone_has_residential_spaces = True # space_1_1_3 + elif building_segment_is_nonresidential: + zone_has_nonresidential_spaces = True # space_2_1_1 + else: + zone_has_nonresidential_spaces = True # space_3_1_1 + + if zone_has_residential_spaces and zone_has_nonresidential_spaces: + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.CONDITIONED_MIXED # zone_1_1 + elif zone_has_residential_spaces: + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.CONDITIONED_RESIDENTIAL # zone_1_4 + else: # using else is fine b/c `zone_has_residential_spaces` and `zone_has_nonresidential_spaces` can't be False at the same time + zone_conditioning_category_dict[ + zone_id + ] = ( + ZoneConditioningCategory.CONDITIONED_NON_RESIDENTIAL + ) # zone_1_2, zone_1_3 + + # To get here, the zone is neither directly nor indirectly conditioned + # Check for semi-heated + elif zone_id in semiheated_zone_ids: + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.SEMI_HEATED # zone_1_5 + # Check for interior parking spaces + elif any( + [ + lighting_space_type == "PARKING_AREA_INTERIOR" + for lighting_space_type in find_all( + "spaces[*].lighting_space_type", zone + ) + ] + ): + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.UNENCLOSED # zone_1_6 + # Check for crawlspace + else: + zone_volume = zone.get("volume", ZERO.VOLUME) + assert_( + zone_volume > ZERO.VOLUME, + f"zone:{zone_id} has no volume", + ) + zone_floor_area = sum(find_all("spaces[*].floor_area", zone), ZERO.AREA) + assert_( + zone_floor_area > ZERO.AREA, + f"zone:{zone_id} has no floor area", + ) + if zone_volume / zone_floor_area < CRAWLSPACE_HEIGHT_THRESHOLD and any( + [ + get_opaque_surface_type( + surface, + find_construction_by_surface(surface, constructions).get( + "has_radiant_heat" + ), + ) + in ["HEATED SLAB-ON-GRADE", "UNHEATED SLAB-ON-GRADE"] + and surface["adjacent_to"] == "GROUND" + for surface in zone["surfaces"] + ] + ): + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.UNENCLOSED # zone_1_7 + # Check for attic + elif any( + [ + get_opaque_surface_type(surface) == "ROOF" + and surface["adjacent_to"] == "EXTERIOR" + for surface in zone["surfaces"] + ] + ): + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.UNENCLOSED # zone_1_8 + # Anything else + else: + zone_conditioning_category_dict[ + zone_id + ] = ZoneConditioningCategory.UNCONDITIONED # zone_1_9 + + return zone_conditioning_category_dict + + +def find_construction_by_surface(surface: dict, constructions: List[Dict]) -> dict: + surface_construction_id = getattr_(surface, "Surface", "construction") + surface_construction = next( + ( + construction + for construction in constructions + if construction["id"] == surface_construction_id + ), + {}, # empty dict if not found, to allow constructions to be optional + ) + return surface_construction diff --git a/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict_test.py b/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict_test.py new file mode 100644 index 0000000000..cedc7bcc2c --- /dev/null +++ b/rct229/rulesets/ashrae9012022/ruleset_functions/get_zone_conditioning_category_dict_test.py @@ -0,0 +1,767 @@ +from rct229.rulesets.ashrae9012022.data_fns.table_3_2_fns import table_3_2_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + CAPACITY_THRESHOLD as CAPACITY_THRESHOLD_QUANTITY, + CRAWLSPACE_HEIGHT_THRESHOLD as CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY, + get_zone_conditioning_category_dict, +) +from rct229.schema.config import ureg +from rct229.schema.schema_utils import quantify_rmd +from rct229.schema.validate import schema_validate_rpd +from rct229.utils.jsonpath_utils import find_all + +CLIMATE_ZONE = "CZ0A" +POWER_DELTA = 1 +SYSTEM_MIN_HEATING_OUTPUT_QUANTITY = table_3_2_lookup(CLIMATE_ZONE)[ + "system_min_heating_output" +] + +# Convert pint quantities to match schema units +SYSTEM_MIN_HEATING_OUTPUT = ( + (SYSTEM_MIN_HEATING_OUTPUT_QUANTITY * 100 * ureg("m2")).to("W").magnitude +) +POWER_THRESHOLD_100 = (CAPACITY_THRESHOLD_QUANTITY * 100 * ureg("m2")).to("W").magnitude +CRAWLSPACE_HEIGHT_THRESHOLD = CRAWLSPACE_HEIGHT_THRESHOLD_QUANTITY.to("m").magnitude + +# This single RMD is intended to exercise all the get_zone_conditioning_category_dict() code +TEST_RMD = { + "id": "test_rmd", + "buildings": [ + { + "id": "bldg_1", + "building_open_schedule": "bldg_open_sched_1", + "building_segments": [ + # lighting_building_area_type is one of the residential types + # => building_segment_is_residential + { + "id": "bldg_seg_1", + "lighting_building_area_type": "MULTIFAMILY", + "heating_ventilating_air_conditioning_systems": [ + # Use for zone_1_1, directly conditioned zone + { + "id": "hvac_1_1", + "cooling_system": { + "id": "csys_1_1_1", + "design_sensible_cool_capacity": 2 * POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + # Used for directly conditioned zone + { + "id": "hvac_1_2", + "heating_system": { + "id": "hsys_1_2_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + + POWER_DELTA, + }, + }, + # Used for semi-heated zone + { + "id": "hvac_1_3", + "heating_system": { + "id": "hsys_1_3_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + # Used for semi-heated zone + { + "id": "hvac_1_4", + "heating_system": { + "id": "hsys_1_3_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + # Used for semi-heated zone + { + "id": "hvac_1_5", + "heating_system": { + "id": "hsys_1_5_1", + "design_capacity": POWER_THRESHOLD_100 + POWER_DELTA, + }, + }, + # Used for neither directly nor semi-heated zone + { + "id": "hvac_1_6", + "heating_system": { + "id": "hsys_1_5_1", + "design_capacity": min( + POWER_THRESHOLD_100, SYSTEM_MIN_HEATING_OUTPUT + ) + - POWER_DELTA, + }, + }, + # Used for neither directly nor semi-heated zone + { + "id": "hvac_1_6", + "heating_system": { + "id": "hsys_1_5_1", + "design_capacity": min( + POWER_THRESHOLD_100, SYSTEM_MIN_HEATING_OUTPUT + ) + - POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_1_1 => directly_conditioned_zone + # zone has a space with a residential lighting_space_type + # => zone_has_residential_spaces + # zone has a space with a nonresidential lighting_space_type + # => zone_has_nonresidential_spaces + # zone_has_nonresidential_spaces AND zone_has_nonresidential_spaces + # => zone_conditioning_category is "CONDITIONED MIXED" + { + "id": "zone_1_1", + "spaces": [ + { + # Residential + "id": "space_1_1_1", + "floor_area": 100, # m2 + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "occupant_multiplier_schedule": "om_sched_1", + }, + { + # Non-residential + "id": "space_1_1_2", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_1", + } + ], + }, + # hvac_1_2 => directly_conditioned_zone + # zone has no residential spaces but a space has a lighting_space_type + # => zone_has_nonresidential_spaces + # Not zone_has_residential_spaces and zone_has_nonesidential_spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_1_2", + "spaces": [ + { + # Non-residential + "id": "space_1_2_1", + "floor_area": 100, # m2 + "lighting_space_type": "COMPUTER_ROOM", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_2_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_2", + } + ], + }, + # hvac_1_3 => semiheated_zone + # zone has Atrium space => indirectly_conditioned_zone + # zone has no space with a residential lighting_space_type + # AND a space does have a lighting_space_type specified + # => zone_has_nonresidential_spaces + # indirectly_conditioned_zone + # AND _has_nonresidential_spaces + # AND NOT zone_has_residential_spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_1_3", + "spaces": [ + { + "id": "space_1_3_1", + "floor_area": 100, # m2 + "lighting_space_type": "ATRIUM_HIGH", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_3_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_3", + } + ], + }, + # hvac_1_4 => semiheated_zone + # More strongly thermally connected to directly conditioned zones + # => indirectly_conditioned_zone + # building_segment_is_residential + # zone has no spaces with specified lighting_space_type + # AND building_segment_is_residential + # => zone_has_residential_spaces + # NOT zone_has_nonresidential_spaces + # AND zone_has_residential_spaces + # => zone_conditioning_category is "CONDITIONED RESIDENTIAL" + { + "id": "zone_1_4", + "spaces": [ + { + "id": "space_1_4_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_1_4_1", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_3", # semi-heated + "area": 10, # m2 + "construction": "const_1_4_1", + "subsurfaces": [ + { + "id": "subsurface_1_4_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_4_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_4_2", + "subsurfaces": [ + { + "id": "subsurface_1_4_2_1", + "glazed_area": 10, # m2 + "opaque_area": 0, + "u_factor": 3, # W/(m2 * K) + } + ], + }, + # Omits `u_factor`, `f_factor`, `c_factor` to test if `except Exception as e:` works as expected (for branch coverage) + { + "id": "surface_1_4_3", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_4_3", + }, + ], + "terminals": [ + { + "id": "terminal_1_4_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_4", + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + }, + # hvac_1_5 => semiheated_zone + # NOT zone_directly_conditioned_ua > zone_other_ua + # => NOT indirectly_conditioned_zone + # NOT directly_conditioned_zone + # AND NOT indirectly_conditioned_zone + # AND semiheated_zone + # => zone_conditioning_category is "SEMI-HEATED" + { + "id": "zone_1_5", + "spaces": [ + { + "id": "space_1_5_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_5_1", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_5_1", + "subsurfaces": [ + { + "id": "subsurface_1_5_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + # Adds to zone_other_ua + { + "id": "surface_1_5_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_4", # semi-heated + "area": 10, # m2 + "construction": "const_1_5_2", + "subsurfaces": [ + { + "id": "subsurface_1_5_2_1", + "glazed_area": 10, # m2 + "opaque_area": 0, + "u_factor": 3, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_5_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_5", + } + ], + }, + # hvac_1_6 => neither directly nor semi-heated zone + # NOT directly_conditioned_ua > other_ua + # => NOT indirectly_conditioned_zone + # building_segment_is_residential + # zone has PARKING_AREA_INTERIOR space + # => zone_conditioning_category is UNENCLOSED + { + "id": "zone_1_6", + "spaces": [ + # Residential + { + "id": "space_1_6_1", + "floor_area": 100, # m2 + "lighting_space_type": "PARKING_AREA_INTERIOR", + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_6_1", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_4", # semi-heated + "area": 10, # m2 + "construction": "const_1_6_1", + "subsurfaces": [ + { + "id": "subsurface_1_6_1_1", + "glazed_area": 10, + "opaque_area": 0, # m2 + "u_factor": 3, # W/(m2 * K) + } + ], + }, + # Adds to zone_other_ua + { + "id": "surface_1_6_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_6_2", + "subsurfaces": [ + { + "id": "subsurface_1_6_2_1", + "glazed_area": 0, # m2 + "opaque_area": 10, + "u_factor": 0.5, # W/(m2 * K) + } + ], + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_1_6_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_1_6", + } + ], + }, + # No terminals => neither directly nor semi-heated zone + # NOT directly_conditioned_ua > other_ua + # => NOT indirectly_conditioned_zone + # zone volume / zone area < CRAWLSPACE_HEIGHT_THRESHOLD + # AND a FLOOR is adjacent_to GROUND + # => zone_conditioning_category is UNENCLOSED + { + "id": "zone_1_7", + "spaces": [ + # Residential + { + "id": "space_1_7_1", + "floor_area": 80, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_7_1", + "adjacent_to": "GROUND", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_7_1", + "subsurfaces": [ + { + "id": "subsurface_1_7_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 0.1, # W/(m2 * K) + } + ], + "tilt": 180, # FLOOR + }, + # Adds to zone_other_ua + { + "id": "surface_1_7_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_4", # semi-heated + "area": 10, # m2 + "construction": "const_1_7_2", + "subsurfaces": [ + { + "id": "subsurface_1_7_2_1", + "glazed_area": 10, # m2 + "opaque_area": 0, + "u_factor": 3, # W/(m2 * K) + } + ], + "tilt": 90, # WALL + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "volume": 20, # m3 + }, + # No terminals => neither directly nor semi-heated zone + # NOT directly_conditioned_ua > other_ua + # => NOT indirectly_conditioned_zone + # zone has EXTERIOR CEILING + # => zone_conditioning_category is UNENCLOSED + { + "id": "zone_1_8", + "spaces": [ + # Residential + { + "id": "space_1_8_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_8_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_4", # semi-heated + "area": 10, # m2 + "construction": "const_1_8_1", + "subsurfaces": [ + { + "id": "subsurface_1_8_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 3, # W/(m2 * K) + } + ], + "tilt": 0, # ROOF + }, + # Adds to zone_other_ua + { + "id": "surface_1_8_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_8_2", + "subsurfaces": [ + { + "id": "subsurface_1_8_2_1", + "glazed_area": 10, # m2 + "opaque_area": 0, + "u_factor": 0.5, # W/(m2 * K) + } + ], + "tilt": 90, # WALL + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "volume": 1000, # m3 + }, + # No terminals => neither directly nor semi-heated zone + # NOT directly_conditioned_ua > other_ua + # => NOT indirectly_conditioned_zone + # zone has no interior parking, crawlspace, or attic + # => zone_conditioning_category is "UNCONDITIONED" + { + "id": "zone_1_9", + "spaces": [ + # Residential + { + "id": "space_1_9_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_directly_conditioned_ua + { + "id": "surface_1_9_1", + "adjacent_to": "EXTERIOR", + "adjacent_zone": "zone_1_4", # semi-heated + "area": 10, # m2 + "construction": "const_1_9_1", + "subsurfaces": [ + { + "id": "subsurface_1_9_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 3, # W/(m2 * K) + } + ], + "tilt": 90, # WALL + }, + # Adds to zone_other_ua + { + "id": "surface_1_9_2", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_1", # directly conditioned + "area": 10, # m2 + "construction": "const_1_9_2", + "subsurfaces": [ + { + "id": "subsurface_1_9_2_1", + "glazed_area": 10, # m2 + "opaque_area": 0, + "u_factor": 0.5, # W/(m2 * K) + } + ], + "tilt": 90, # WALL + }, + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "volume": 1000, # m3 + }, + ], + }, + # lighting_building_area_type is specified but not one of the + # residential types => building_segment_is_nonresidential + { + "id": "bldg_seg_2", + "lighting_building_area_type": "FIRE_STATION", + "heating_ventilating_air_conditioning_systems": [ + # Used for directly conditioned zone + { + "id": "hvac_2_1", + "cooling_system": { + "id": "csys_2_1_1", + "design_sensible_cool_capacity": POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_2_1 => directly_conditioned_zone + # zone only has non-residential spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_2_1", + "spaces": [ + { + "id": "space_2_1_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_2_1_1", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_2", # semi-heated + "area": 10, # m2 + "subsurfaces": [ + { + "id": "subsurface_2_1_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_2_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_2_1", + } + ], + }, + ], + }, + # lighting_building_area_type is not specified + # => building_segment is neither residential nor nonresidential + { + "id": "bldg_seg_3", + "heating_ventilating_air_conditioning_systems": [ + # User for directly conditioned zones + { + "id": "hvac_3_1", + "heating_system": { + "id": "hsys_3_1_1", + "design_capacity": SYSTEM_MIN_HEATING_OUTPUT + - POWER_DELTA, + }, + "cooling_system": { + "id": "csys_3_1_1", + "design_sensible_cool_capacity": POWER_THRESHOLD_100 + + POWER_DELTA, + }, + }, + ], + "zones": [ + # hvac_3_1 => directly_conditioned_zone + # zone only has non-residential spaces + # => zone_conditioning_category is "CONDITIONED NON-RESIDENTIAL" + { + "id": "zone_3_1", + "spaces": [ + { + "id": "space_3_1_1", + "floor_area": 100, # m2 + "occupant_multiplier_schedule": "om_sched_1", + } + ], + "surfaces": [ + # Adds to zone_other_ua + { + "id": "surface_3_1_1", + "adjacent_to": "INTERIOR", + "adjacent_zone": "zone_1_2", # semi-heated + "area": 10, # m2 + "subsurfaces": [ + { + "id": "subsurface_3_1_1_1", + "glazed_area": 0, + "opaque_area": 10, # m2 + "u_factor": 0.5, # W/(m2 * K) + } + ], + "tilt": 90, # wall + } + ], + "thermostat_cooling_setpoint_schedule": "tcs_sched_1", + "thermostat_heating_setpoint_schedule": "ths_sched_1", + "terminals": [ + { + "id": "terminal_3_1_1", + "served_by_heating_ventilating_air_conditioning_system": "hvac_3_1", + } + ], + }, + ], + }, + ], + } + ], + "constructions": [ + { + "id": "const_1_4_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_4_2", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_4_3", + }, + { + "id": "const_1_5_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_5_2", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_6_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_6_2", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_7_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_7_2", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_8_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_8_2", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_9_1", + "u_factor": 0.1, # W/(m2 * K) + }, + { + "id": "const_1_9_2", + "u_factor": 0.1, # W/(m2 * K) + }, + ], + "type": "BASELINE_0", +} + +TEST_RPD_12 = { + "id": "229_01", + "ruleset_model_descriptions": [TEST_RMD], + "metadata": { + "schema_author": "ASHRAE SPC 229 Schema Working Group", + "schema_name": "Ruleset Evaluation Schema", + "schema_version": "0.1.3", + "author": "author_example", + "description": "description_example", + "time_of_creation": "2024-02-12T09:00Z", + }, +} +TEST_RMD = quantify_rmd(TEST_RPD_12)["ruleset_model_descriptions"][0] +TEST_BUILDING = TEST_RMD["buildings"][0] + + +def test__TEST_RPD__is_valid(): + schema_validation_result = schema_validate_rpd(TEST_RPD_12) + assert schema_validation_result[ + "passed" + ], f"Schema error: {schema_validation_result['error']}" + + +def test__get_zone_conditioning_category_dict(): + assert get_zone_conditioning_category_dict( + CLIMATE_ZONE, + TEST_BUILDING, + constructions=find_all("$.constructions[*]", TEST_RMD), + ) == { + "zone_1_1": "CONDITIONED MIXED", + "zone_1_2": "CONDITIONED NON-RESIDENTIAL", + "zone_1_3": "CONDITIONED NON-RESIDENTIAL", + "zone_1_4": "CONDITIONED RESIDENTIAL", + "zone_1_5": "SEMI-HEATED", + "zone_1_6": "UNENCLOSED", + "zone_1_7": "UNENCLOSED", + "zone_1_8": "UNENCLOSED", + "zone_1_9": "UNCONDITIONED", + "zone_2_1": "CONDITIONED NON-RESIDENTIAL", + "zone_3_1": "CONDITIONED NON-RESIDENTIAL", + } diff --git a/rct229/rulesets/ashrae9012022/section12/__init__.py b/rct229/rulesets/ashrae9012022/section12/__init__.py new file mode 100644 index 0000000000..df71929c80 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section12/__init__.py @@ -0,0 +1,16 @@ +# Add all available rule modules in __all__ +import importlib + +__all__ = [ + "section12rule5", +] + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/section12/section12rule5.py b/rct229/rulesets/ashrae9012022/section12/section12rule5.py new file mode 100644 index 0000000000..34bb173865 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section12/section12rule5.py @@ -0,0 +1,236 @@ +from pydash import flatten +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012019 import PROPOSED +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.schedule_utils import get_schedule_multiplier_hourly_value_or_default + +END_USE = SchemaEnums.schema_enums["EndUseOptions"] + +ACCEPTABLE_RESULT_TYPE = [ + END_USE.MISC_EQUIPMENT, + END_USE.INDUSTRIAL_PROCESS, + END_USE.OFFICE_EQUIPMENT, + END_USE.COMPUTERS_SERVERS, + END_USE.COMMERCIAL_COOKING, +] + + +class PRM9012022Rule23z21(RuleDefinitionListIndexedBase): + """Rule 5 of ASHRAE 90.1-2022 Appendix G Section 12 (Receptacle)""" + + def __init__(self): + super(PRM9012022Rule23z21, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule23z21.RMDRule(), + index_rmd=PROPOSED, + id="12-5", + description="Receptacle and process loads shall always be included in simulations of the building. " + "These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + ruleset_section_title="Receptacle", + standard_section="Table G3.1-12 Proposed Building Performance column", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0]", + ) + + class RMDRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule23z21.RMDRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule23z21.RMDRule.MiscellaneousEquipmentRule(), + index_rmd=PROPOSED, + list_path="buildings[*].building_segments[*].zones[*].spaces[*].miscellaneous_equipment[*]", + ) + + def create_data(self, context, data): + rmd_b = context.BASELINE_0 + rmd_p = context.PROPOSED + + schedule_eflh_b = sum( + flatten( + [ + get_schedule_multiplier_hourly_value_or_default( + rmd_b, + getattr_( + misc_equip_b, + "miscellaneous_equipment", + "multiplier_schedule", + ), + ) + for misc_equip_b in find_all( + "$.buildings[*].building_segments[*].zones[*].spaces[*].miscellaneous_equipment[*]", + rmd_b, + ) + ] + ), + 0, + ) + + schedule_eflh_p = sum( + flatten( + [ + get_schedule_multiplier_hourly_value_or_default( + rmd_p, + getattr_( + misc_equip_p, + "miscellaneous_equipment", + "multiplier_schedule", + ), + ) + for misc_equip_p in find_all( + "$.buildings[*].building_segments[*].zones[*].spaces[*].miscellaneous_equipment[*]", + rmd_p, + ) + ] + ), + 0, + ) + + has_annual_energy_use_b = any( + [ + getattr_(annual_end_use_result, "annual_end_use_results", "type") + in ACCEPTABLE_RESULT_TYPE + and getattr_( + annual_end_use_result, + "annual_end_use_results", + "annual_site_energy_use", + ) + > 0 * ureg("J") + for annual_end_use_result in find_all( + "$.model_output.annual_end_use_results[*]", + rmd_b, + ) + ] + ) + + has_annual_energy_use_p = any( + [ + getattr_(annual_end_use_result, "annual_end_use_results", "type") + in ACCEPTABLE_RESULT_TYPE + and getattr_( + annual_end_use_result, + "annual_end_use_results", + "annual_site_energy_use", + ) + > 0 * ureg("J") + for annual_end_use_result in find_all( + "$.model_output.annual_end_use_results[*]", + rmd_p, + ) + ] + ) + + return { + "schedule_eflh_b": schedule_eflh_b, + "schedule_eflh_p": schedule_eflh_p, + "has_annual_energy_use_b": has_annual_energy_use_b, + "has_annual_energy_use_p": has_annual_energy_use_p, + } + + class MiscellaneousEquipmentRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule23z21.RMDRule.MiscellaneousEquipmentRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={"$": ["power"]}, + ) + + def get_calc_vals(self, context, data=None): + misc_equip_b = context.BASELINE_0 + misc_equip_p = context.PROPOSED + + has_annual_energy_use_b = data["has_annual_energy_use_b"] + schedule_eflh_b = data["schedule_eflh_b"] + + has_annual_energy_use_p = data["has_annual_energy_use_p"] + schedule_eflh_p = data["schedule_eflh_p"] + + loads_included_b = ( + misc_equip_b["power"] > 0 * ureg("W") + and ( + misc_equip_b.get("sensible_fraction", 0) > 0 + or misc_equip_b.get("latent_fraction", 0) > 0 + ) + and schedule_eflh_b > 0 + ) + + loads_included_p = ( + misc_equip_p["power"] > 0 * ureg("W") + and ( + misc_equip_p.get("sensible_fraction", 0) > 0 + or misc_equip_p.get("latent_fraction", 0) > 0 + ) + and schedule_eflh_p > 0 + ) + + return { + "has_annual_energy_use_b": has_annual_energy_use_b, + "has_annual_energy_use_p": has_annual_energy_use_p, + "loads_included_b": loads_included_b, + "loads_included_p": loads_included_p, + } + + def rule_check(self, context, calc_vals=None, data=None): + loads_included_b = calc_vals["loads_included_b"] + loads_included_p = calc_vals["loads_included_p"] + has_annual_energy_use_b = calc_vals["has_annual_energy_use_b"] + has_annual_energy_use_p = calc_vals["has_annual_energy_use_p"] + + return ( + loads_included_b + and loads_included_p + and has_annual_energy_use_b + and has_annual_energy_use_p + ) + + def get_fail_msg(self, context, calc_vals=None, data=None): + misc_equip_b = context.BASELINE_0 + misc_equip_p = context.PROPOSED + loads_included_b = calc_vals["loads_included_b"] + loads_included_p = calc_vals["loads_included_p"] + has_annual_energy_use_b = calc_vals["has_annual_energy_use_b"] + has_annual_energy_use_p = calc_vals["has_annual_energy_use_p"] + schedule_eflh_b = data["schedule_eflh_b"] + schedule_eflh_p = data["schedule_eflh_p"] + + FAIL_MSG = " | ".join( + filter( + None, + [ + ( + f"Proposed: No misc. loads [power={misc_equip_p['power']}, sens={misc_equip_p.get('sensible_fraction')}, lat={misc_equip_p.get('latent_fraction')}, EFLH={schedule_eflh_p}]" + if not loads_included_p + else "" + ), + ( + "Proposed: No annual end use energy." + if not has_annual_energy_use_p + else "" + ), + ( + f"Baseline: No misc. loads [power={misc_equip_b['power']}, sens={misc_equip_b.get('sensible_fraction')}, lat={misc_equip_b.get('latent_fraction')}, EFLH={schedule_eflh_b}]" + if not loads_included_b + else "" + ), + ( + "Baseline: No annual end use energy." + if not has_annual_energy_use_b + else "" + ), + ], + ) + ) + + return FAIL_MSG diff --git a/rct229/rulesets/ashrae9012022/section21/__init__.py b/rct229/rulesets/ashrae9012022/section21/__init__.py new file mode 100644 index 0000000000..783d8cad17 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section21/__init__.py @@ -0,0 +1,18 @@ +# Add all available rule modules in __all__ +import importlib + +__all__ = [ + "section21rule19", +] + +SHORT_NAME = "HVAC-HW" + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/section21/section21rule19.py b/rct229/rulesets/ashrae9012022/section21/section21rule19.py new file mode 100644 index 0000000000..04eaf01674 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section21/section21rule19.py @@ -0,0 +1,89 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012019 import BASELINE_0 +from rct229.rulesets.ashrae9012019.ruleset_functions.baseline_systems.baseline_system_util import ( + HVAC_SYS, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_baseline_system_types import ( + get_baseline_system_types, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ + +APPLICABLE_SYS_TYPES = [ + HVAC_SYS.SYS_1, + HVAC_SYS.SYS_1A, + HVAC_SYS.SYS_5, + HVAC_SYS.SYS_7, + HVAC_SYS.SYS_7A, + HVAC_SYS.SYS_11_2, + HVAC_SYS.SYS_11_2A, + HVAC_SYS.SYS_12, + HVAC_SYS.SYS_12A, +] + +FLUID_LOOP = SchemaEnums.schema_enums["FluidLoopOptions"] +FLUID_LOOP_OPERATION = SchemaEnums.schema_enums["FluidLoopOperationOptions"] + + +class PRM9012022Rule93e12(RuleDefinitionListIndexedBase): + """Rule 19 of ASHRAE 90.1-2022 Appendix G Section 21 (Hot water loop)""" + + def __init__(self): + super(PRM9012022Rule93e12, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule93e12.HeatingFluidLoopRule(), + index_rmd=BASELINE_0, + id="21-19", + description="Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop.", + ruleset_section_title="HVAC - Water Side", + standard_section="Section G3.2.3.5", + is_primary_rule=True, + rmd_context="ruleset_model_descriptions/0", + list_path="$.fluid_loops[*]", + ) + + def is_applicable(self, context, data=None): + rmd_b = context.BASELINE_0 + baseline_system_types_dict = get_baseline_system_types(rmd_b) + # create a list containing all HVAC systems that are modeled in the rmd_b + available_type_list = [ + hvac_type + for hvac_type in baseline_system_types_dict + if len(baseline_system_types_dict[hvac_type]) > 0 + ] + return any( + [ + available_type in APPLICABLE_SYS_TYPES + for available_type in available_type_list + ] + ) + + def list_filter(self, context_item, data): + fluid_loop_b = context_item.BASELINE_0 + + return getattr_(fluid_loop_b, "FluidLoop", "type") == FLUID_LOOP.HEATING + + class HeatingFluidLoopRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule93e12.HeatingFluidLoopRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + hw_looop_b = context.BASELINE_0 + hw_design_control_operation_b = getattr_( + hw_looop_b, "fluid_loops", "heating_design_and_control", "operation" + ) + + return {"hw_design_control_operation_b": hw_design_control_operation_b} + + def rule_check(self, context, calc_vals=None, data=None): + hw_design_control_operation_b = calc_vals["hw_design_control_operation_b"] + + return hw_design_control_operation_b == FLUID_LOOP_OPERATION.INTERMITTENT diff --git a/rct229/rulesets/ashrae9012022/section22/__init__.py b/rct229/rulesets/ashrae9012022/section22/__init__.py new file mode 100644 index 0000000000..561ac2e7bc --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section22/__init__.py @@ -0,0 +1,20 @@ +# Add all available rule modules in __all__ +import importlib + +__all__ = [ + "section22rule42", + "section22rule43", + "section22rule44", +] + +SHORT_NAME = "HVAC-CHW" + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/section22/section22rule42.py b/rct229/rulesets/ashrae9012022/section22/section22rule42.py new file mode 100644 index 0000000000..ce1c1548b0 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section22/section22rule42.py @@ -0,0 +1,131 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012019 import BASELINE_0 +from rct229.rulesets.ashrae9012019.ruleset_functions.baseline_systems.baseline_system_util import ( + HVAC_SYS, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_baseline_system_types import ( + get_baseline_system_types, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_primary_secondary_loops_dict import ( + get_primary_secondary_loops_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.does_chiller_performance_match_curve import ( + J4_CURVE, + J6_CURVE, + does_chiller_performance_match_curve, +) +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ + +ENERGY_SOURCE = SchemaEnums.schema_enums["EnergySourceOptions"] +CHILLER_COMPRESSOR = SchemaEnums.schema_enums["ChillerCompressorOptions"] + +APPLICABLE_SYS_TYPES = [ + HVAC_SYS.SYS_7, + HVAC_SYS.SYS_8, + HVAC_SYS.SYS_11_1, + HVAC_SYS.SYS_11_2, + HVAC_SYS.SYS_12, + HVAC_SYS.SYS_13, + HVAC_SYS.SYS_7B, + HVAC_SYS.SYS_8B, + HVAC_SYS.SYS_11_1B, + HVAC_SYS.SYS_12B, +] + + +class PRM9012022Rule34d03(RuleDefinitionListIndexedBase): + """Rule 42 of ASHRAE 90.1-2022 Appendix G Section 22 (Chilled water loop)""" + + def __init__(self): + super(PRM9012022Rule34d03, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule34d03.ChillerRule(), + index_rmd=BASELINE_0, + id="22-42", + description="The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design.", + ruleset_section_title="HVAC - Chiller", + standard_section="Section G3.2.2.1 Baseline", + is_primary_rule=True, + rmd_context="ruleset_model_descriptions/0", + list_path="$.chillers[*]", + ) + + def is_applicable(self, context, data=None): + rmd_b = context.BASELINE_0 + baseline_system_types_dict = get_baseline_system_types(rmd_b) + + # create a list containing all HVAC systems that are modeled in the rmd_b + available_type_list = [ + hvac_type + for hvac_type in baseline_system_types_dict + if len(baseline_system_types_dict[hvac_type]) > 0 + ] + + return any( + [ + available_type in APPLICABLE_SYS_TYPES + for available_type in available_type_list + ] + ) + + def create_data(self, context, data): + rmd_b = context.BASELINE_0 + primary_secondary_loop_dict_b = get_primary_secondary_loops_dict(rmd_b) + + return { + "primary_secondary_loop_dict_b": primary_secondary_loop_dict_b, + } + + class ChillerRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule34d03.ChillerRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def is_applicable(self, context, data=None): + chiller_b = context.BASELINE_0 + primary_secondary_loop_dict_b = data["primary_secondary_loop_dict_b"] + + return chiller_b["cooling_loop"] in primary_secondary_loop_dict_b + + def get_calc_vals(self, context, data=None): + chiller_b = context.BASELINE_0 + + rated_capacity_b = getattr_(chiller_b, "chillers", "rated_capacity") + compressor_type_b = getattr_(chiller_b, "chillers", "compressor_type") + + # When 'curve_set_b' is None, there is a ValueError from the `does_chiller_performance_match_curve` function + if compressor_type_b == CHILLER_COMPRESSOR.CENTRIFUGAL: + if rated_capacity_b < 150 * ureg("ton"): + curve_set_b = J6_CURVE.Z + elif 150 * ureg("ton") <= rated_capacity_b < 300 * ureg("ton"): + curve_set_b = J6_CURVE.AA + else: + curve_set_b = J6_CURVE.AB + elif compressor_type_b in ( + CHILLER_COMPRESSOR.POSITIVE_DISPLACEMENT, + CHILLER_COMPRESSOR.SCROLL, + CHILLER_COMPRESSOR.SCREW, + ): + if rated_capacity_b < 150 * ureg("ton"): + curve_set_b = J4_CURVE.V + elif rated_capacity_b >= 300 * ureg("ton"): + curve_set_b = J6_CURVE.Y + else: + curve_set_b = J6_CURVE.X + + return {"curve_set_b": curve_set_b} + + def rule_check(self, context, calc_vals=None, data=None): + chiller_b = context.BASELINE_0 + curve_set_b = calc_vals["curve_set_b"] + + return does_chiller_performance_match_curve(chiller_b, curve_set_b) diff --git a/rct229/rulesets/ashrae9012022/section22/section22rule43.py b/rct229/rulesets/ashrae9012022/section22/section22rule43.py new file mode 100644 index 0000000000..fc89a441fb --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section22/section22rule43.py @@ -0,0 +1,178 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012019.ruleset_functions.baseline_systems.baseline_system_util import ( + HVAC_SYS, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_baseline_system_types import ( + get_baseline_system_types, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_primary_secondary_loops_dict import ( + get_primary_secondary_loops_dict, +) +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.does_chiller_performance_match_curve import ( + J4_CURVE, + J6_CURVE, + does_chiller_performance_match_curve, +) +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all + +APPLICABLE_SYS_TYPES = [ + HVAC_SYS.SYS_7, + HVAC_SYS.SYS_8, + HVAC_SYS.SYS_11_1, + HVAC_SYS.SYS_11_2, + HVAC_SYS.SYS_12, + HVAC_SYS.SYS_13, + HVAC_SYS.SYS_7B, + HVAC_SYS.SYS_8B, + HVAC_SYS.SYS_11_1B, + HVAC_SYS.SYS_12B, +] + +CHILLER_COMPRESSOR = SchemaEnums.schema_enums["ChillerCompressorOptions"] + + +REQ_MIN_LOAD_RATIO = 0.25 +REQ_MIN_UNLOAD_RATIO = 0.25 + + +class PRM9012022Rule93e20(RuleDefinitionListIndexedBase): + """Rule 43 of ASHRAE 90.1-2022 Appendix G Section 22 (Chilled Water Loop)""" + + def __init__(self): + super(PRM9012022Rule93e20, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule93e20.ChillerRule(), + index_rmd=BASELINE_0, + id="22-43", + description="hen using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) " + "and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25.", + ruleset_section_title="HVAC - Chiller", + standard_section="Section G3.2.2.1 Equipment Efficiencies", + is_primary_rule=True, + list_path="$.chillers[*]", + rmd_context="ruleset_model_descriptions/0", + ) + + def is_applicable(self, context, data=None): + rmd_b = context.BASELINE_0 + baseline_system_types_dict = get_baseline_system_types(rmd_b) + + # create a list containing all HVAC systems that are modeled in the rmd_b + available_type_list = [ + hvac_type + for hvac_type in baseline_system_types_dict + if len(baseline_system_types_dict[hvac_type]) > 0 + ] + + return any( + [ + available_type in APPLICABLE_SYS_TYPES + for available_type in available_type_list + ] + ) + + def manual_check_required(self, context, calc_vals=None, data=None): + rmd_b = context.BASELINE_0 + + return any( + getattr_(chiller_b, "chillers", "compressor_type") + not in { + CHILLER_COMPRESSOR.CENTRIFUGAL, + CHILLER_COMPRESSOR.RECIPROCATING, + CHILLER_COMPRESSOR.SCROLL, + CHILLER_COMPRESSOR.SCREW, + } + for chiller_b in find_all("$.chillers[*]", rmd_b) + ) + + def create_data(self, context, data): + rmd_b = context.BASELINE_0 + primary_secondary_loop_dict_b = get_primary_secondary_loops_dict(rmd_b) + + chiller_curve_set_dict_b = {} + for chiller_b in find_all("$.chillers[*]", rmd_b): + chiller_id_b = chiller_b["id"] + rated_capacity_b = getattr_(chiller_b, "chillers", "rated_capacity") + compressor_type_b = getattr_(chiller_b, "chillers", "compressor_type") + + if compressor_type_b == CHILLER_COMPRESSOR.CENTRIFUGAL: + if rated_capacity_b < 150 * ureg("ton"): + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.Z + elif 150 * ureg("ton") <= rated_capacity_b < 300 * ureg("ton"): + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.AA + else: + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.AB + elif compressor_type_b in ( + CHILLER_COMPRESSOR.POSITIVE_DISPLACEMENT, + CHILLER_COMPRESSOR.SCROLL, + CHILLER_COMPRESSOR.SCREW, + ): + if rated_capacity_b < 150 * ureg("ton"): + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.V + elif rated_capacity_b >= 300 * ureg("ton"): + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.Y + else: + chiller_curve_set_dict_b[chiller_id_b] = J6_CURVE.X + else: + chiller_curve_set_dict_b[chiller_id_b] = None + + return { + "primary_secondary_loop_dict_b": primary_secondary_loop_dict_b, + "chiller_curve_set_dict_b": chiller_curve_set_dict_b, + } + + class ChillerRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule93e20.ChillerRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["cooling_loop"], + }, + ) + + def is_applicable(self, context, data=None): + chiller_b = context.BASELINE_0 + primary_secondary_loop_dict_b = data["primary_secondary_loop_dict_b"] + chiller_curve_set_dict_b = data["chiller_curve_set_dict_b"] + + return chiller_b[ + "cooling_loop" + ] in primary_secondary_loop_dict_b and does_chiller_performance_match_curve( + chiller_b, chiller_curve_set_dict_b[chiller_b["id"]] + ) + + def get_calc_vals(self, context, data=None): + chiller_b = context.BASELINE_0 + + minimum_load_ratio_b = chiller_b.get("minimum_load_ratio") + minimum_unload_ratio_b = chiller_b.get("minimum_unload_ratio") + + return { + "minimum_load_ratio_b": minimum_load_ratio_b, + "minimum_unload_ratio_b": minimum_unload_ratio_b, + } + + def manual_check_required(self, context, calc_vals=None, data=None): + minimum_load_ratio_b = calc_vals["minimum_load_ratio_b"] + minimum_unload_ratio_b = calc_vals["minimum_unload_ratio_b"] + + return minimum_load_ratio_b is None or minimum_unload_ratio_b is None + + def rule_check(self, context, calc_vals=None, data=None): + minimum_load_ratio_b = calc_vals["minimum_load_ratio_b"] + minimum_unload_ratio_b = calc_vals["minimum_unload_ratio_b"] + + return ( + minimum_load_ratio_b == REQ_MIN_LOAD_RATIO + and minimum_unload_ratio_b == REQ_MIN_UNLOAD_RATIO + ) diff --git a/rct229/rulesets/ashrae9012022/section22/section22rule44.py b/rct229/rulesets/ashrae9012022/section22/section22rule44.py new file mode 100644 index 0000000000..8b8c2e74a3 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section22/section22rule44.py @@ -0,0 +1,163 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import PROPOSED +from rct229.rulesets.ashrae9012022.ruleset_functions.does_chiller_performance_match_curve import ( + J4_CURVE, + does_chiller_performance_match_curve, +) +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal + +CHILLER_COMPRESSOR = SchemaEnums.schema_enums["ChillerCompressorOptions"] +UNDETERMINED_MSG = "FAIL unless manufacturer full- and part-load data is provided to support the modeled curves." + + +class PRM9012022Rule43f22(RuleDefinitionListIndexedBase): + """Rule 44 of ASHRAE 90.1-2022 Appendix G Section 22 (Chilled Water Loop)""" + + def __init__(self): + super(PRM9012022Rule43f22, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + each_rule=PRM9012022Rule43f22.ChillerRule(), + index_rmd=PROPOSED, + id="22-44", + description="here part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10°F, " + "the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.", + ruleset_section_title="HVAC - Chiller", + standard_section=" Table G3.1 #10b Proposed Column", + is_primary_rule=True, + list_path="$.chillers[*]", + rmd_context="ruleset_model_descriptions/0", + ) + + def create_data(self, context, data): + rmd_p = context.PROPOSED + + return { + "non_process_chw_coil_loop_dict_p": { + chw_loop["id"]: [ + chw_child_loop_id + for chw_child_loop_id in find_all( + f'$.child_loops[*][?(@.type="COOLING")].id', chw_loop + ) + ] + for chw_loop in find_all( + f'$.fluid_loops[*][?(@.type="COOLING")]', rmd_p + ) + } + } + + class ChillerRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule43f22.ChillerRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$": ["cooling_loop"], + }, + manual_check_required_msg=UNDETERMINED_MSG, + ) + + def is_applicable(self, context, data=None): + chiller_p = context.PROPOSED + cooling_loop_p = chiller_p["cooling_loop"] + non_process_chw_coil_loop_dict_p = data["non_process_chw_coil_loop_dict_p"] + + return ( + # Check if chiller primary loop serves hvac systems + cooling_loop_p in non_process_chw_coil_loop_dict_p + # Check if chiller serves a loop that has child loops and those child loops serve hvac systems + or cooling_loop_p in non_process_chw_coil_loop_dict_p[cooling_loop_p] + ) + + def get_calc_vals(self, context, data=None): + chiller_p = context.PROPOSED + + rated_capacity_p = getattr_(chiller_p, "chillers", "rated_capacity") + compressor_type_p = getattr_(chiller_p, "chillers", "compressor_type") + + if chiller_p.get("condensing_loop") is None: + if rated_capacity_p < 150 * ureg("ton"): + curve_set_list_p = [J4_CURVE.A, J4_CURVE.K] + else: + curve_set_list_p = [J4_CURVE.B, J4_CURVE.L] + + else: + if compressor_type_p in ( + CHILLER_COMPRESSOR.POSITIVE_DISPLACEMENT, + CHILLER_COMPRESSOR.SCROLL, + CHILLER_COMPRESSOR.SCREW, + ): + if rated_capacity_p < 75 * ureg("ton"): + curve_set_list_p = [J4_CURVE.C, J4_CURVE.M] + elif rated_capacity_p < 150 * ureg("ton"): + curve_set_list_p = [J4_CURVE.D, J4_CURVE.N] + elif rated_capacity_p < 300 * ureg("ton"): + curve_set_list_p = [J4_CURVE.E, J4_CURVE.O] + elif rated_capacity_p < 600 * ureg("ton"): + curve_set_list_p = [J4_CURVE.F, J4_CURVE.P] + else: + curve_set_list_p = [J4_CURVE.G, J4_CURVE.Q] + + if compressor_type_p == CHILLER_COMPRESSOR.CENTRIFUGAL: + if rated_capacity_p < 150 * ureg("ton"): + curve_set_list_p = [J4_CURVE.H, J4_CURVE.R] + elif rated_capacity_p < 300 * ureg("ton"): + curve_set_list_p = [J4_CURVE.H, J4_CURVE.S] + elif rated_capacity_p < 400 * ureg("ton"): + curve_set_list_p = [J4_CURVE.I, J4_CURVE.T] + else: + curve_set_list_p = [J4_CURVE.J, J4_CURVE.U] + + design_leaving_condenser_temperature_p = getattr_( + chiller_p, "chillers", "design_leaving_condenser_temperature" + ) + design_entering_condenser_temperature_p = getattr_( + chiller_p, "chillers", "design_entering_condenser_temperature" + ) + + return { + "curve_set_list_p": curve_set_list_p, + "design_leaving_condenser_temperature_p": CalcQ( + "temperature", design_leaving_condenser_temperature_p + ), + "design_entering_condenser_temperature_p": CalcQ( + "temperature", design_entering_condenser_temperature_p + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + chiller_p = context.PROPOSED + curve_set_list_p = calc_vals["curve_set_list_p"] + + return not any( + does_chiller_performance_match_curve(chiller_p, curve_set) + for curve_set in curve_set_list_p + ) + + def rule_check(self, context, calc_vals=None, data=None): + chiller_p = context.PROPOSED + curve_set_list_p = calc_vals["curve_set_list_p"] + design_leaving_condenser_temperature_p = calc_vals[ + "design_leaving_condenser_temperature_p" + ] + design_entering_condenser_temperature_p = calc_vals[ + "design_entering_condenser_temperature_p" + ] + + return any( + does_chiller_performance_match_curve(chiller_p, curve_set) + for curve_set in curve_set_list_p + ) and std_equal( + design_entering_condenser_temperature_p + - design_leaving_condenser_temperature_p, + 10 * ureg("delta_degF"), + ) diff --git a/rct229/rulesets/ashrae9012022/section5/__init__.py b/rct229/rulesets/ashrae9012022/section5/__init__.py new file mode 100644 index 0000000000..58b5fd19b4 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/__init__.py @@ -0,0 +1,48 @@ +# Add all available rule modules in __all__ +import importlib + +__all__ = [ + "section5rule3", + "section5rule4", + "section5rule5", + "section5rule6", + "section5rule7", + "section5rule8", + "section5rule9", + "section5rule10", + "section5rule11", + "section5rule12", + "section5rule13", + "section5rule16", + "section5rule19", + "section5rule20", + "section5rule21", + "section5rule22", + "section5rule26", + "section5rule27", + "section5rule28", + "section5rule29", + "section5rule30", + "section5rule31", + "section5rule32", + "section5rule35", + "section5rule37", + "section5rule39", + "section5rule40", + "section5rule42", + "section5rule43", + "section5rule44", + "section5rule45", +] + +SHORT_NAME = "ENV" + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule10.py b/rct229/rulesets/ashrae9012022/section5/section5rule10.py new file mode 100644 index 0000000000..624d574f46 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule10.py @@ -0,0 +1,175 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + get_opaque_surface_type, + OpaqueSurfaceType as OST, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + get_baseline_surface_conditioning_category_dict, + SurfaceConditioningCategory as SCC, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + find_construction_by_surface, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal +from rct229.utils.assertions import assert_ + + +class PRM9012022Rule29j06(RuleDefinitionListIndexedBase): + """Rule 10 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule29j06, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule29j06.BuildingRule(), + index_rmd=BASELINE_0, + id="5-10", + description="Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule29j06.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule29j06.BuildingRule.FloorRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["surface_conditioning_category_dict"][surface_b["id"]] + constructions_b = data["constructions_b"] + construction = find_construction_by_surface(surface_b, constructions_b) + return ( + get_opaque_surface_type(surface_b, construction.get("has_radiant_heat")) + == OST.FLOOR + and scc is not SCC.UNREGULATED + ) + + class FloorRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule29j06.BuildingRule.FloorRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={"$": ["construction"]}, + precision={ + "floor_u_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + climate_zone: str = data["climate_zone"] + floor = context.BASELINE_0 + scc: str = data["surface_conditioning_category_dict"][floor["id"]] + floor_u_factor = next( + ( + construction.get("u_factor") + for construction in data["constructions_b"] + if construction["id"] == floor["construction"] + ) + ) + assert_( + floor_u_factor is not None, + f"U-factor for floor construction '{floor['construction']}' is missing", + ) + + target_u_factor = None + target_u_factor_res = None + target_u_factor_nonres = None + + if scc in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.SEMI_EXTERIOR, + ]: + target_u_factor = table_G34_lookup(climate_zone, scc, OST.FLOOR)[ + "u_value" + ] + elif scc == SCC.EXTERIOR_MIXED: + target_u_factor_res = table_G34_lookup( + climate_zone, SCC.EXTERIOR_RESIDENTIAL, OST.FLOOR + )["u_value"] + target_u_factor_nonres = table_G34_lookup( + climate_zone, SCC.EXTERIOR_NON_RESIDENTIAL, OST.FLOOR + )["u_value"] + if target_u_factor_res == target_u_factor_nonres: + target_u_factor = target_u_factor_res + + return { + "floor_u_factor": CalcQ("thermal_transmittance", floor_u_factor), + "target_u_factor": CalcQ("thermal_transmittance", target_u_factor), + "target_u_factor_res": CalcQ( + "thermal_transmittance", target_u_factor_res + ), + "target_u_factor_nonres": CalcQ( + "thermal_transmittance", target_u_factor_nonres + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + target_u_factor_res = calc_vals["target_u_factor_res"] + target_u_factor_nonres = calc_vals["target_u_factor_nonres"] + + return ( + target_u_factor_res is not None + and target_u_factor_nonres is not None + and target_u_factor_res != target_u_factor_nonres + ) + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["floor_u_factor_b"]( + calc_vals["floor_u_factor"], calc_vals["target_u_factor"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + floor_u_factor = calc_vals["floor_u_factor"] + target_u_factor = calc_vals["target_u_factor"] + return std_equal(target_u_factor, floor_u_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule11.py b/rct229/rulesets/ashrae9012022/section5/section5rule11.py new file mode 100644 index 0000000000..bdb7d37bdd --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule11.py @@ -0,0 +1,100 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) + + +class PRM9012022Rule46p73(RuleDefinitionListIndexedBase): + """Rule 11 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule46p73, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule46p73.BuildingRule(), + index_rmd=BASELINE_0, + id="5-11", + description=" Baseline slab-on-grade assemblies must conform with assemblies detailed in Appendix A (Unheated Slabs A6).", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=False, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule46p73.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule46p73.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return get_opaque_surface_type(surface_b) in [ + OST.HEATED_SOG, + OST.UNHEATED_SOG, + ] + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012022Rule46p73.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_conditioning_category_dict = data[ + "surface_conditioning_category_dict" + ] + surface_category = surface_conditioning_category_dict[surface_b["id"]] + return { + "surface_category": surface_category, + } + + def applicability_check(self, context, calc_vals, data): + surface_category = calc_vals["surface_category"] + return surface_category != SCC.UNREGULATED diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule12.py b/rct229/rulesets/ashrae9012022/section5/section5rule12.py new file mode 100644 index 0000000000..7d61413e31 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule12.py @@ -0,0 +1,195 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + get_opaque_surface_type, + OpaqueSurfaceType as OST, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + get_baseline_surface_conditioning_category_dict, + SurfaceConditioningCategory as SCC, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal +from rct229.utils.assertions import getattr_, assert_ + +MANUAL_CHECK_REQUIRED_MSG = ( + "Zone has both residential and non-residential spaces and the construction requirements " + "for slab-on-grade floor are different. Verify construction is modeled correctly. " +) +FAIL_MSG = ( + 'Baseline slab F-factor is not as expected for slabs that are less than 24" below grade. verify that the ' + 'slab is more than 24" below grade and is unregulated. ' +) + + +class PRM9012022Rule40d86(RuleDefinitionListIndexedBase): + """Rule 12 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule40d86, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule40d86.BuildingRule(), + index_rmd=BASELINE_0, + id="5-12", + description="Baseline slab-on-grade floor assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule40d86.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule40d86.BuildingRule.SlabOnGradeFloorRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + construction_id = getattr_(surface_b, "Surface", "construction") + has_radiant_heat = next( + ( + construction.get("has_radiant_heat", False) + for construction in data["constructions_b"] + if construction["id"] == construction_id + ) + ) + scc = data["surface_conditioning_category_dict"][surface_b["id"]] + return ( + get_opaque_surface_type(surface_b, has_radiant_heat) == OST.UNHEATED_SOG + and scc is not SCC.UNREGULATED + ) + + class SlabOnGradeFloorRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule40d86.BuildingRule.SlabOnGradeFloorRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={"$": ["construction"]}, + manual_check_required_msg=MANUAL_CHECK_REQUIRED_MSG, + fail_msg=FAIL_MSG, + precision={ + "floor_f_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + climate_zone: str = data["climate_zone"] + slab_on_grade = context.BASELINE_0 + scc: str = data["surface_conditioning_category_dict"][ + slab_on_grade["id"] + ] + slab_on_grade_f_factor = next( + ( + construction.get("f_factor") + for construction in data["constructions_b"] + if construction["id"] == slab_on_grade["construction"] + ) + ) + assert_( + slab_on_grade_f_factor is not None, + f"F-factor for slab on grade construction '{slab_on_grade['construction']}' is missing", + ) + + target_f_factor = None + target_f_factor_res = None + target_f_factor_nonres = None + + if scc in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.SEMI_EXTERIOR, + ]: + target_f_factor = table_G34_lookup( + climate_zone, scc, OST.UNHEATED_SOG + )["f_factor"] + elif scc == SCC.EXTERIOR_MIXED: + target_f_factor_res = table_G34_lookup( + climate_zone, SCC.EXTERIOR_RESIDENTIAL, OST.UNHEATED_SOG + )["f_factor"] + target_f_factor_nonres = table_G34_lookup( + climate_zone, SCC.EXTERIOR_NON_RESIDENTIAL, OST.UNHEATED_SOG + )["f_factor"] + if target_f_factor_res == target_f_factor_nonres: + target_f_factor = target_f_factor_res + + return { + "slab_on_grade_floor_f_factor": CalcQ( + "linear_thermal_transmittance", slab_on_grade_f_factor + ), + "target_f_factor": CalcQ( + "linear_thermal_transmittance", target_f_factor + ), + "target_f_factor_res": CalcQ( + "linear_thermal_transmittance", target_f_factor_res + ), + "target_f_factor_nonres": CalcQ( + "linear_thermal_transmittance", target_f_factor_nonres + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + target_f_factor_res = calc_vals["target_f_factor_res"] + target_f_factor_nonres = calc_vals["target_f_factor_nonres"] + + return target_f_factor_res != target_f_factor_nonres + + def rule_check(self, context, calc_vals=None, data=None): + target_f_factor = calc_vals["target_f_factor"] + slab_on_grade_floor_f_factor = calc_vals["slab_on_grade_floor_f_factor"] + return self.precision_comparison["floor_f_factor_b"]( + slab_on_grade_floor_f_factor, target_f_factor + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + target_f_factor = calc_vals["target_f_factor"] + slab_on_grade_floor_f_factor = calc_vals["slab_on_grade_floor_f_factor"] + return std_equal( + std_val=target_f_factor, val=slab_on_grade_floor_f_factor + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule13.py b/rct229/rulesets/ashrae9012022/section5/section5rule13.py new file mode 100644 index 0000000000..879cf4a228 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule13.py @@ -0,0 +1,257 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.assertions import getattr_ +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal + + +class PRM9012022Rule73r04(RuleDefinitionListIndexedBase): + """Rule 13 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule73r04, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule73r04.BuildingRule(), + index_rmd=BASELINE_0, + id="5-13", + description="Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same in the baseline as in the proposed design. ", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5 Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule73r04.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule73r04.BuildingRule.UnregulatedSurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + scc = data["surface_conditioning_category_dict"] + surface_b = context_item.BASELINE_0 + return scc[surface_b["id"]] == SCC.UNREGULATED + + class UnregulatedSurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule73r04.BuildingRule.UnregulatedSurfaceRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={"$": ["construction"]}, + precision={ + "surface_u_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + }, + "surface_c_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + }, + "surface_f_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft*R)", + }, + }, + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_p = context.PROPOSED + + construction_id_b = getattr_(surface_b, "Surface", "construction") + construction_id_p = getattr_(surface_p, "Surface", "construction") + + surface_b_construction = next( + ( + construction + for construction in data["constructions_b"] + if construction["id"] == construction_id_b + ) + ) + surface_p_construction = next( + ( + construction + for construction in data["constructions_p"] + if construction["id"] == construction_id_p + ) + ) + + has_radiant_heat_b = surface_b_construction.get( + "has_radiant_heat", False + ) + has_radiant_heat_p = surface_p_construction.get( + "has_radiant_heat", False + ) + + surface_b_type = get_opaque_surface_type(surface_b, has_radiant_heat_b) + surface_p_type = get_opaque_surface_type(surface_p, has_radiant_heat_p) + + calc_vals = { + "baseline_surface_type": surface_b_type, + "proposed_surface_type": surface_p_type, + } + + if surface_b_type in [OST.ABOVE_GRADE_WALL, OST.FLOOR, OST.ROOF]: + return { + **calc_vals, + "baseline_surface_u_factor": CalcQ( + "thermal_transmittance", + getattr_( + surface_b_construction, "Construction", "u_factor" + ), + ), + "proposed_surface_u_factor": CalcQ( + "thermal_transmittance", + getattr_( + surface_p_construction, "Construction", "u_factor" + ), + ), + } + elif surface_b_type in [OST.UNHEATED_SOG, OST.HEATED_SOG]: + return { + **calc_vals, + "baseline_surface_f_factor": CalcQ( + "linear_thermal_transmittance", + getattr_( + surface_b_construction, "construction", "f_factor" + ), + ), + "proposed_surface_f_factor": CalcQ( + "linear_thermal_transmittance", + getattr_( + surface_p_construction, "construction", "f_factor" + ), + ), + } + elif surface_b_type == OST.BELOW_GRADE_WALL: + return { + **calc_vals, + "baseline_surface_c_factor": CalcQ( + "thermal_transmittance", + getattr_( + surface_b_construction, "construction", "c_factor" + ), + ), + "proposed_surface_c_factor": CalcQ( + "thermal_transmittance", + getattr_( + surface_p_construction, "construction", "c_factor" + ), + ), + } + else: + # Will never reach this line + # The OST defaults all unidentifiable surfaces to above wall grade + # Serve code completeness + raise Exception(f"Unrecognized surface type: {surface_b_type}") + + def rule_check(self, context, calc_vals=None, data=None): + baseline_surface_type = calc_vals["baseline_surface_type"] + proposed_surface_type = calc_vals["proposed_surface_type"] + # Check 1. surface type needs to be matched + if ( + proposed_surface_type is None + or baseline_surface_type != proposed_surface_type + ): + return False + + if baseline_surface_type in [OST.ABOVE_GRADE_WALL, OST.FLOOR, OST.ROOF]: + return self.precision_comparison["surface_u_factor_b"]( + calc_vals["baseline_surface_u_factor"], + calc_vals["proposed_surface_u_factor"], + ) + + elif baseline_surface_type in [OST.UNHEATED_SOG, OST.HEATED_SOG]: + return self.precision_comparison["surface_f_factor_b"]( + calc_vals["baseline_surface_f_factor"], + calc_vals["proposed_surface_f_factor"], + ) + + elif baseline_surface_type == OST.BELOW_GRADE_WALL: + + return self.precision_comparison["surface_c_factor_b"]( + calc_vals["baseline_surface_c_factor"], + calc_vals["proposed_surface_c_factor"], + ) + else: + return False + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + baseline_surface_type = calc_vals["baseline_surface_type"] + proposed_surface_type = calc_vals["proposed_surface_type"] + # Check 1. surface type needs to be matched + if ( + proposed_surface_type is None + or baseline_surface_type != proposed_surface_type + ): + return False + + if baseline_surface_type in [OST.ABOVE_GRADE_WALL, OST.FLOOR, OST.ROOF]: + return std_equal( + calc_vals["baseline_surface_u_factor"], + calc_vals["proposed_surface_u_factor"], + ) + + elif baseline_surface_type in [OST.UNHEATED_SOG, OST.HEATED_SOG]: + return std_equal( + calc_vals["baseline_surface_f_factor"], + calc_vals["proposed_surface_f_factor"], + ) + + elif baseline_surface_type == OST.BELOW_GRADE_WALL: + return std_equal( + calc_vals["baseline_surface_c_factor"], + calc_vals["proposed_surface_c_factor"], + ) + else: + return False diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule16.py b/rct229/rulesets/ashrae9012022/section5/section5rule16.py new file mode 100644 index 0000000000..a01aa75cac --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule16.py @@ -0,0 +1,231 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_area_type_window_wall_area_dict import ( + get_area_type_window_wall_area_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR +FAIL_MSG = "The vertical fenestration is not distributed across baseline opaque surfaces in the same proportion as in the proposed design. Verify if envelope is existing or altered and can be excluded from this check." + + +class PRM9012022Rule80o45(RuleDefinitionListIndexedBase): + """Rule 16 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule80o45, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule80o45.BuildingRule(), + index_rmd=BASELINE_0, + id="5-16", + description="The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(c) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule80o45.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule80o45.BuildingRule.AboveGradeWallRule(), + index_rmd=BASELINE_0, + # list_path and list_filter together determine the list of + # above grade walls to be passed to AboveGradeWallRule + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + + window_wall_areas_dictionary_b = get_area_type_window_wall_area_dict( + climate_zone, constructions_b, building_b + ) + window_wall_areas_dictionary_p = get_area_type_window_wall_area_dict( + climate_zone, constructions_b, building_p + ) + + return { + "total_fenestration_area_b": sum( + find_all("$..total_window_area", window_wall_areas_dictionary_b), + ZERO.AREA, + ), + "total_fenestration_area_p": sum( + find_all("$..total_window_area", window_wall_areas_dictionary_p), + ZERO.AREA, + ), + "surface_conditioning_category_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + constructions_b, + building_p, + constructions_p, + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + + return ( + get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL + and data["surface_conditioning_category_dict_b"][surface_b["id"]] + != SCC.UNREGULATED + ) + + class AboveGradeWallRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule80o45.BuildingRule.AboveGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$": ["construction"], + }, + precision={ + "total_fenestration_area_surface_b / total_fenstration_area_b": { + "precision": 0.01, + "unit": "", + } + }, + fail_msg=FAIL_MSG, + ) + + def get_calc_vals(self, context, data=None): + above_grade_wall_b = context.BASELINE_0 + above_grade_wall_p = context.PROPOSED + + def _helper_calc_val(above_grade_wall): + """Helper function for calculating the total fenestration area for an above grade wall""" + return sum( + [ + subsurface.get("glazed_area", ZERO.AREA) + + subsurface.get("opaque_area", ZERO.AREA) + for subsurface in find_all( + "subsurfaces[*]", above_grade_wall + ) + if ( + getattr_(subsurface, "subsurface", "classification") + == DOOR + and ( + subsurface.get("glazed_area", ZERO.AREA) + > subsurface.get("opaque_area", ZERO.AREA) + ) + or ( + getattr_(subsurface, "subsurface", "classification") + != DOOR + ) + ) + ], + ZERO.AREA, + ) + + return { + "total_fenestration_area_surface_b": CalcQ( + "area", _helper_calc_val(above_grade_wall_b) + ), + "total_fenestration_area_b": CalcQ( + "area", data["total_fenestration_area_b"] + ), + "total_fenestration_area_surface_p": CalcQ( + "area", _helper_calc_val(above_grade_wall_p) + ), + "total_fenestration_area_p": CalcQ( + "area", data["total_fenestration_area_p"] + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + total_fenestration_area_surface_b = calc_vals[ + "total_fenestration_area_surface_b" + ] + total_fenestration_area_surface_p = calc_vals[ + "total_fenestration_area_surface_p" + ] + total_fenestration_area_b = calc_vals["total_fenestration_area_b"] + total_fenestration_area_p = calc_vals["total_fenestration_area_p"] + + return ( + total_fenestration_area_b == ZERO.AREA + and total_fenestration_area_p == ZERO.AREA + ) or ( + self.precision_comparison[ + "total_fenestration_area_surface_b / total_fenstration_area_b" + ]( + ( + total_fenestration_area_surface_b + / total_fenestration_area_b + ).magnitude, + ( + total_fenestration_area_surface_p + / total_fenestration_area_p + ).magnitude, + ) + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + total_fenestration_area_surface_b = calc_vals[ + "total_fenestration_area_surface_b" + ] + total_fenestration_area_surface_p = calc_vals[ + "total_fenestration_area_surface_p" + ] + total_fenestration_area_b = calc_vals["total_fenestration_area_b"] + total_fenestration_area_p = calc_vals["total_fenestration_area_p"] + + return ( + total_fenestration_area_b == ZERO.AREA + and total_fenestration_area_p == ZERO.AREA + ) or ( + std_equal( + ( + total_fenestration_area_surface_b + / total_fenestration_area_b + ).magnitude, + ( + total_fenestration_area_surface_p + / total_fenestration_area_p + ).magnitude, + ) + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule19.py b/rct229/rulesets/ashrae9012022/section5/section5rule19.py new file mode 100644 index 0000000000..c1d9049003 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule19.py @@ -0,0 +1,323 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.schema_enums import SchemaEnums +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_window_wall_ratios_dict import ( + get_building_scc_window_wall_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR +MANUAL_CHECK_REQUIRED_MSG = "Manual review is requested to verify vertical fenestration meets U-factor requirement as per Table G3.4. " + + +class PRM9012022Rule57c26(RuleDefinitionListIndexedBase): + """Rule 24 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule57c26, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule57c26.BuildingRule(), + index_rmd=BASELINE_0, + id="5-19", + description="Vertical fenestration U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMD.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(d) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rmd_b = context.BASELINE_0 + rmd_p = context.PROPOSED + climate_zone = rmd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rmd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rmd_p["ruleset_model_descriptions"][0].get("constructions") + + # TODO It is determined later we will modify this function to RMD level - + # The implementation is temporary + bldg_scc_wwr_ratio_dict = {} + for building_b in find_all(self.list_path, rmd_b): + bldg_scc_wwr_ratio_dict[ + building_b["id"] + ] = get_building_scc_window_wall_ratios_dict( + climate_zone, constructions_b, building_b + ) + + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + "bldg_scc_wwr_ratio_dict": bldg_scc_wwr_ratio_dict, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule57c26.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule57c26.BuildingRule.AboveGradeWallRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + bldg_scc_wwr_ratio = data["bldg_scc_wwr_ratio_dict"][building_b["id"]] + # manual flag required? + manual_check_required_flag = bldg_scc_wwr_ratio[ + SCC.EXTERIOR_MIXED + ] > 0 and not ( + ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=10.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=20.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=30.1, + )["u_value"] + ) + and ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=10.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=20.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=30.1, + )["u_value"] + ) + and ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["u_value"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["u_value"] + ) + ) + # get standard code data + target_u_factor_mix = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_MIXED], + )["u_value"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_MIXED] > 0 + else ZERO.U_FACTOR + ) + target_u_factor_res = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_RESIDENTIAL], + )["u_value"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_RESIDENTIAL] > 0 + else ZERO.U_FACTOR + ) + target_u_factor_nonres = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_NON_RESIDENTIAL], + )["u_value"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_NON_RESIDENTIAL] > 0 + else ZERO.U_FACTOR + ) + target_u_factor_semiheated = ( + table_G34_lookup( + climate_zone, + SCC.SEMI_EXTERIOR, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.SEMI_EXTERIOR], + )["u_value"] + if bldg_scc_wwr_ratio[SCC.SEMI_EXTERIOR] > 0 + else ZERO.U_FACTOR + ) + + return { + # TODO this function will likely need to be revised to RMD level later. + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + climate_zone, + building_b, + constructions_b, + building_p, + constructions_p, + ), + "manual_check_required_flag": manual_check_required_flag, + "target_u_factor_mix": target_u_factor_mix, + "target_u_factor_res": target_u_factor_res, + "target_u_factor_nonres": target_u_factor_nonres, + "target_u_factor_semiheated": target_u_factor_semiheated, + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + return ( + (get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL) + and (scc_dict_b[surface_b["id"]] != SCC.UNREGULATED) + and len(surface_b.get("subsurfaces", [])) > 0 + ) + + class AboveGradeWallRule(RuleDefinitionListIndexedBase): + def __init__(self): + super( + PRM9012022Rule57c26.BuildingRule.AboveGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule57c26.BuildingRule.AboveGradeWallRule.SubsurfaceRule(), + index_rmd=BASELINE_0, + list_path="subsurfaces[*]", + required_fields={ + "$.subsurfaces[*]": [ + "classification", + "glazed_area", + "opaque_area", + "u_factor", + ] + }, + manual_check_required_msg=MANUAL_CHECK_REQUIRED_MSG, + ) + + def manual_check_required(self, context, calc_vals=None, data=None): + scc_dict_b = data["scc_dict_b"] + manual_check_required_flag = data["manual_check_required_flag"] + surface_b = context.BASELINE_0 + # if exterior mixed and required manual check + return ( + scc_dict_b[surface_b["id"]] == SCC.EXTERIOR_MIXED + and manual_check_required_flag + ) + + def create_data(self, context, data=None): + surface_b = context.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + return {"scc": scc_dict_b[surface_b["id"]]} + + def list_filter(self, context_item, data=None): + subsurface_b = context_item.BASELINE_0 + return ( + subsurface_b["classification"] != DOOR + or subsurface_b["glazed_area"] > subsurface_b["opaque_area"] + ) + + class SubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule57c26.BuildingRule.AboveGradeWallRule.SubsurfaceRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + precision={ + "subsurface_u_factor_b": { + "precision": 0.01, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + scc = data["scc"] + target_u_factor = None + if scc == SCC.EXTERIOR_MIXED: + target_u_factor = data["target_u_factor_mix"] + elif scc == SCC.EXTERIOR_RESIDENTIAL: + target_u_factor = data["target_u_factor_res"] + elif scc == SCC.EXTERIOR_NON_RESIDENTIAL: + target_u_factor = data["target_u_factor_nonres"] + elif scc == SCC.SEMI_EXTERIOR: + target_u_factor = data["target_u_factor_semiheated"] + else: + assert ( + False + ), f"Severe Error: No matching surface category for: {scc}" + + return { + "target_u_factor": CalcQ( + "thermal_transmittance", target_u_factor + ), + "subsurface_u_factor": CalcQ( + "thermal_transmittance", subsurface_b["u_factor"] + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["subsurface_u_factor_b"]( + calc_vals["subsurface_u_factor"], calc_vals["target_u_factor"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + target_u_factor = calc_vals["target_u_factor"] + subsurface_u_factor = calc_vals["subsurface_u_factor"] + return std_equal(std_val=target_u_factor, val=subsurface_u_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule20.py b/rct229/rulesets/ashrae9012022/section5/section5rule20.py new file mode 100644 index 0000000000..148c503ff1 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule20.py @@ -0,0 +1,315 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_window_wall_ratios_dict import ( + get_building_scc_window_wall_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO +from rct229.utils.std_comparisons import std_equal + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR +MANUAL_CHECK_REQUIRED_MSG = "Manual review is requested to verify vertical fenestration meets SHGC requirement as per Table G3.4. " + + +class PRM9012022Rule96n40(RuleDefinitionListIndexedBase): + """Rule 20 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule96n40, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule96n40.BuildingRule(), + index_rmd=BASELINE_0, + id="5-20", + description="Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(d) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rmd_b = context.BASELINE_0 + rmd_p = context.PROPOSED + climate_zone = rmd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rmd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rmd_p["ruleset_model_descriptions"][0].get("constructions") + + # TODO It is determined that later we will modify this function to RMD level - + # This implementation is temporary + bldg_scc_wwr_ratio_dict = { + building_b["id"]: get_building_scc_window_wall_ratios_dict( + climate_zone, constructions_b, building_b + ) + for building_b in find_all(self.list_path, rmd_b) + } + + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + "bldg_scc_wwr_ratio_dict": bldg_scc_wwr_ratio_dict, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule96n40.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule96n40.BuildingRule.AboveGradeWallRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + bldg_scc_wwr_ratio = data["bldg_scc_wwr_ratio_dict"][building_b["id"]] + # manual flag required? + manual_check_required_flag = bldg_scc_wwr_ratio[ + SCC.EXTERIOR_MIXED + ] > 0 and not ( + ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=10.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=20.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=30.1, + )["solar_heat_gain_coefficient"] + ) + and ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=10.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=20.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=30.1, + )["solar_heat_gain_coefficient"] + ) + and ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["solar_heat_gain_coefficient"] + == table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=0.1, + )["solar_heat_gain_coefficient"] + ) + ) + # get standard code data + target_shgc_mix = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_MIXED], + )["solar_heat_gain_coefficient"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_MIXED] > 0 + else None + ) + target_shgc_res = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_RESIDENTIAL], + )["solar_heat_gain_coefficient"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_RESIDENTIAL] > 0 + else None + ) + target_shgc_nonres = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.EXTERIOR_NON_RESIDENTIAL], + )["solar_heat_gain_coefficient"] + if bldg_scc_wwr_ratio[SCC.EXTERIOR_NON_RESIDENTIAL] > 0 + else None + ) + target_shgc_semiheated = ( + table_G34_lookup( + climate_zone, + SCC.SEMI_EXTERIOR, + "VERTICAL GLAZING", + wwr=bldg_scc_wwr_ratio[SCC.SEMI_EXTERIOR], + )["solar_heat_gain_coefficient"] + if bldg_scc_wwr_ratio[SCC.SEMI_EXTERIOR] > 0 + else None + ) + return { + # TODO this function will likely need to be revised to RMD level later. + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + climate_zone, + building_b, + constructions_b, + building_p, + constructions_p, + ), + "manual_check_required_flag": manual_check_required_flag, + "target_shgc_mix": target_shgc_mix, + "target_shgc_res": target_shgc_res, + "target_shgc_nonres": target_shgc_nonres, + "target_shgc_semiheated": target_shgc_semiheated, + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + return ( + (get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL) + and (scc_dict_b[surface_b["id"]] != SCC.UNREGULATED) + and len(surface_b.get("subsurfaces", [])) > 0 + ) + + class AboveGradeWallRule(RuleDefinitionListIndexedBase): + def __init__(self): + super( + PRM9012022Rule96n40.BuildingRule.AboveGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule96n40.BuildingRule.AboveGradeWallRule.SubsurfaceRule(), + index_rmd=BASELINE_0, + list_path="subsurfaces[*]", + required_fields={ + "$.subsurfaces[*]": [ + "classification", + ] + }, + manual_check_required_msg=MANUAL_CHECK_REQUIRED_MSG, + ) + + def create_data(self, context, data=None): + surface_b = context.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + return {"scc": scc_dict_b[surface_b["id"]]} + + def list_filter(self, context_item, data=None): + subsurface_b = context_item.BASELINE_0 + return subsurface_b["classification"] != DOOR or subsurface_b.get( + "glazed_area", ZERO.AREA + ) > subsurface_b.get("opaque_area", ZERO.AREA) + + class SubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule96n40.BuildingRule.AboveGradeWallRule.SubsurfaceRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + precision={ + "subsurface_shgc_b": { + "precision": 0.01, + "unit": "", + } + }, + ) + + def manual_check_required(self, context, calc_vals=None, data=None): + manual_check_required_flag = data["manual_check_required_flag"] + # if exterior mixed and required manual check + return ( + data["scc"] == SCC.EXTERIOR_MIXED and manual_check_required_flag + ) + + def get_calc_vals(self, context, data=None): + scc = data["scc"] + subsurface_b = context.BASELINE_0 + target_shgc = 0.0 + if scc == SCC.EXTERIOR_MIXED: + target_shgc = data["target_shgc_mix"] + elif scc == SCC.EXTERIOR_RESIDENTIAL: + target_shgc = data["target_shgc_res"] + elif scc == SCC.EXTERIOR_NON_RESIDENTIAL: + target_shgc = data["target_shgc_nonres"] + elif scc == SCC.SEMI_EXTERIOR: + target_shgc = data["target_shgc_semiheated"] + else: + assert f"Severe Error: No matching surface category for: {scc}" + return { + "subsurface_shgc": getattr_( + subsurface_b, "Subsurface", "solar_heat_gain_coefficient" + ), + "target_shgc": target_shgc, + } + + def rule_check(self, context, calc_vals=None, data=None): + target_shgc = calc_vals["target_shgc"] + subsurface_shgc = calc_vals["subsurface_shgc"] + + return target_shgc is not None and self.precision_comparison[ + "subsurface_shgc_b" + ](subsurface_shgc, target_shgc) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + target_shgc = calc_vals["target_shgc"] + subsurface_shgc = calc_vals["subsurface_shgc"] + return target_shgc is not None and std_equal( + std_val=target_shgc, val=subsurface_shgc + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule21.py b/rct229/rulesets/ashrae9012022/section5/section5rule21.py new file mode 100644 index 0000000000..0c6fc77665 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule21.py @@ -0,0 +1,187 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal + +FAIL_MSG = "Subsurface that is not regulated (Not part of building envelope) is not modeled with the same area, U-factor and SHGC in the baseline as in the propsoed design." + + +class PRM9012022Rule44m70(RuleDefinitionListIndexedBase): + """Rule 21 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule44m70, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule44m70.BuildingRule(), + index_rmd=BASELINE_0, + id="5-21", + description="Subsurface that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(a) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule44m70.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule44m70.BuildingRule.UnregulatedSurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + + return ( + data["scc_dict_b"][surface_b["id"]] == SCC.UNREGULATED + and len(surface_b.get("subsurfaces", [])) > 0 + ) + + class UnregulatedSurfaceRule(RuleDefinitionListIndexedBase): + def __init__(self): + super( + PRM9012022Rule44m70.BuildingRule.UnregulatedSurfaceRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + list_path="subsurfaces[*]", + each_rule=PRM9012022Rule44m70.BuildingRule.UnregulatedSurfaceRule.UnregulatedSubsurfaceRule(), + index_rmd=BASELINE_0, + ) + + class UnregulatedSubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule44m70.BuildingRule.UnregulatedSurfaceRule.UnregulatedSubsurfaceRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + precision={ + "subsurface_u_factor_b": { + "precision": 0.01, + "unit": "Btu/(hr*ft2*R)", + }, + "subsurface_shgc_b": { + "precision": 0.01, + "unit": "", + }, + "subsurface_glazed_area_b": { + "precision": 1, + "unit": "ft2", + }, + "subsurface_opaque_area_b": { + "precision": 1, + "unit": "ft2", + }, + }, + fail_msg=FAIL_MSG, + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + subsurface_p = context.PROPOSED + + return { + "subsurface_u_factor_b": CalcQ( + "thermal_transmittance", subsurface_b.get("u_factor") + ), + "subsurface_u_factor_p": CalcQ( + "thermal_transmittance", subsurface_p.get("u_factor") + ), + "subsurface_shgc_b": subsurface_b.get( + "solar_heat_gain_coefficient" + ), + "subsurface_shgc_p": subsurface_p.get( + "solar_heat_gain_coefficient" + ), + "subsurface_glazed_area_b": CalcQ( + "area", subsurface_b.get("glazed_area") + ), + "subsurface_glazed_area_p": CalcQ( + "area", subsurface_p.get("glazed_area") + ), + "subsurface_opaque_area_b": CalcQ( + "area", subsurface_b.get("opaque_area") + ), + "subsurface_opaque_area_p": CalcQ( + "area", subsurface_p.get("opaque_area") + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + return all( + calc_vals[f"{key}_b"] == calc_vals[f"{key}_p"] + or self.precision_comparison[f"{key}_b"]( + calc_vals[f"{key}_b"], calc_vals[f"{key}_p"] + ) + for key in [ + "subsurface_u_factor", + "subsurface_shgc", + "subsurface_glazed_area", + "subsurface_opaque_area", + ] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + return ( + std_equal( + calc_vals["subsurface_u_factor_b"], + calc_vals["subsurface_u_factor_p"], + ) + and std_equal( + calc_vals["subsurface_shgc_b"], + calc_vals["subsurface_shgc_p"], + ) + and std_equal( + calc_vals["subsurface_glazed_area_b"], + calc_vals["subsurface_glazed_area_p"], + ) + and std_equal( + calc_vals["subsurface_opaque_area_b"], + calc_vals["subsurface_opaque_area_p"], + ) + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule22.py b/rct229/rulesets/ashrae9012022/section5/section5rule22.py new file mode 100644 index 0000000000..b74ab709fe --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule22.py @@ -0,0 +1,139 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.pint_utils import ZERO, CalcQ + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR +FAIL_MSG = "Baseline fenestration was modeled with shading projections and/or overhangs, which is incorrect." + + +class PRM9012022Rule50p59(RuleDefinitionListIndexedBase): + """Rule 22 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule50p59, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule50p59.BuildingRule(), + index_rmd=BASELINE_0, + id="5-22", + description="Baseline fenestration shall be assumed to be flush with the exterior wall, and no shading " + "projections shall be modeled.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(d) Building Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule50p59.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule50p59.BuildingRule.AboveGradeWallRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return ( + get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL + and data["scc_dict_b"][surface_b["id"]] != SCC.UNREGULATED + and len(surface_b.get("subsurfaces", [])) > 0 + ) + + class AboveGradeWallRule(RuleDefinitionListIndexedBase): + def __init__(self): + super( + PRM9012022Rule50p59.BuildingRule.AboveGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + list_path="subsurfaces[*]", + each_rule=PRM9012022Rule50p59.BuildingRule.AboveGradeWallRule.SubsurfaceRule(), + index_rmd=BASELINE_0, + ) + + def list_filter(self, context_item, data=None): + subsurface_b = context_item.BASELINE_0 + return subsurface_b["classification"] != DOOR or subsurface_b.get( + "glazed_area", ZERO.AREA + ) > subsurface_b.get("opaque_area", ZERO.AREA) + + class SubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule50p59.BuildingRule.AboveGradeWallRule.SubsurfaceRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + fail_msg=FAIL_MSG, + required_fields={}, + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + return { + "has_shading_overhang": getattr_( + subsurface_b, "Subsurface", "has_shading_overhang" + ), + "has_shading_sidefins": getattr_( + subsurface_b, "Subsurface", "has_shading_sidefins" + ), + "depth_of_overhang": subsurface_b.get("depth_of_overhang"), + } + + def rule_check(self, context, calc_vals=None, data=None): + has_shading_overhang_b = calc_vals["has_shading_overhang"] + depth_of_overhang_b = calc_vals["depth_of_overhang"] + has_shading_sidefins_b = calc_vals["has_shading_sidefins"] + return ( + has_shading_overhang_b is False + or depth_of_overhang_b == ZERO.LENGTH + ) and has_shading_sidefins_b is False diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule26.py b/rct229/rulesets/ashrae9012022/section5/section5rule26.py new file mode 100644 index 0000000000..572e0c1fba --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule26.py @@ -0,0 +1,250 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_segment_skylight_roof_areas_dict import ( + get_building_segment_skylight_roof_areas_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + + +class PRM9012022Rule34b75(RuleDefinitionListIndexedBase): + """Rule 26 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule34b75, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule34b75.BuildingRule(), + index_rmd=BASELINE_0, + id="5-26", + description="Skylight area must be allocated to surfaces in the same proportion in the baseline as in the proposed design.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(e) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule34b75.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule34b75.BuildingRule.BuildingSegmentRule(), + index_rmd=BASELINE_0, + list_path="building_segments[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + "skylight_roof_areas_dictionary_b": get_building_segment_skylight_roof_areas_dict( + data["climate_zone"], data["constructions_b"], building_b + ), + "skylight_roof_areas_dictionary_p": get_building_segment_skylight_roof_areas_dict( + data["climate_zone"], data["constructions_p"], building_p + ), + } + + class BuildingSegmentRule(RuleDefinitionListIndexedBase): + def __init__(self): + super( + PRM9012022Rule34b75.BuildingRule.BuildingSegmentRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule34b75.BuildingRule.BuildingSegmentRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.zones[*].surfaces[*]", + ) + + def is_applicable(self, context, data=None): + building_segment_p = context.PROPOSED + skylight_roof_areas_dictionary_p = data[ + "skylight_roof_areas_dictionary_p" + ] + # Add applicability check to make sure the building segment contains + # skylight elements + total_skylight_area_p = skylight_roof_areas_dictionary_p[ + building_segment_p["id"] + ]["total_skylight_area"] + total_envelope_roof_area_p = skylight_roof_areas_dictionary_p[ + building_segment_p["id"] + ]["total_envelope_roof_area"] + # avoid zero division + return ( + total_envelope_roof_area_p > ZERO.AREA + and total_skylight_area_p / total_envelope_roof_area_p > 0 + ) + + def create_data(self, context, data=None): + building_segment_b = context.BASELINE_0 + building_segment_p = context.PROPOSED + return { + "scc_dict_b": data["scc_dict_b"], + "total_skylight_area_b": data["skylight_roof_areas_dictionary_b"][ + building_segment_b["id"] + ]["total_skylight_area"], + "total_skylight_area_p": data["skylight_roof_areas_dictionary_p"][ + building_segment_p["id"] + ]["total_skylight_area"], + } + + def list_filter(self, context_item, data=None): + scc = data["scc_dict_b"] + surface_b = context_item.BASELINE_0 + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and scc[surface_b["id"]] != SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule34b75.BuildingRule.BuildingSegmentRule.RoofRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + precision={ + "total_skylight_area_surface_b / total_skylight_area_b": { + "precision": 0.01, + "unit": "", + } + }, + ) + + def get_calc_vals(self, context, data=None): + total_skylight_area_b = data["total_skylight_area_b"] + total_skylight_area_p = data["total_skylight_area_p"] + + roof_b = context.BASELINE_0 + roof_p = context.PROPOSED + + total_skylight_area_surface_b = sum( + [ + subsurface.get("glazed_area", ZERO.AREA) + + subsurface.get("opaque_area", ZERO.AREA) + for subsurface in find_all("subsurfaces[*]", roof_b) + ], + ZERO.AREA, + ) + total_skylight_area_surface_p = sum( + [ + subsurface.get("glazed_area", ZERO.AREA) + + subsurface.get("opaque_area", ZERO.AREA) + for subsurface in find_all("subsurfaces[*]", roof_p) + ], + ZERO.AREA, + ) + + return { + "total_skylight_area_b": CalcQ("area", total_skylight_area_b), + "total_skylight_area_p": CalcQ("area", total_skylight_area_p), + "total_skylight_area_surface_b": CalcQ( + "area", total_skylight_area_surface_b + ), + "total_skylight_area_surface_p": CalcQ( + "area", total_skylight_area_surface_p + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + total_skylight_area_b = calc_vals["total_skylight_area_b"] + total_skylight_area_p = calc_vals["total_skylight_area_p"] + total_skylight_area_surface_b = calc_vals[ + "total_skylight_area_surface_b" + ] + total_skylight_area_surface_p = calc_vals[ + "total_skylight_area_surface_p" + ] + + return ( + # both segments have no skylight area + total_skylight_area_b == 0 + and total_skylight_area_p == 0 + and total_skylight_area_surface_b == 0 + and total_skylight_area_surface_p == 0 + ) or ( + # product to ensure neither is 0 & short-circuit logic if either of them is 0. + total_skylight_area_b * total_skylight_area_p > 0 + # both segments' skylight area ratios are the same + and self.precision_comparison[ + "total_skylight_area_surface_b / total_skylight_area_b" + ]( + ( + total_skylight_area_surface_b / total_skylight_area_b + ).magnitude, + ( + total_skylight_area_surface_p / total_skylight_area_p + ).magnitude, + ) + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + total_skylight_area_b = calc_vals["total_skylight_area_b"] + total_skylight_area_p = calc_vals["total_skylight_area_p"] + total_skylight_area_surface_b = calc_vals[ + "total_skylight_area_surface_b" + ] + total_skylight_area_surface_p = calc_vals[ + "total_skylight_area_surface_p" + ] + + return ( + # both segments have no skylight area + total_skylight_area_b == 0 + and total_skylight_area_p == 0 + and total_skylight_area_surface_b == 0 + and total_skylight_area_surface_p == 0 + ) or ( + # product to ensure neither is 0 & short-circuit logic if either of them is 0. + total_skylight_area_b * total_skylight_area_p > 0 + # both segments' skylight area ratios are the same + and std_equal( + ( + total_skylight_area_surface_b / total_skylight_area_b + ).magnitude, + ( + total_skylight_area_surface_p / total_skylight_area_p + ).magnitude, + ) + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule27.py b/rct229/rulesets/ashrae9012022/section5/section5rule27.py new file mode 100644 index 0000000000..45478e5342 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule27.py @@ -0,0 +1,299 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.schema_enums import SchemaEnums +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_skylight_roof_ratios_dict import ( + get_building_scc_skylight_roof_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal + +MANUAL_CHECK_MSG = "Manual review is required to verify skylight meets U-factor requirement as per table G3.4." +MANUAL_CHECK_APPLICABLE = ( + "The subsurface type is Door, not applicable for the rule-checking" +) +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR + + +class PRM9012022Rule69v04(RuleDefinitionListIndexedBase): + """Rule 27 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule69v04, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule69v04.BuildingRule(), + index_rmd=BASELINE_0, + id="5-27", + description="Skylight U-factors for residential, non-residential and semi-heated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(e) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule69v04.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule69v04.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + manual_check_required_msg=MANUAL_CHECK_MSG, + ) + + def manual_check_required(self, context, calc_vals=None, data=None): + # If building segment exterior mixed skylight to roof ratio is greater than 0 + # and residential, nonresidential and <=2% and > 2% u_factors are identical + # then set the manual check required and stop execution. + building_b = context.BASELINE_0 + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + building_scc_skylight_roof_ratios_dict_b = ( + get_building_scc_skylight_roof_ratios_dict( + climate_zone, constructions_b, building_b + ) + ) + target_exterior_2per_residential = table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.02, + ) + target_exterior_2per_nonresidential = table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.02, + ) + target_exterior_above2_residential = table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.03, + ) + target_exterior_above2_nonresidential = table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.03, + ) + return building_scc_skylight_roof_ratios_dict_b[ + SCC.EXTERIOR_MIXED + ] > 0 and ( + target_exterior_2per_residential["u_value"] + != target_exterior_2per_nonresidential["u_value"] + or target_exterior_above2_residential["u_value"] + != target_exterior_above2_nonresidential["u_value"] + or target_exterior_2per_residential["u_value"] + != target_exterior_2per_nonresidential["u_value"] + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + building_scc_skylight_roof_ratios_dict_b = ( + get_building_scc_skylight_roof_ratios_dict( + climate_zone, constructions_b, building_b + ) + ) + + # Process target_u_factor_res + srr_res = building_scc_skylight_roof_ratios_dict_b[SCC.EXTERIOR_RESIDENTIAL] + target_u_factor_res = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.02, + ) + if srr_res > 0.02 + else table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.03, + ) + ) + # Process target_u_factor_nonres + srr_nonres = building_scc_skylight_roof_ratios_dict_b[ + SCC.EXTERIOR_NON_RESIDENTIAL + ] + target_u_factor_nonres = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.02, + ) + if srr_nonres > 0.02 + else table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + "SKYLIGHT", + skylit_wwr=0.03, + ) + ) + # Process target_u_factor_semiheated + srr_semi_exterior = building_scc_skylight_roof_ratios_dict_b[ + SCC.SEMI_EXTERIOR + ] + target_u_factor_semiheated = ( + table_G34_lookup( + climate_zone, + SCC.SEMI_EXTERIOR, + "SKYLIGHT", + skylit_wwr=0.02, + ) + if srr_semi_exterior > 0.02 + else table_G34_lookup( + climate_zone, + SCC.SEMI_EXTERIOR, + "SKYLIGHT", + skylit_wwr=0.03, + ) + ) + + return { + "surface_conditioning_category_dict_b": get_baseline_surface_conditioning_category_dict( + climate_zone, + building_b, + constructions_b, + building_p, + constructions_p, + ), + # at this point, target_u_factor_mixed should be same regardless of + # residential <2% or >2%, skylight. + "target_u_factor_res_b": target_u_factor_res["u_value"], + "target_u_factor_nonres_b": target_u_factor_nonres["u_value"], + "target_u_factor_semiheated_b": target_u_factor_semiheated["u_value"], + } + + def list_filter(self, context_item, data=None): + # context_item shall be the list of the list_path element + surface_b = context_item.BASELINE_0 + # roof with subsurfaces, and the roof is not unregulated + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and surface_b.get("subsurfaces", None) + and data["surface_conditioning_category_dict_b"][surface_b["id"]] + != SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule69v04.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule69v04.BuildingRule.RoofRule.SubsurfaceRule(), + index_rmd=BASELINE_0, + list_path="subsurfaces[*]", + ) + + def create_data(self, context, data=None): + surface_b = context.BASELINE_0 + scc_type = data["surface_conditioning_category_dict_b"][surface_b["id"]] + return {"scc_type": scc_type} + + class SubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule69v04.BuildingRule.RoofRule.SubsurfaceRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + manual_check_required_msg=MANUAL_CHECK_APPLICABLE, + required_fields={ + "$": [ + "classification", + "glazed_area", + "opaque_area", + "u_factor", + ] + }, + precision={ + "subsurface_u_factor_b": { + "precision": 0.01, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def is_applicable(self, context, data=None): + subsurface_b = context.BASELINE_0 + return ( + subsurface_b["classification"] != DOOR + or subsurface_b["glazed_area"] <= subsurface_b["opaque_area"] + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + subsurface_b_u_factor = subsurface_b["u_factor"] + + scc_type = data["scc_type"] + target_u_factor_res_b = data["target_u_factor_res_b"] + target_u_factor_nonres_b = data["target_u_factor_nonres_b"] + target_u_factor_semiheated_b = data["target_u_factor_semiheated_b"] + if ( + scc_type == SCC.EXTERIOR_MIXED + or scc_type == SCC.EXTERIOR_RESIDENTIAL + ): + target_u_factor = target_u_factor_res_b + elif scc_type == SCC.EXTERIOR_NON_RESIDENTIAL: + target_u_factor = target_u_factor_nonres_b + else: + target_u_factor = target_u_factor_semiheated_b + + return { + "subsurface_b_u_factor": CalcQ( + "thermal_transmittance", subsurface_b_u_factor + ), + "target_u_factor": CalcQ( + "thermal_transmittance", target_u_factor + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["subsurface_u_factor_b"]( + calc_vals["subsurface_b_u_factor"], calc_vals["target_u_factor"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + subsurface_b_u_factor = calc_vals["subsurface_b_u_factor"] + target_u_factor = calc_vals["target_u_factor"] + return std_equal(target_u_factor, subsurface_b_u_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule28.py b/rct229/rulesets/ashrae9012022/section5/section5rule28.py new file mode 100644 index 0000000000..705b52d5bf --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule28.py @@ -0,0 +1,275 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_scc_skylight_roof_ratios_dict import ( + get_building_scc_skylight_roof_ratios_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.std_comparisons import std_equal + +MANUAL_CHECK_MSG = "MANUAL REVIEW IS REQUESTED TO VERIFY SKYLIGHT MEETS SHGC REQUIREMENT AS PER TABLE G3.4." + +SURFACE_CLASSIFICATION = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"] + + +class PRM9012022Rule42c42(RuleDefinitionListIndexedBase): + """Rule 28 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule42c42, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule42c42.BuildingRule(), + index_rmd=BASELINE_0, + id="5-28", + description="Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(e) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule42c42.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + list_path="$.building_segments[*].zones[*].surfaces[*]", + each_rule=PRM9012022Rule42c42.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + manual_check_required_msg=MANUAL_CHECK_MSG, + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone = data["climate_zone"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + scc_skylight_roof_ratios_dict_b = ( + get_building_scc_skylight_roof_ratios_dict( + climate_zone, constructions_b, building_b + ) + ) + + building_scc_skylight_roof_ratios_dict_b = ( + get_building_scc_skylight_roof_ratios_dict( + climate_zone, constructions_b, building_b + ) + ) + + target_shgc_2per_residential = table_G34_lookup( + climate_zone, + "EXTERIOR RESIDENTIAL", + "SKYLIGHT", + skylit_wwr=0.0, + )["solar_heat_gain_coefficient"] + + target_shgc_above2_residential = table_G34_lookup( + climate_zone, + "EXTERIOR RESIDENTIAL", + "SKYLIGHT", + skylit_wwr=0.021, + )["solar_heat_gain_coefficient"] + + target_shgc_2per_nonresidential = table_G34_lookup( + climate_zone, + "EXTERIOR NON-RESIDENTIAL", + "SKYLIGHT", + skylit_wwr=0.021, + )["solar_heat_gain_coefficient"] + + target_shgc_above2_nonresidential = table_G34_lookup( + climate_zone, + "EXTERIOR NON-RESIDENTIAL", + "SKYLIGHT", + skylit_wwr=0.021, + )["solar_heat_gain_coefficient"] + + # manual flag required? + manual_check_required_flag = all( + [ + building_scc_skylight_roof_ratios_dict_b[SCC.EXTERIOR_MIXED] > 0, + any( + [ + target_shgc_2per_residential + != target_shgc_above2_residential, + target_shgc_2per_nonresidential + != target_shgc_above2_nonresidential, + target_shgc_2per_residential + != target_shgc_2per_nonresidential, + ] + ), + ] + ) + + if scc_skylight_roof_ratios_dict_b[SCC.EXTERIOR_RESIDENTIAL] > 0.02: + target_shgc_res = target_shgc_above2_residential + else: + target_shgc_res = target_shgc_2per_residential + + if scc_skylight_roof_ratios_dict_b[SCC.EXTERIOR_NON_RESIDENTIAL] > 0.02: + target_shgc_nonres = target_shgc_above2_nonresidential + else: + target_shgc_nonres = target_shgc_2per_nonresidential + + if scc_skylight_roof_ratios_dict_b[SCC.SEMI_EXTERIOR]: + target_shgc_semiheated = table_G34_lookup( + climate_zone, + "SEMI-EXTERIOR", + "SKYLIGHT", + skylit_wwr=0.021, + )["solar_heat_gain_coefficient"] + else: + target_shgc_semiheated = table_G34_lookup( + climate_zone, + "SEMI-EXTERIOR", + "SKYLIGHT", + skylit_wwr=0, + )["solar_heat_gain_coefficient"] + + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + climate_zone, + building_b, + constructions_b, + building_p, + constructions_p, + ), + "manual_check_required_flag": manual_check_required_flag, + "target_shgc_res": target_shgc_res, + "target_shgc_nonres": target_shgc_nonres, + "target_shgc_semiheated": target_shgc_semiheated, + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["scc_dict_b"][surface_b["id"]] + + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and surface_b.get("subsurfaces") + and scc != SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule42c42.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule42c42.BuildingRule.RoofRule.SubsurfaceRule(), + index_rmd=BASELINE_0, + list_path="subsurfaces[*]", + manual_check_required_msg=MANUAL_CHECK_MSG, + ) + + def create_data(self, context, data=None): + surface_b = context.BASELINE_0 + surface_id_b = surface_b["id"] + scc_dict_b = data["scc_dict_b"] + manual_check_required_flag = data["manual_check_required_flag"] + return { + "surface_id_b": surface_id_b, + "scc_dict_b": scc_dict_b, + "manual_check_required_flag": manual_check_required_flag, + } + + class SubsurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule42c42.BuildingRule.RoofRule.SubsurfaceRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["classification", "glazed_area", "opaque_area"] + }, + precision={ + "subsurface_shgc_b": { + "precision": 0.01, + "unit": "", + } + }, + manual_check_required_msg=MANUAL_CHECK_MSG, + ) + + def is_applicable(self, context, data=None): + subsurface_b = context.BASELINE_0 + + return ( + subsurface_b["classification"] == SURFACE_CLASSIFICATION.DOOR + and subsurface_b["glazed_area"] > subsurface_b["opaque_area"] + ) or subsurface_b["classification"] != SURFACE_CLASSIFICATION.DOOR + + def manual_check_required(self, context, calc_vals=None, data=None): + manual_check_required_flag = data["manual_check_required_flag"] + # if exterior mixed and required manual check + return ( + data["scc_dict_b"][data["surface_id_b"]] == SCC.EXTERIOR_MIXED + and manual_check_required_flag + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + subsurface_shgc_b = subsurface_b["solar_heat_gain_coefficient"] + + subsurface_type_b = data["scc_dict_b"][data["surface_id_b"]] + target_shgc_res_b = data["target_shgc_res"] + target_shgc_nonres_b = data["target_shgc_nonres"] + target_shgc_semiheated_b = data["target_shgc_semiheated"] + target_shgc = 0.0 + + if ( + subsurface_type_b == SCC.EXTERIOR_MIXED + or subsurface_type_b == SCC.EXTERIOR_RESIDENTIAL + ): + target_shgc = target_shgc_res_b + elif subsurface_type_b == SCC.EXTERIOR_NON_RESIDENTIAL: + target_shgc = target_shgc_nonres_b + else: + target_shgc = target_shgc_semiheated_b + + return { + "subsurface_shgc_b": subsurface_shgc_b, + "target_shgc": target_shgc, + } + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["subsurface_shgc_b"]( + calc_vals["subsurface_shgc_b"], calc_vals["target_shgc"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + target_shgc = calc_vals["target_shgc"] + subsurface_shgc_b = calc_vals["subsurface_shgc_b"] + return std_equal(target_shgc, subsurface_shgc_b) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule29.py b/rct229/rulesets/ashrae9012022/section5/section5rule29.py new file mode 100644 index 0000000000..beecdedcff --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule29.py @@ -0,0 +1,119 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.std_comparisons import std_equal + +TARGET_ABSORPTANCE_THERMAL_EXTERIOR = 0.9 + + +class PRM9012022Rule39f24(RuleDefinitionListIndexedBase): + """Rule 29 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule39f24, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule39f24.BuildingRule(), + index_rmd=BASELINE_0, + id="5-29", + description="The baseline roof surfaces shall be modeled using a thermal emittance of 0.9", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule39f24.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule39f24.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and data["scc_dict_b"][surface_b["id"]] != SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule39f24.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["optical_properties"], + "optical_properties": ["absorptance_thermal_exterior"], + }, + precision={ + "absorptance_thermal_exterior_b": { + "precision": 0.01, + "unit": "", + } + }, + ) + + def get_calc_vals(self, context, data=None): + roof_b = context.BASELINE_0 + return { + "absorptance_thermal_exterior": roof_b["optical_properties"][ + "absorptance_thermal_exterior" + ] + } + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["absorptance_thermal_exterior_b"]( + calc_vals["absorptance_thermal_exterior"], + TARGET_ABSORPTANCE_THERMAL_EXTERIOR, + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + return std_equal( + TARGET_ABSORPTANCE_THERMAL_EXTERIOR, + calc_vals["absorptance_thermal_exterior"], + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule3.py b/rct229/rulesets/ashrae9012022/section5/section5rule3.py new file mode 100644 index 0000000000..84d99d2c7e --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule3.py @@ -0,0 +1,99 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) + + +class PRM9012022Rule73o42(RuleDefinitionListIndexedBase): + """Rule 3 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule73o42, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule73o42.BuildingRule(), + index_rmd=BASELINE_0, + id="5-3", + description="Baseline roof assemblies must conform with assemblies detailed in Appendix A", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=False, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule73o42.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule73o42.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return get_opaque_surface_type(surface_b) == OST.ROOF + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012022Rule73o42.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={}, + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_conditioning_category_dict = data[ + "surface_conditioning_category_dict" + ] + surface_category = surface_conditioning_category_dict[surface_b["id"]] + return { + "surface_category": surface_category, + } + + def applicability_check(self, context, calc_vals, data): + surface_category = calc_vals["surface_category"] + return surface_category != SCC.UNREGULATED diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule30.py b/rct229/rulesets/ashrae9012022/section5/section5rule30.py new file mode 100644 index 0000000000..0a9ff62e6c --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule30.py @@ -0,0 +1,170 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import PROPOSED +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_building_surface_conditioning_category_dict, +) +from rct229.utils.std_comparisons import std_equal + +ABSORPTION_THERMAL_EXTERIOR = 0.9 +CASE2_UNDETERMINED__MSG = ( + "Roof surface emittance in the proposed model {absorptance_thermal_exterior} matches that in the " + "user model but is not equal to the prescribed default value of 0.9. Verify that the modeled value " + "is based on testing in accordance with section 5.5.3.1.1(a). " +) +CASE3_UNDETERMINED__MSG = ( + "Fail if the thermal emittance in the user model is based on aged test data. Roof thermal emittance is equal to the prescribed default value of 0.9 " + "but differs from the thermal emittance in the user model {absorptance_thermal_exterior}." +) + + +class PRM9012022Rule18s99(RuleDefinitionListIndexedBase): + """Rule 30 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule18s99, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule18s99.BuildingRule(), + index_rmd=PROPOSED, + id="5-30", + description="The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-1(a) Building Envelope Modeling Requirements for the Proposed design", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_p = context.PROPOSED + climate_zone = rpd_p["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return {"climate_zone": climate_zone, "constructions": constructions} + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule18s99.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + each_rule=PRM9012022Rule18s99.BuildingRule.RoofRule(), + index_rmd=PROPOSED, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_p = context.PROPOSED + return { + "scc_dict_p": get_building_surface_conditioning_category_dict( + data["climate_zone"], building_p, data["constructions"] + ), + } + + def list_filter(self, context_item, data=None): + surface_p = context_item.PROPOSED + scc = data["scc_dict_p"][surface_p["id"]] + return ( + get_opaque_surface_type(surface_p) == OST.ROOF + and scc is not SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule18s99.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$": ["optical_properties"], + "optical_properties": ["absorptance_thermal_exterior"], + }, + precision={ + "absorptance_thermal_exterior_p": { + "precision": 0.01, + "unit": "", + }, + }, + ) + + def get_calc_vals(self, context, data=None): + roof_p = context.PROPOSED + roof_u = context.USER + + return { + "absorptance_thermal_exterior_p": roof_p["optical_properties"][ + "absorptance_thermal_exterior" + ], + "absorptance_thermal_exterior_u": roof_u["optical_properties"][ + "absorptance_thermal_exterior" + ], + } + + def manual_check_required(self, context, calc_vals=None, data=None): + absorptance_thermal_exterior_p = calc_vals[ + "absorptance_thermal_exterior_p" + ] + absorptance_thermal_exterior_u = calc_vals[ + "absorptance_thermal_exterior_u" + ] + + return ( + self.precision_comparison["absorptance_thermal_exterior_p"]( + absorptance_thermal_exterior_p, absorptance_thermal_exterior_u + ) + and not self.precision_comparison["absorptance_thermal_exterior_p"]( + absorptance_thermal_exterior_p, ABSORPTION_THERMAL_EXTERIOR + ) + ) or ( + not self.precision_comparison["absorptance_thermal_exterior_p"]( + absorptance_thermal_exterior_p, absorptance_thermal_exterior_u + ) + and self.precision_comparison["absorptance_thermal_exterior_p"]( + absorptance_thermal_exterior_p, + ABSORPTION_THERMAL_EXTERIOR, + ) + ) + + def get_manual_check_required_msg(self, context, calc_vals=None, data=None): + absorptance_thermal_exterior_p = calc_vals[ + "absorptance_thermal_exterior_p" + ] + absorptance_thermal_exterior_u = calc_vals[ + "absorptance_thermal_exterior_u" + ] + + UNDETERMINED_MSG = ( + CASE3_UNDETERMINED__MSG.format( + absorptance_thermal_exterior=absorptance_thermal_exterior_u + ) + if not self.precision_comparison["absorptance_thermal_exterior_p"]( + absorptance_thermal_exterior_p, absorptance_thermal_exterior_u + ) + else CASE2_UNDETERMINED__MSG.format( + absorptance_thermal_exterior=absorptance_thermal_exterior_p + ) + ) + + return UNDETERMINED_MSG + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["absorptance_thermal_exterior_p"]( + calc_vals["absorptance_thermal_exterior_p"], + ABSORPTION_THERMAL_EXTERIOR, + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + return std_equal( + calc_vals["absorptance_thermal_exterior_p"], + ABSORPTION_THERMAL_EXTERIOR, + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule31.py b/rct229/rulesets/ashrae9012022/section5/section5rule31.py new file mode 100644 index 0000000000..1495d6ef10 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule31.py @@ -0,0 +1,119 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.std_comparisons import std_equal + +TARGET_ABSORPTANCE_SOLAR_EXTERIOR = 0.7 + + +class PRM9012022Rule48w84(RuleDefinitionListIndexedBase): + """Rule 31 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule48w84, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule48w84.BuildingRule(), + index_rmd=BASELINE_0, + id="5-31", + description=" The baseline roof surfaces shall be modeled using a solar reflectance of 0.30", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(g) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule48w84.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule48w84.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and data["scc_dict_b"][surface_b["id"]] != SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule48w84.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["optical_properties"], + "optical_properties": ["absorptance_solar_exterior"], + }, + precision={ + "absorptance_solar_exterior_b": { + "precision": 0.01, + "unit": "", + } + }, + ) + + def get_calc_vals(self, context, data=None): + roof_b = context.BASELINE_0 + return { + "absorptance_solar_exterior": roof_b["optical_properties"][ + "absorptance_solar_exterior" + ] + } + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["absorptance_solar_exterior_b"]( + calc_vals["absorptance_solar_exterior"], + TARGET_ABSORPTANCE_SOLAR_EXTERIOR, + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + return std_equal( + TARGET_ABSORPTANCE_SOLAR_EXTERIOR, + calc_vals["absorptance_solar_exterior"], + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule32.py b/rct229/rulesets/ashrae9012022/section5/section5rule32.py new file mode 100644 index 0000000000..82226de0a6 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule32.py @@ -0,0 +1,185 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import PROPOSED +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_building_surface_conditioning_category_dict, +) +from rct229.utils.std_comparisons import std_equal + +ABSORPTANCE_SOLAR_EXTERIOR = 0.7 + +CASE2_UNDETERMINED_MSG = ( + "Roof surface solar reflectance in the proposed model {absorptance_solar_exterior} matches that in the user model but is not equal to the prescribed default value of 0.3. " + "Verify that reflectance was established using aged test data as required in section 5.5.3.1(a)." +) +CASE3_UNDETERMINED_MSG = ( + "Fail if the thermal emittance in the user model is based on aged test data. roof surface solar reflectance is equal to the prescribed default value of 0.3 " + "but differs from the solar reflectance in the user model 1-{absorptance_solar_exterior}." +) +PASS_DIFFERS_MSG_REGULATED = "Roof surface solar reflectance is equal to the prescribed default value of 0.3 but differs from the solar reflectance in the user model {absorptance_solar_exterior}" + + +class PRM9012022Rule78r30(RuleDefinitionListIndexedBase): + """Rule 32 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule78r30, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule78r30.BuildingRule(), + index_rmd=PROPOSED, + id="5-32", + description="The proposed roof surfaces shall be modeled using the same solar reflectance as in the user " + "model if the aged test data are available, or equal to 0.7 default reflectance", + ruleset_section_title="Envelope", + standard_section="Section G3.1-1(a) Building Envelope Modeling Requirements for the Proposed design", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_p = context.PROPOSED + climate_zone = rpd_p["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions": constructions, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule78r30.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + each_rule=PRM9012022Rule78r30.BuildingRule.RoofRule(), + index_rmd=PROPOSED, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_p = context.PROPOSED + return { + "scc_dict_p": get_building_surface_conditioning_category_dict( + data["climate_zone"], building_p, data["constructions"] + ), + } + + def list_filter(self, context_item, data=None): + surface_p = context_item.PROPOSED + scc = data["scc_dict_p"][surface_p["id"]] + return ( + get_opaque_surface_type(surface_p) == OST.ROOF + and scc is not SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule78r30.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=True, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$": ["optical_properties"], + "optical_properties": ["absorptance_solar_exterior"], + }, + precision={ + "absorptance_solar_exterior_p": { + "precision": 0.01, + "unit": "", + } + }, + ) + + def get_calc_vals(self, context, data=None): + roof_p = context.PROPOSED + roof_u = context.USER + scc_dict_p = data["scc_dict_p"] + + return { + "absorptance_solar_exterior_p": roof_p["optical_properties"][ + "absorptance_solar_exterior" + ], + "absorptance_solar_exterior_u": roof_u["optical_properties"][ + "absorptance_solar_exterior" + ], + "surface_conditioning_category_p": scc_dict_p[roof_p["id"]], + } + + def manual_check_required(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_solar_exterior_u = calc_vals["absorptance_solar_exterior_u"] + + return ( + absorptance_solar_exterior_p == absorptance_solar_exterior_u + and absorptance_solar_exterior_p != ABSORPTANCE_SOLAR_EXTERIOR + ) or ( + absorptance_solar_exterior_p != absorptance_solar_exterior_u + and self.precision_comparison["absorptance_solar_exterior_p"]( + absorptance_solar_exterior_p, + ABSORPTANCE_SOLAR_EXTERIOR, + ) + ) + + def get_manual_check_required_msg(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_solar_exterior_u = calc_vals["absorptance_solar_exterior_u"] + + UNDETERMINED_MSG = "" + if ( + absorptance_solar_exterior_p == absorptance_solar_exterior_u + and absorptance_solar_exterior_p != ABSORPTANCE_SOLAR_EXTERIOR + ): + UNDETERMINED_MSG = CASE2_UNDETERMINED_MSG.format( + absorptance_solar_exterior=absorptance_solar_exterior_p + ) + elif ( + absorptance_solar_exterior_p != absorptance_solar_exterior_u + and self.precision_comparison["absorptance_solar_exterior_p"]( + absorptance_solar_exterior_p, + ABSORPTANCE_SOLAR_EXTERIOR, + ) + ): + UNDETERMINED_MSG = CASE3_UNDETERMINED_MSG.format( + absorptance_solar_exterior=absorptance_solar_exterior_p + ) + + return UNDETERMINED_MSG + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["absorptance_solar_exterior_p"]( + calc_vals["absorptance_solar_exterior_p"], + ABSORPTANCE_SOLAR_EXTERIOR, + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + return std_equal( + calc_vals["absorptance_solar_exterior_p"], + ABSORPTANCE_SOLAR_EXTERIOR, + ) + + def get_pass_msg(self, context, calc_vals=None, data=None): + """Pre-condition: see rule_check""" + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_solar_exterior_u = calc_vals["absorptance_solar_exterior_u"] + + # this condition only applies when P-RMD = 0.7 and P-RMD surface is regulated. + PASS_MSG = ( + PASS_DIFFERS_MSG_REGULATED.format( + absorptance_solar_exterior=(1 - absorptance_solar_exterior_u) + ) + if absorptance_solar_exterior_p != absorptance_solar_exterior_u + else "" + ) + return PASS_MSG diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule35.py b/rct229/rulesets/ashrae9012022/section5/section5rule35.py new file mode 100644 index 0000000000..0eca29868f --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule35.py @@ -0,0 +1,141 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + ZoneConditioningCategory as ZCC, + get_zone_conditioning_category_dict, +) +from rct229.schema.config import ureg +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + +TARGET_AIR_LEAKAGE_COEFF = 1.0 * ureg("cfm / foot**2") +TOTAL_AIR_LEAKAGE_FACTOR = 0.112 + + +class PRM9012022Rule39k65(RuleDefinitionListIndexedBase): + """Rule 35 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule39k65, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule39k65.BuildingRule(), + index_rmd=BASELINE_0, + id="5-35", + description="The baseline air leakage rate of the building envelope (I_75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(h) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule39k65.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={"$.building_segments[*].zones[*]": ["surfaces"]}, + precision={ + "building_total_air_leakage_rate": { + "precision": 1, + "unit": "cfm", + } + }, + ) + + def get_calc_vals(self, context, data=None): + building_b = context.BASELINE_0 + + scc_dict_b = get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_b, + data["constructions_p"], + ) + zcc_dict_b = get_zone_conditioning_category_dict( + data["climate_zone"], building_b, data["constructions_b"] + ) + + building_total_air_leakage_rate = ZERO.FLOW + + building_total_envelope_area = sum( + [ + getattr_(surface, "surface", "area") + for surface in find_all( + "$.building_segments[*].zones[*].surfaces[*]", building_b + ) + if scc_dict_b[surface["id"]] != SCC.UNREGULATED + ], + ZERO.AREA, + ) + + target_air_leakage_rate_75pa_b = ( + TARGET_AIR_LEAKAGE_COEFF + ) * building_total_envelope_area + + for zone in find_all("$.building_segments[*].zones[*]", building_b): + if zcc_dict_b[zone["id"]] in [ + ZCC.CONDITIONED_RESIDENTIAL, + ZCC.CONDITIONED_NON_RESIDENTIAL, + ZCC.CONDITIONED_MIXED, + ZCC.SEMI_HEATED, + ]: + building_total_air_leakage_rate += getattr_( + zone["infiltration"], "infiltration", "flow_rate" + ) + + return { + "building_total_air_leakage_rate": CalcQ( + "air_flow_rate", building_total_air_leakage_rate + ), + "target_air_leakage_rate_75pa_b": CalcQ( + "air_flow_rate", target_air_leakage_rate_75pa_b + ), + } + + def rule_check(self, context, calc_vals=None, data=None): + building_total_air_leakage_rate = calc_vals[ + "building_total_air_leakage_rate" + ] + target_air_leakage_rate_75pa_b = calc_vals["target_air_leakage_rate_75pa_b"] + return self.precision_comparison["building_total_air_leakage_rate"]( + building_total_air_leakage_rate, + target_air_leakage_rate_75pa_b * TOTAL_AIR_LEAKAGE_FACTOR, + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + building_total_air_leakage_rate = calc_vals[ + "building_total_air_leakage_rate" + ] + target_air_leakage_rate_75pa_b = calc_vals["target_air_leakage_rate_75pa_b"] + return std_equal( + target_air_leakage_rate_75pa_b * TOTAL_AIR_LEAKAGE_FACTOR, + building_total_air_leakage_rate, + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule37.py b/rct229/rulesets/ashrae9012022/section5/section5rule37.py new file mode 100644 index 0000000000..232b7181dc --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule37.py @@ -0,0 +1,198 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import PROPOSED +from rct229.rulesets.ashrae9012022.ruleset_functions.get_building_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_building_surface_conditioning_category_dict, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_zone_conditioning_category_dict import ( + ZoneConditioningCategory as ZCC, + get_zone_conditioning_category_dict, +) +from rct229.schema.config import ureg +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + +TARGET_AIR_LEAKAGE_COEFF = 0.6 * ureg("cfm / foot**2") +TOTAL_AIR_LEAKAGE_COEFF = 0.112 + +MANUAL_CHECK_MSG = "The building total air leakage rate is not equal to the required proposed design air leakage rate at 75Pa with a Conversion Factor of 0.112 as per section G3.1.1.4. and Measured air leakage rate is not entered for all conditioned and semi-heated zones. Verify the proposed air leakage rate is modeled correctly." + + +class PRM9012022Rule67a77(RuleDefinitionListIndexedBase): + """Rule 37 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule67a77, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule67a77.BuildingRule(), + index_rmd=PROPOSED, + id="5-37", + description="The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section G3.1.1.4. Exceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Proposed design", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_p = context.PROPOSED + climate_zone = rpd_p["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions": constructions, + } + + class BuildingRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule67a77.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + required_fields={"$..zones[*]": ["surfaces"]}, + precision={ + "building_total_air_leakage_rate_b": { + "precision": 1, + "unit": "cfm", + } + }, + manual_check_required_msg=MANUAL_CHECK_MSG, + ) + + def get_calc_vals(self, context, data=None): + building_p = context.PROPOSED + + scc_dict_p = get_building_surface_conditioning_category_dict( + data["climate_zone"], building_p, data["constructions"] + ) + zcc_dict_p = get_zone_conditioning_category_dict( + data["climate_zone"], building_p, data["constructions"] + ) + + building_total_air_leakage_rate = ZERO.FLOW + building_total_measured_air_leakage_rate = ZERO.FLOW + empty_measured_air_leakage_rate_flow_flag = False + + building_total_envelope_area = sum( + [ + getattr_(surface, "surface", "area") + for surface in find_all("$..surfaces[*]", building_p) + if scc_dict_p[surface["id"]] != SCC.UNREGULATED + ], + ZERO.AREA, + ) + + for zone in find_all("$..zones[*]", building_p): + if zcc_dict_p[zone["id"]] in [ + ZCC.CONDITIONED_RESIDENTIAL, + ZCC.CONDITIONED_NON_RESIDENTIAL, + ZCC.CONDITIONED_MIXED, + ZCC.SEMI_HEATED, + ]: + building_total_air_leakage_rate += getattr_( + zone["infiltration"], "infiltration", "flow_rate" + ) + + measured_air_leakage_rate = zone["infiltration"].get( + "measured_air_leakage_rate" + ) + if measured_air_leakage_rate: + building_total_measured_air_leakage_rate += ( + measured_air_leakage_rate + ) + else: + empty_measured_air_leakage_rate_flow_flag = True + + target_air_leakage_rate_75pa_p = ( + TARGET_AIR_LEAKAGE_COEFF + ) * building_total_envelope_area + + return { + "building_total_air_leakage_rate": CalcQ( + "air_flow_rate", building_total_air_leakage_rate + ), + "building_total_measured_air_leakage_rate": CalcQ( + "air_flow_rate", building_total_measured_air_leakage_rate + ), + "target_air_leakage_rate_75pa_p": CalcQ( + "air_flow_rate", target_air_leakage_rate_75pa_p + ), + "empty_measured_air_leakage_rate_flow_flag": empty_measured_air_leakage_rate_flow_flag, + } + + def manual_check_required(self, context, calc_vals=None, data=None): + building_total_air_leakage_rate = calc_vals[ + "building_total_air_leakage_rate" + ] + target_air_leakage_rate_75pa_p = calc_vals["target_air_leakage_rate_75pa_p"] + empty_measured_air_leakage_rate_flow_flag = calc_vals[ + "empty_measured_air_leakage_rate_flow_flag" + ] + + return ( + not self.precision_comparison["building_total_air_leakage_rate_b"]( + building_total_air_leakage_rate, + TOTAL_AIR_LEAKAGE_COEFF * target_air_leakage_rate_75pa_p, + ) + and empty_measured_air_leakage_rate_flow_flag + ) + + def rule_check(self, context, calc_vals=None, data=None): + building_total_air_leakage_rate = calc_vals[ + "building_total_air_leakage_rate" + ] + building_total_measured_air_leakage_rate = calc_vals[ + "building_total_measured_air_leakage_rate" + ] + target_air_leakage_rate_75pa_p = calc_vals["target_air_leakage_rate_75pa_p"] + empty_measured_air_leakage_rate_flow_flag = calc_vals[ + "empty_measured_air_leakage_rate_flow_flag" + ] + + return self.precision_comparison["building_total_air_leakage_rate_b"]( + building_total_air_leakage_rate, + TOTAL_AIR_LEAKAGE_COEFF * target_air_leakage_rate_75pa_p, + ) or ( + not empty_measured_air_leakage_rate_flow_flag + and self.precision_comparison["building_total_air_leakage_rate_b"]( + building_total_air_leakage_rate, + TOTAL_AIR_LEAKAGE_COEFF * building_total_measured_air_leakage_rate, + ) + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + building_total_air_leakage_rate = calc_vals[ + "building_total_air_leakage_rate" + ] + building_total_measured_air_leakage_rate = calc_vals[ + "building_total_measured_air_leakage_rate" + ] + target_air_leakage_rate_75pa_p = calc_vals["target_air_leakage_rate_75pa_p"] + empty_measured_air_leakage_rate_flow_flag = calc_vals[ + "empty_measured_air_leakage_rate_flow_flag" + ] + + return std_equal( + TOTAL_AIR_LEAKAGE_COEFF * target_air_leakage_rate_75pa_p, + building_total_air_leakage_rate, + ) or ( + not std_equal( + building_total_air_leakage_rate, + TOTAL_AIR_LEAKAGE_COEFF * target_air_leakage_rate_75pa_p, + ) + and not empty_measured_air_leakage_rate_flow_flag + and std_equal( + TOTAL_AIR_LEAKAGE_COEFF * building_total_measured_air_leakage_rate, + building_total_air_leakage_rate, + ) + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule39.py b/rct229/rulesets/ashrae9012022/section5/section5rule39.py new file mode 100644 index 0000000000..c38a5dfdae --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule39.py @@ -0,0 +1,279 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.pint_utils import ZERO, CalcQ +from rct229.utils.std_comparisons import std_equal + +DOOR = SchemaEnums.schema_enums["SubsurfaceClassificationOptions"].DOOR + +SUBSURFACE_SUBCLASSIFICATION_OPTIONS = SchemaEnums.schema_enums[ + "SubsurfaceSubclassificationOptions2019ASHRAE901" +] + +SPANDREL_GLASS = SUBSURFACE_SUBCLASSIFICATION_OPTIONS.SPANDREL_GLASS +GLASS_BLOCK = SUBSURFACE_SUBCLASSIFICATION_OPTIONS.GLASS_BLOCK +OTHER = SUBSURFACE_SUBCLASSIFICATION_OPTIONS.OTHER + +UNEXPECTED_DOOR = [SPANDREL_GLASS, GLASS_BLOCK, OTHER] + + +class PRM9012022Rule50m61(RuleDefinitionListIndexedBase): + """Rule 39 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule50m61, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule50m61.BuildingRule(), + index_rmd=BASELINE_0, + id="5-39", + description="U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door " + "type (swinging or non-swinging) and envelope conditioning category.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline model", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rpd_p["ruleset_model_descriptions"][0].get("constructions") + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule50m61.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule50m61.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + return ( + data["scc_dict_b"][surface_b["id"]] != SCC.UNREGULATED + and len(surface_b.get("subsurfaces", [])) > 0 + ) + + class SurfaceRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule50m61.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + list_path="$.subsurfaces[*]", + each_rule=PRM9012022Rule50m61.BuildingRule.SurfaceRule.SubSurfaceRule(), + index_rmd=BASELINE_0, + required_fields={ + "$.subsurfaces[*]": [ + "classification", + "glazed_area", + "opaque_area", + ], + }, + ) + + def create_data(self, context, data): + surface_b = context.BASELINE_0 + return {"scc_dict_b": data["scc_dict_b"][surface_b["id"]]} + + def list_filter(self, context_item, data): + subsurface_b = context_item.BASELINE_0 + return ( + subsurface_b["classification"] == DOOR + and subsurface_b["glazed_area"] <= subsurface_b["opaque_area"] + ) + + class SubSurfaceRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule50m61.BuildingRule.SurfaceRule.SubSurfaceRule, + self, + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["subclassification", "u_factor"], + }, + precision={ + "subsurface_u_factor_b": { + "precision": 0.01, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + subsurface_b = context.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + climate_zone = data["climate_zone"] + u_factor_b = subsurface_b["u_factor"] + subsurface_class_b = subsurface_b["subclassification"] + target_u_factor_b = ZERO.U_FACTOR + + target_u_factor_nonres_b = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_NON_RESIDENTIAL, + DOOR, + classification=subsurface_class_b, + )["u_value"] + if subsurface_class_b not in UNEXPECTED_DOOR + else ZERO.U_FACTOR + ) + + target_u_factor_res_b = ( + table_G34_lookup( + climate_zone, + SCC.EXTERIOR_RESIDENTIAL, + DOOR, + classification=subsurface_class_b, + )["u_value"] + if subsurface_class_b not in UNEXPECTED_DOOR + else ZERO.U_FACTOR + ) + + target_u_factor_semiheated_b = ( + table_G34_lookup( + climate_zone, + SCC.SEMI_EXTERIOR, + DOOR, + classification=subsurface_class_b, + )["u_value"] + if subsurface_class_b not in UNEXPECTED_DOOR + else ZERO.U_FACTOR + ) + + if scc_dict_b == SCC.EXTERIOR_NON_RESIDENTIAL: + target_u_factor_b = target_u_factor_nonres_b + elif scc_dict_b == SCC.EXTERIOR_RESIDENTIAL: + target_u_factor_b = target_u_factor_res_b + elif scc_dict_b == SCC.SEMI_EXTERIOR: + target_u_factor_b = target_u_factor_semiheated_b + elif target_u_factor_nonres_b == target_u_factor_res_b: + target_u_factor_b = target_u_factor_nonres_b + else: + assert scc_dict_b == SCC.EXTERIOR_MIXED, ( + f"Surface conditioning category is not one of the five types: EXTERIOR_NON_RESIDENTIAL, " + f"EXTERIOR_RESIDENTIAL, SEMI_EXTERIOR, EXTERIOR_MIXED, UNREGULATED, " + f"got {scc_dict_b} instead " + ) + manual_check_required_flag = ( + scc_dict_b == SCC.EXTERIOR_MIXED + and target_u_factor_nonres_b != target_u_factor_res_b + ) + + return { + "scc_dict_b": scc_dict_b, + "subsurface_class_b": subsurface_class_b, + "target_u_factor_res_b": CalcQ( + "thermal_transmittance", target_u_factor_res_b + ), + "target_u_factor_nonres_b": CalcQ( + "thermal_transmittance", target_u_factor_nonres_b + ), + "u_factor_b": CalcQ("thermal_transmittance", u_factor_b), + "target_u_factor_b": CalcQ( + "thermal_transmittance", target_u_factor_b + ), + "manual_check_required_flag": manual_check_required_flag, + } + + def manual_check_required(self, context, calc_vals=None, data=None): + manual_check_required_flag = calc_vals["manual_check_required_flag"] + target_u_factor_res_b = calc_vals["target_u_factor_res_b"] + target_u_factor_nonres_b = calc_vals["target_u_factor_nonres_b"] + subsurface_class_b = calc_vals["subsurface_class_b"] + u_factor_b = calc_vals["u_factor_b"] + + return subsurface_class_b in UNEXPECTED_DOOR or ( + manual_check_required_flag + and ( + std_equal(u_factor_b, target_u_factor_nonres_b) + or std_equal(u_factor_b, target_u_factor_res_b) + ) + ) + + def get_manual_check_required_msg( + self, context, calc_vals=None, data=None + ): + u_factor_b = calc_vals["u_factor_b"] + manual_check_required_flag = calc_vals["manual_check_required_flag"] + target_u_factor_res_b = calc_vals["target_u_factor_res_b"] + target_u_factor_nonres_b = calc_vals["target_u_factor_nonres_b"] + manual_check_required_msg = ( + f"Prescribed u-factor requirement could not be determined. Verify " + f"the baseline door u-factor (${u_factor_b}) is modeled correctly." + if manual_check_required_flag + and ( + self.precision_comparison["subsurface_u_factor_b"]( + u_factor_b, target_u_factor_nonres_b + ) + or self.precision_comparison["subsurface_u_factor_b"]( + u_factor_b, target_u_factor_res_b + ) + ) + else "" + ) + return manual_check_required_msg + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["subsurface_u_factor_b"]( + calc_vals["u_factor_b"], calc_vals["target_u_factor_b"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + u_factor_b = calc_vals["u_factor_b"] + target_u_factor_b = calc_vals["target_u_factor_b"] + return std_equal(target_u_factor_b, u_factor_b) + + def get_fail_msg(self, context, calc_vals=None, data=None): + u_factor_b = calc_vals["u_factor_b"] + target_u_factor_b = calc_vals["target_u_factor_b"] + fail_msg = ( + "Rule evaluation fails with a conservative outcome." + if ( + self.precision_comparison["subsurface_u_factor_b"]( + u_factor_b, target_u_factor_b + ) + or u_factor_b < target_u_factor_b + ) + else "" + ) + return fail_msg diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule4.py b/rct229/rulesets/ashrae9012022/section5/section5rule4.py new file mode 100644 index 0000000000..b4f2648549 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule4.py @@ -0,0 +1,171 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal +from rct229.utils.assertions import assert_ + + +class PRM9012022Rule43n21(RuleDefinitionListIndexedBase): + """Rule 4 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule43n21, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule43n21.BuildingRule(), + index_rmd=BASELINE_0, + id="5-4", + description="Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule43n21.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule43n21.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["surface_conditioning_category_dict"][surface_b["id"]] + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and scc is not SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule43n21.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={"$": ["construction"]}, + precision={ + "roof_u_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + climate_zone: str = data["climate_zone"] + constructions_b = data["constructions_b"] + roof = context.BASELINE_0 + scc: str = data["surface_conditioning_category_dict"][roof["id"]] + roof_u_factor = next( + ( + construction.get("u_factor") + for construction in constructions_b + if construction["id"] == roof["construction"] + ) + ) + assert_( + roof_u_factor is not None, + f"U-factor for roof construction '{roof['construction']}' is missing", + ) + target_u_factor = None + target_u_factor_res = None + target_u_factor_nonres = None + + if scc in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.SEMI_EXTERIOR, + ]: + target_u_factor = table_G34_lookup(climate_zone, scc, OST.ROOF)[ + "u_value" + ] + elif scc == SCC.EXTERIOR_MIXED: + target_u_factor_res = table_G34_lookup( + climate_zone, SCC.EXTERIOR_RESIDENTIAL, OST.ROOF + )["u_value"] + target_u_factor_nonres = table_G34_lookup( + climate_zone, SCC.EXTERIOR_NON_RESIDENTIAL, OST.ROOF + )["u_value"] + if target_u_factor_res == target_u_factor_nonres: + target_u_factor = target_u_factor_res + + return { + "roof_u_factor": CalcQ("thermal_transmittance", roof_u_factor), + "target_u_factor": CalcQ("thermal_transmittance", target_u_factor), + "target_u_factor_res": CalcQ( + "thermal_transmittance", target_u_factor_res + ), + "target_u_factor_nonres": CalcQ( + "thermal_transmittance", target_u_factor_nonres + ), + } + + def manual_check_required(self, context=None, calc_vals=None, data=None): + target_u_factor_res = calc_vals["target_u_factor_res"] + target_u_factor_nonres = calc_vals["target_u_factor_nonres"] + + return ( + target_u_factor_res is not None + and target_u_factor_nonres is not None + and target_u_factor_res != target_u_factor_nonres + ) + + def rule_check(self, context=None, calc_vals=None, data=None): + roof_u_factor = calc_vals["roof_u_factor"] + target_u_factor = calc_vals["target_u_factor"] + return self.precision_comparison["roof_u_factor_b"]( + roof_u_factor, target_u_factor + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + roof_u_factor = calc_vals["roof_u_factor"] + target_u_factor = calc_vals["target_u_factor"] + return std_equal(target_u_factor, roof_u_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule40.py b/rct229/rulesets/ashrae9012022/section5/section5rule40.py new file mode 100644 index 0000000000..895c333ddd --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule40.py @@ -0,0 +1,173 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.jsonpath_utils import find_one +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.std_comparisons import std_equal + +EXTERIOR = SchemaEnums.schema_enums["SurfaceAdjacencyOptions"].EXTERIOR + + +class PRM9012022Rule33l08(RuleDefinitionListIndexedBase): + """Rule 40 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule33l08, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule33l08.BuildingRule(), + index_rmd=BASELINE_0, + id="5-40", + description="Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be " + "modeled with the same thermal emittance and solar reflectance in the baseline as in the " + "proposed design. ", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5 Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule33l08.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule33l08.BuildingRule.RoofRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "scc_dict_b": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["scc_dict_b"][surface_b["id"]] + return ( + get_opaque_surface_type(surface_b) == OST.ROOF + and surface_b.get("adjacent_to") == EXTERIOR + and scc is SCC.UNREGULATED + ) + + class RoofRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule33l08.BuildingRule.RoofRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + precision={ + "absorptance_thermal_exterior_b": { + "precision": 0.01, + "unit": "", + }, + "absorptance_solar_exterior_b": { + "precision": 0.01, + "unit": "", + }, + }, + ) + + def get_calc_vals(self, context, data=None): + roof_b = context.BASELINE_0 + roof_p = context.PROPOSED + return { + "absorptance_solar_exterior_b": find_one( + "$.optical_properties.absorptance_solar_exterior", roof_b + ), + "absorptance_solar_exterior_p": find_one( + "$.optical_properties.absorptance_solar_exterior", roof_p + ), + "absorptance_thermal_exterior_b": find_one( + "$.optical_properties.absorptance_thermal_exterior", roof_b + ), + "absorptance_thermal_exterior_p": find_one( + "$.optical_properties.absorptance_thermal_exterior", roof_p + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_b = calc_vals["absorptance_solar_exterior_b"] + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_thermal_exterior_b = calc_vals[ + "absorptance_thermal_exterior_b" + ] + absorptance_thermal_exterior_p = calc_vals[ + "absorptance_thermal_exterior_p" + ] + return any( + absorptance_property is None + for absorptance_property in [ + absorptance_solar_exterior_b, + absorptance_solar_exterior_p, + absorptance_thermal_exterior_b, + absorptance_thermal_exterior_p, + ] + ) + + def rule_check(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_b = calc_vals["absorptance_solar_exterior_b"] + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_thermal_exterior_b = calc_vals[ + "absorptance_thermal_exterior_b" + ] + absorptance_thermal_exterior_p = calc_vals[ + "absorptance_thermal_exterior_p" + ] + return self.precision_comparison["absorptance_solar_exterior_b"]( + absorptance_solar_exterior_b, absorptance_solar_exterior_p + ) and self.precision_comparison["absorptance_thermal_exterior_b"]( + absorptance_thermal_exterior_b, absorptance_thermal_exterior_p + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_b = calc_vals["absorptance_solar_exterior_b"] + absorptance_solar_exterior_p = calc_vals["absorptance_solar_exterior_p"] + absorptance_thermal_exterior_b = calc_vals[ + "absorptance_thermal_exterior_b" + ] + absorptance_thermal_exterior_p = calc_vals[ + "absorptance_thermal_exterior_p" + ] + return std_equal( + absorptance_solar_exterior_b, absorptance_solar_exterior_p + ) and std_equal( + absorptance_thermal_exterior_b, absorptance_thermal_exterior_p + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule42.py b/rct229/rulesets/ashrae9012022/section5/section5rule42.py new file mode 100644 index 0000000000..ac14defdb5 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule42.py @@ -0,0 +1,100 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012019 import PROPOSED +from rct229.rulesets.ashrae9012019.ruleset_functions.get_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, +) +from rct229.rulesets.ashrae9012019.ruleset_functions.get_surface_conditioning_category_dict import ( + get_surface_conditioning_category_dict, +) + + +class PRM9012019Rule82e93(RuleDefinitionListIndexedBase): + """Rule 42 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012019Rule82e93, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + id="5-42", + description="Each linear thermal bridge and point thermal bridge as identified in Section 5.5.5 shall be modeled using either of the following techniques:" + "a. A separate model of the assembly within the energy simulation model. b. Adjustment of the clear-field U-factor in accordance with Section A10.2.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5 Building Envelope Modeling Requirements for the Proposed building", + is_primary_rule=False, + each_rule=PRM9012019Rule82e93.BuildingRule(), + index_rmd=PROPOSED, + list_path="ruleset_model_descriptions[0].buildings[*]", + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + ) + + def create_data(self, context, data=None): + rpd_p = context.PROPOSED + climate_zone_p = rpd_p["ruleset_model_descriptions"][0]["weather"][ + "climate_zone" + ] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + + return { + "climate_zone_p": climate_zone_p, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012019Rule82e93.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012019Rule82e93.BuildingRule.SurfaceRule(), + index_rmd=PROPOSED, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def is_applicable(self, context, data=None): + building_p = context.PROPOSED + climate_zone_p = data["climate_zone_p"] + constructions_p = data["constructions_p"] + + scc_dictionary_p = get_surface_conditioning_category_dict( + climate_zone_p, building_p, constructions_p + ) + + return scc_dictionary_p + + def create_data(self, context, data): + building_p = context.PROPOSED + climate_zone_p = data["climate_zone_p"] + constructions_p = data["constructions_p"] + + scc_dictionary_p = get_surface_conditioning_category_dict( + climate_zone_p, building_p, constructions_p + ) + + return {"scc_dictionary_p": scc_dictionary_p} + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012019Rule82e93.BuildingRule.SurfaceRule, self,).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + ) + + def get_calc_vals(self, context, data=None): + surface_p = context.PROPOSED + scc_dictionary_p = data["scc_dictionary_p"] + surface_con_category_p = scc_dictionary_p[surface_p["id"]] + + return {"surface_con_category_p": surface_con_category_p} + + def applicability_check(self, context, calc_vals, data): + surface_con_category_p = calc_vals["surface_con_category_p"] + + return surface_con_category_p != SCC.UNREGULATED diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule43.py b/rct229/rulesets/ashrae9012022/section5/section5rule43.py new file mode 100644 index 0000000000..c03b4fc494 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule43.py @@ -0,0 +1,93 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.jsonpath_utils import find_all + +SURFACE_ADJACENCY = SchemaEnums.schema_enums["SurfaceAdjacencyOptions"] + + +class PRM9012022Rule86r63(RuleDefinitionListIndexedBase): + """Rule 43 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule86r63, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule86r63.BuildingRule(), + index_rmd=BASELINE_0, + id="5-43", + description="Automatic fenestration shading devices shall not be modeled in the Baseline.", + ruleset_section_title="Envelope", + standard_section="Appendix G Section:** Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="$.buildings[*]", + rmd_context="ruleset_model_descriptions/0", + ) + + def is_applicable(self, context, data=None): + rmd_b = context.BASELINE_0 + + return find_all( + "$.buildings[*].building_segments[*].zones[*].surfaces[*].subsurfaces[*]", + rmd_b, + ) + + class BuildingRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule86r63.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + building_b = context.BASELINE_0 + + automatic_shades_modeled_data_b = [ + { + "has_automatic_shades": subsurface_b.get( + "has_automatic_shades", False + ), + "id": subsurface_b["id"], + } + for surface_b in find_all( + "$.building_segments[*].zones[*].surfaces[*]", building_b + ) + if surface_b.get("adjacent_to") == SURFACE_ADJACENCY.EXTERIOR + for subsurface_b in surface_b.get("subsurfaces", []) + ] + + automatic_shades_modeled_list_b = any( + [ + data["has_automatic_shades"] + for data in automatic_shades_modeled_data_b + ] + ) + automatic_shades_modeled_id_list_b = [ + data["id"] for data in automatic_shades_modeled_data_b + ] + + return { + "automatic_shades_modeled_list_b": automatic_shades_modeled_list_b, + "automatic_shades_modeled_id_list_b": automatic_shades_modeled_id_list_b, + } + + def rule_check(self, context, calc_vals=None, data=None): + automatic_shades_modeled_list_b = calc_vals[ + "automatic_shades_modeled_list_b" + ] + + return not automatic_shades_modeled_list_b + + def get_fail_msg(self, context, calc_vals=None, data=None): + automatic_shades_modeled_id_list_b = calc_vals[ + "automatic_shades_modeled_id_list_b" + ] + + return ( + f"Baseline model incorrectly includes automatic fenestration shading devices. " + f"Address this issue for the following subsurfaces: {', '.join(automatic_shades_modeled_id_list_b)}" + ) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule44.py b/rct229/rulesets/ashrae9012022/section5/section5rule44.py new file mode 100644 index 0000000000..c9fde2026f --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule44.py @@ -0,0 +1,121 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.utils.assertions import getattr_ +from rct229.utils.std_comparisons import std_equal + +REQ_ABS_SOLAR_EXT = 0.75 + + +class PRM9012022Rule13d92(RuleDefinitionListIndexedBase): + """Rule 44 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule13d92, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule13d92.BuildingRule(), + index_rmd=BASELINE_0, + id="5-44", + description="The baseline above-grade wall surfaces shall be modeled with a solar reflectance of 0.25.", + ruleset_section_title="Envelope", + standard_section="Table G3.1 Section 5(j) Baseline", + is_primary_rule=True, + list_path="$.ruleset_model_descriptions[*].buildings[*]", + ) + + def create_data(self, context, data=None): + rmd_b = context.BASELINE_0 + rmd_p = context.PROPOSED + climate_zone_b = rmd_b["ruleset_model_descriptions"][0]["weather"][ + "climate_zone" + ] + constructions_b = rmd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rmd_p["ruleset_model_descriptions"][0].get("constructions") + + return { + "climate_zone_b": climate_zone_b, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule13d92.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule13d92.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone_b = data["climate_zone_b"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + + scc_dict_b = get_baseline_surface_conditioning_category_dict( + climate_zone_b, building_b, constructions_b, building_p, constructions_p + ) + + return {"scc_dict_b": scc_dict_b} + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + + return ( + get_opaque_surface_type(surface_b) == OpaqueSurfaceType.ABOVE_GRADE_WALL + and scc_dict_b[surface_b["id"]] != SCC.UNREGULATED + ) + + class SurfaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule13d92.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + precision={ + "absorptance_solar_exterior_b": { + "precision": 0.01, + "unit": "", + }, + }, + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + + absorptance_solar_exterior_b = getattr_( + surface_b, + "surfaces", + "optical_properties", + "absorptance_solar_exterior", + ) + + return {"absorptance_solar_exterior_b": absorptance_solar_exterior_b} + + def rule_check(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_b = calc_vals["absorptance_solar_exterior_b"] + + return self.precision_comparison["absorptance_solar_exterior_b"]( + absorptance_solar_exterior_b, REQ_ABS_SOLAR_EXT + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + absorptance_solar_exterior_b = calc_vals["absorptance_solar_exterior_b"] + + return std_equal(absorptance_solar_exterior_b, REQ_ABS_SOLAR_EXT) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule45.py b/rct229/rulesets/ashrae9012022/section5/section5rule45.py new file mode 100644 index 0000000000..90a82766f2 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule45.py @@ -0,0 +1,127 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.utils.assertions import getattr_ +from rct229.utils.std_comparisons import std_equal + +REQ_ABS_THERMAL_EXT = 0.9 + + +class PRM9012022Rule22f12(RuleDefinitionListIndexedBase): + """Rule 45 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule22f12, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule22f12.BuildingRule(), + index_rmd=BASELINE_0, + id="5-45", + description="The baseline above-grade wall surfaces shall be modeled with a thermal emittance of 0.90.", + ruleset_section_title="Envelope", + standard_section="Table G3.1 Section 5(j) Baseline", + is_primary_rule=True, + list_path="$.ruleset_model_descriptions[*].buildings[*]", + ) + + def create_data(self, context, data=None): + rmd_b = context.BASELINE_0 + rmd_p = context.PROPOSED + climate_zone_b = rmd_b["ruleset_model_descriptions"][0]["weather"][ + "climate_zone" + ] + constructions_b = rmd_b["ruleset_model_descriptions"][0].get("constructions") + constructions_p = rmd_p["ruleset_model_descriptions"][0].get("constructions") + + return { + "climate_zone_b": climate_zone_b, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule22f12.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule22f12.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + climate_zone_b = data["climate_zone_b"] + constructions_b = data["constructions_b"] + constructions_p = data["constructions_p"] + + scc_dict_b = get_baseline_surface_conditioning_category_dict( + climate_zone_b, building_b, constructions_b, building_p, constructions_p + ) + + return {"scc_dict_b": scc_dict_b} + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + scc_dict_b = data["scc_dict_b"] + + return ( + get_opaque_surface_type(surface_b) == OpaqueSurfaceType.ABOVE_GRADE_WALL + and scc_dict_b[surface_b["id"]] != SCC.UNREGULATED + ) + + class SurfaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule22f12.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + precision={ + "absorptance_thermal_exterior_b": { + "precision": 0.01, + "unit": "", + }, + }, + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + + absorptance_thermal_exterior_b = getattr_( + surface_b, + "surfaces", + "optical_properties", + "absorptance_thermal_exterior", + ) + + return { + "absorptance_thermal_exterior_b": absorptance_thermal_exterior_b + } + + def rule_check(self, context, calc_vals=None, data=None): + absorptance_thermal_exterior_b = calc_vals[ + "absorptance_thermal_exterior_b" + ] + + return self.precision_comparison["absorptance_thermal_exterior_b"]( + absorptance_thermal_exterior_b, REQ_ABS_THERMAL_EXT + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + absorptance_thermal_exterior_b = calc_vals[ + "absorptance_thermal_exterior_b" + ] + + return std_equal(absorptance_thermal_exterior_b, REQ_ABS_THERMAL_EXT) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule5.py b/rct229/rulesets/ashrae9012022/section5/section5rule5.py new file mode 100644 index 0000000000..867ec32db9 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule5.py @@ -0,0 +1,97 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) + + +class PRM9012022Rule02s62(RuleDefinitionListIndexedBase): + """Rule 5 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule02s62, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule02s62.BuildingRule(), + index_rmd=BASELINE_0, + id="5-5", + description="Baseline below-grade walls shall conform with assemblies detailed in Appendix A Concrete block, A4)", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=False, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule02s62.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule02s62.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return get_opaque_surface_type(surface_b) == OST.BELOW_GRADE_WALL + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012022Rule02s62.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_conditioning_category_dict = data[ + "surface_conditioning_category_dict" + ] + surface_category = surface_conditioning_category_dict[surface_b["id"]] + return { + "surface_category": surface_category, + } + + def applicability_check(self, context, calc_vals, data): + surface_category = calc_vals["surface_category"] + return surface_category != SCC.UNREGULATED diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule6.py b/rct229/rulesets/ashrae9012022/section5/section5rule6.py new file mode 100644 index 0000000000..2b171a9f9f --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule6.py @@ -0,0 +1,176 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal +from rct229.utils.assertions import assert_ + + +class PRM9012022Rule70u00(RuleDefinitionListIndexedBase): + """Rule 6 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule70u00, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule70u00.BuildingRule(), + index_rmd=BASELINE_0, + list_path="ruleset_model_descriptions[0].buildings[*]", + id="5-6", + description="Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Table G3.4-1 through G3.4-8.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule70u00.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule70u00.BuildingRule.BelowGradeWallRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["surface_conditioning_category_dict"][surface_b["id"]] + return ( + get_opaque_surface_type(surface_b) == OST.BELOW_GRADE_WALL + and scc is not SCC.UNREGULATED + ) + + class BelowGradeWallRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule70u00.BuildingRule.BelowGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["construction"], + }, + precision={ + "bg_wall_c_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + climate_zone: str = data["climate_zone"] + constructions_b = data["constructions_b"] + below_grade_wall = context.BASELINE_0 + scc: str = data["surface_conditioning_category_dict"][ + below_grade_wall["id"] + ] + wall_c_factor = next( + ( + construction.get("c_factor") + for construction in constructions_b + if construction["id"] == below_grade_wall["construction"] + ) + ) + assert_( + wall_c_factor is not None, + f"C-factor for below grade wall construction '{below_grade_wall['construction']}' is missing", + ) + target_c_factor = None + target_c_factor_res = None + target_c_factor_nonres = None + + if scc in [ + SCC.SEMI_EXTERIOR, + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + ]: + target_c_factor = table_G34_lookup( + climate_zone, scc, OST.BELOW_GRADE_WALL + )["c_factor"] + elif scc == SCC.EXTERIOR_MIXED: + target_c_factor_res = table_G34_lookup( + climate_zone, SCC.EXTERIOR_RESIDENTIAL, OST.BELOW_GRADE_WALL + )["c_factor"] + target_c_factor_nonres = table_G34_lookup( + climate_zone, SCC.EXTERIOR_NON_RESIDENTIAL, OST.BELOW_GRADE_WALL + )["c_factor"] + + if target_c_factor_res == target_c_factor_nonres: + target_c_factor = target_c_factor_res + + return { + "below_grade_wall_c_factor": CalcQ( + "thermal_transmittance", wall_c_factor + ), + "target_c_factor": CalcQ("thermal_transmittance", target_c_factor), + "target_c_factor_res": CalcQ( + "thermal_transmittance", target_c_factor_res + ), + "target_c_factor_nonres": CalcQ( + "thermal_transmittance", target_c_factor_nonres + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + target_c_factor_res = calc_vals["target_c_factor_res"] + target_c_factor_nonres = calc_vals["target_c_factor_nonres"] + return ( + target_c_factor_res is not None + and target_c_factor_nonres is not None + and target_c_factor_res != target_c_factor_nonres + ) + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["bg_wall_c_factor_b"]( + calc_vals["below_grade_wall_c_factor"], calc_vals["target_c_factor"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + below_grade_wall_c_factor = calc_vals["below_grade_wall_c_factor"] + target_c_factor = calc_vals["target_c_factor"] + return std_equal(target_c_factor, below_grade_wall_c_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule7.py b/rct229/rulesets/ashrae9012022/section5/section5rule7.py new file mode 100644 index 0000000000..49e4884e7c --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule7.py @@ -0,0 +1,97 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) + + +class PRM9012022Rule20r05(RuleDefinitionListIndexedBase): + """Rule 7 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule20r05, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule20r05.BuildingRule(), + index_rmd=BASELINE_0, + id="5-7", + description="Baseline above-grade wall assemblies must conform with assemblies detailed in Appendix A (Steel-framed A3.3) ", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=False, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule20r05.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule20r05.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012022Rule20r05.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_conditioning_category_dict = data[ + "surface_conditioning_category_dict" + ] + surface_category = surface_conditioning_category_dict[surface_b["id"]] + return { + "surface_category": surface_category, + } + + def applicability_check(self, context, calc_vals, data): + surface_category = calc_vals["surface_category"] + return surface_category != SCC.UNREGULATED diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule8.py b/rct229/rulesets/ashrae9012022/section5/section5rule8.py new file mode 100644 index 0000000000..ab0d0669fb --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule8.py @@ -0,0 +1,173 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.data_fns.table_G3_4_fns import table_G34_lookup +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal +from rct229.utils.assertions import assert_ + + +class PRM9012022Rule48v87(RuleDefinitionListIndexedBase): + """Rule 8 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule48v87, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule48v87.BuildingRule(), + index_rmd=BASELINE_0, + id="5-8", + description="Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8.", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule48v87.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={}, + each_rule=PRM9012022Rule48v87.BuildingRule.AboveGradeWallRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data=None): + surface_b = context_item.BASELINE_0 + scc = data["surface_conditioning_category_dict"][surface_b["id"]] + return ( + get_opaque_surface_type(surface_b) == OST.ABOVE_GRADE_WALL + and scc is not SCC.UNREGULATED + ) + + class AboveGradeWallRule(RuleDefinitionBase): + def __init__(self): + super( + PRM9012022Rule48v87.BuildingRule.AboveGradeWallRule, self + ).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={ + "$": ["construction"], + }, + precision={ + "ag_wall_u_factor_b": { + "precision": 0.001, + "unit": "Btu/(hr*ft2*R)", + } + }, + ) + + def get_calc_vals(self, context, data=None): + climate_zone: str = data["climate_zone"] + constructions = data["constructions_b"] + above_grade_wall = context.BASELINE_0 + scc: str = data["surface_conditioning_category_dict"][ + above_grade_wall["id"] + ] + wall_u_factor = next( + ( + construction.get("u_factor") + for construction in constructions + if construction["id"] == above_grade_wall["construction"] + ) + ) + assert_( + wall_u_factor is not None, + f"U-factor for above grade wall construction '{above_grade_wall['construction']}' is missing", + ) + + target_u_factor = None + target_u_factor_res = None + target_u_factor_nonres = None + + if scc in [ + SCC.EXTERIOR_RESIDENTIAL, + SCC.EXTERIOR_NON_RESIDENTIAL, + SCC.SEMI_EXTERIOR, + ]: + target_u_factor = table_G34_lookup( + climate_zone, scc, OST.ABOVE_GRADE_WALL + )["u_value"] + elif scc == SCC.EXTERIOR_MIXED: + target_u_factor_res = table_G34_lookup( + climate_zone, SCC.EXTERIOR_RESIDENTIAL, OST.ABOVE_GRADE_WALL + )["u_value"] + target_u_factor_nonres = table_G34_lookup( + climate_zone, SCC.EXTERIOR_NON_RESIDENTIAL, OST.ABOVE_GRADE_WALL + )["u_value"] + if target_u_factor_res == target_u_factor_nonres: + target_u_factor = target_u_factor_res + + return { + "above_grade_wall_u_factor": CalcQ( + "thermal_transmittance", wall_u_factor + ), + "target_u_factor": CalcQ("thermal_transmittance", target_u_factor), + "target_u_factor_res": CalcQ( + "thermal_transmittance", target_u_factor_res + ), + "target_u_factor_nonres": CalcQ( + "thermal_transmittance", target_u_factor_nonres + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + target_u_factor_res = calc_vals["target_u_factor_res"] + target_u_factor_nonres = calc_vals["target_u_factor_nonres"] + + return target_u_factor_res != target_u_factor_nonres + + def rule_check(self, context, calc_vals=None, data=None): + return self.precision_comparison["ag_wall_u_factor_b"]( + calc_vals["above_grade_wall_u_factor"], calc_vals["target_u_factor"] + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + above_grade_wall_u_factor = calc_vals["above_grade_wall_u_factor"] + target_u_factor = calc_vals["target_u_factor"] + return std_equal(target_u_factor, above_grade_wall_u_factor) diff --git a/rct229/rulesets/ashrae9012022/section5/section5rule9.py b/rct229/rulesets/ashrae9012022/section5/section5rule9.py new file mode 100644 index 0000000000..82164a012f --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section5/section5rule9.py @@ -0,0 +1,103 @@ +from rct229.rule_engine.partial_rule_definition import PartialRuleDefinition +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.rulesets.ashrae9012022.ruleset_functions.get_opaque_surface_type import ( + OpaqueSurfaceType as OST, + get_opaque_surface_type, +) +from rct229.rulesets.ashrae9012022.ruleset_functions.get_baseline_surface_conditioning_category_dict import ( + SurfaceConditioningCategory as SCC, + get_baseline_surface_conditioning_category_dict, +) + + +class PRM9012022Rule38m70(RuleDefinitionListIndexedBase): + """Rule 9 of ASHRAE 90.1-2022 Appendix G Section 5 (Envelope)""" + + def __init__(self): + super(PRM9012022Rule38m70, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + required_fields={ + "$.ruleset_model_descriptions[*]": ["weather", "constructions"], + "$.ruleset_model_descriptions[*].weather": ["climate_zone"], + }, + each_rule=PRM9012022Rule38m70.BuildingRule(), + index_rmd=BASELINE_0, + id="5-9", + description="Baseline floor assemblies must conform with assemblies detailed in Appendix A (Floors—Steel-joist (A5.3))", + ruleset_section_title="Envelope", + standard_section="Section G3.1-5(b) Building Envelope Modeling Requirements for the Baseline building", + is_primary_rule=False, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + def create_data(self, context, data=None): + rpd_b = context.BASELINE_0 + rpd_p = context.PROPOSED + climate_zone = rpd_b["ruleset_model_descriptions"][0]["weather"]["climate_zone"] + constructions_b = rpd_b["ruleset_model_descriptions"][0]["constructions"] + constructions_p = rpd_p["ruleset_model_descriptions"][0]["constructions"] + return { + "climate_zone": climate_zone, + "constructions_b": constructions_b, + "constructions_p": constructions_p, + } + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule38m70.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule38m70.BuildingRule.SurfaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].surfaces[*]", + ) + + def create_data(self, context, data=None): + building_b = context.BASELINE_0 + building_p = context.PROPOSED + return { + "surface_conditioning_category_dict": get_baseline_surface_conditioning_category_dict( + data["climate_zone"], + building_b, + data["constructions_b"], + building_p, + data["constructions_p"], + ), + } + + def list_filter(self, context_item, data): + surface_b = context_item.BASELINE_0 + return get_opaque_surface_type(surface_b) == OST.FLOOR + + class SurfaceRule(PartialRuleDefinition): + def __init__(self): + super(PRM9012022Rule38m70.BuildingRule.SurfaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + ) + + def get_calc_vals(self, context, data=None): + surface_b = context.BASELINE_0 + surface_conditioning_category_dict = data[ + "surface_conditioning_category_dict" + ] + surface_category = surface_conditioning_category_dict[surface_b["id"]] + return { + "surface_category": surface_category, + } + + def applicability_check(self, context, calc_vals, data): + surface_category = calc_vals["surface_category"] + return surface_category != SCC.UNREGULATED + + def get_manual_check_required_msg(self, context, calc_vals=None, data=None): + surface_b = context.BASELINE_0 + surface_id_b = surface_b["id"] + + return f"{surface_id_b} is a regulated floor surface. Conduct a manual check to confirm that Baseline floor assemblies conform with assemblies detailed in Appendix A." diff --git a/rct229/rulesets/ashrae9012022/section6/__init__.py b/rct229/rulesets/ashrae9012022/section6/__init__.py new file mode 100644 index 0000000000..59d846d0e4 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section6/__init__.py @@ -0,0 +1,20 @@ +# Add all available rule modules in __all__ +import importlib + +__all__ = [ + "section6rule11", + "section6rule12", + "section6rule13", +] + +SHORT_NAME = "LTG" + + +def __getattr__(name): + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def __dir__(): + return sorted(__all__) diff --git a/rct229/rulesets/ashrae9012022/section6/section6rule11.py b/rct229/rulesets/ashrae9012022/section6/section6rule11.py new file mode 100644 index 0000000000..368414a87a --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section6/section6rule11.py @@ -0,0 +1,187 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all +from rct229.utils.pint_utils import CalcQ +from rct229.utils.std_comparisons import std_equal + +LIGHTING_PURPOSE = SchemaEnums.schema_enums["LightingPurposeOptions2019ASHRAE901"] + +MANUAL_CHECK_REQUIRED_MSG = ( + "It could not be determined whether the baseline retail display lighting power is modeled correctly " + "as the minimum of the proposed retail display lighting power and the allowance calculated according to the formulas in ASHRAE 90.1 Section 9.5.2.2(b)." +) + + +class PRM9012022Rule23o29(RuleDefinitionListIndexedBase): + """Rule 11 of ASHRAE 90.1-2022 Appendix G Section 6 (Lighting)""" + + def __init__(self): + super(PRM9012022Rule23o29, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule23o29.BuildingRule(), + index_rmd=BASELINE_0, + id="6-11", + description="Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), " + "the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less.", + ruleset_section_title="Lighting", + standard_section="G3.1 #6 Baseline column", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule23o29.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + each_rule=PRM9012022Rule23o29.BuildingRule.SpaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].spaces[*]", + ) + + def is_applicable(self, context, data=None): + building_p = context.PROPOSED + + return len( + find_all( + "$.building_segments[*].zones[*].spaces[*].interior_lighting[*]", + building_p, + ) + ) > 0 and any( + [ + interior_lighting.get("purpose_type") + == LIGHTING_PURPOSE.RETAIL_DISPLAY + for interior_lighting in find_all( + "$.building_segments[*].zones[*].spaces[*].interior_lighting[*]", + building_p, + ) + ] + ) + + def list_filter(self, context_item, data): + space_p = context_item.PROPOSED + + return space_p.get("interior_lighting") + + class SpaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule23o29.BuildingRule.SpaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=True + ), + precision={ + "minimum_retail_display_w": { + "precision": 1, + "unit": "W", + }, + "baseline_interior_display_w": { + "precision": 1, + "unit": "W", + }, + }, + manual_check_required_msg=MANUAL_CHECK_REQUIRED_MSG, + ) + + def get_calc_vals(self, context, data=None): + space_b = context.BASELINE_0 + space_p = context.PROPOSED + + # 9.5.2.2(b) gives a formula + # (750 W + (Retail Area 1 × 0.40 W/ft2) + (Retail Area 2 × 0.40 W/ft2) + (Retail Area 3 × 0.70 W/ft2) + (Retail Area 4 × 1.00 W/ft2)) + # for retail display lighting that is based on four area categories. + # We don't have access to these four area categories in the schema, so we will calculate the maximum and minimum values possible based on this function. + + maximum_retail_display_w = 750 * ureg("W") + space_p["floor_area"].to( + "ft2" + ) * 1.0 * ureg("W/ft2") + minimum_retail_display_w = 750 * ureg("W") + + baseline_interior_display_w = sum( + [ + interior_lighting_b.get("power_per_area", 0.0 * ureg("W/m2")) + * space_b.get("floor_area", 0.0 * ureg("m2")) + for interior_lighting_b in space_b["interior_lighting"] + if ( + interior_lighting_b.get("purpose_type") + == LIGHTING_PURPOSE.RETAIL_DISPLAY + ) + ] + ) + + proposed_interior_display_w = sum( + [ + interior_lighting_p.get("power_per_area", 0.0 * ureg("W/m2")) + * space_p.get("floor_area", 0.0 * ureg("m2")) + for interior_lighting_p in space_p["interior_lighting"] + if ( + interior_lighting_p.get("purpose_type") + == LIGHTING_PURPOSE.RETAIL_DISPLAY + ) + ] + ) + + return { + "maximum_retail_display_w": CalcQ( + "electric_power", maximum_retail_display_w + ), + "minimum_retail_display_w": CalcQ( + "electric_power", minimum_retail_display_w + ), + "baseline_interior_display_w": CalcQ( + "electric_power", baseline_interior_display_w + ), + "proposed_interior_display_w": CalcQ( + "electric_power", proposed_interior_display_w + ), + } + + def manual_check_required(self, context, calc_vals=None, data=None): + maximum_retail_display_w = calc_vals["maximum_retail_display_w"] + minimum_retail_display_w = calc_vals["minimum_retail_display_w"] + baseline_interior_display_w = calc_vals["baseline_interior_display_w"] + proposed_interior_display_w = calc_vals["proposed_interior_display_w"] + + return ( + (proposed_interior_display_w > minimum_retail_display_w) + or ( + not std_equal( + baseline_interior_display_w, proposed_interior_display_w + ) + ) + ) and ( + baseline_interior_display_w + < min(proposed_interior_display_w, maximum_retail_display_w) + ) + + def rule_check(self, context, calc_vals=None, data=None): + minimum_retail_display_w = calc_vals["minimum_retail_display_w"] + baseline_interior_display_w = calc_vals["baseline_interior_display_w"] + proposed_interior_display_w = calc_vals["proposed_interior_display_w"] + + return ( + proposed_interior_display_w < minimum_retail_display_w + or self.precision_comparison["minimum_retail_display_w"]( + minimum_retail_display_w, proposed_interior_display_w + ) + ) and self.precision_comparison["baseline_interior_display_w"]( + proposed_interior_display_w, baseline_interior_display_w + ) + + def is_tolerance_fail(self, context, calc_vals=None, data=None): + minimum_retail_display_w = calc_vals["minimum_retail_display_w"] + baseline_interior_display_w = calc_vals["baseline_interior_display_w"] + proposed_interior_display_w = calc_vals["proposed_interior_display_w"] + + return ( + proposed_interior_display_w < minimum_retail_display_w + ) and std_equal( + baseline_interior_display_w, proposed_interior_display_w + ) diff --git a/rct229/rulesets/ashrae9012022/section6/section6rule12.py b/rct229/rulesets/ashrae9012022/section6/section6rule12.py new file mode 100644 index 0000000000..4cfc286abc --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section6/section6rule12.py @@ -0,0 +1,121 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import PROPOSED +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.jsonpath_utils import find_all + +LIGHTING_SPACE = SchemaEnums.schema_enums["LightingSpaceOptions2019ASHRAE901TG37"] +LIGHTING_PURPOSE = SchemaEnums.schema_enums["LightingPurposeOptions2019ASHRAE901"] + +MANUAL_CHECK_REQUIRED_MSG = ( + "It could not be determined whether the proposed retail display lighting power is less " + "than or equal to the allowance calculated according to the formulas in ASHRAE 90.1 " + "Section 9.5.2.2(b)." +) + + +class PRM9012022Rule12d80(RuleDefinitionListIndexedBase): + """Rule 12 of ASHRAE 90.1-2022 Appendix G Section 6 (Lighting)""" + + def __init__(self): + super(PRM9012022Rule12d80, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + each_rule=PRM9012022Rule12d80.SpaceRule(), + index_rmd=PROPOSED, + id="6-12", + description="Where retail display lighting is included in the proposed building design the display lighting" + "additional power shall be less than or equal to the limits established by Section 9.5.2.2(b) ", + ruleset_section_title="Lighting", + standard_section="G1.2.1b.1 and the methodology described in Table 9.5.2.2(b)", + is_primary_rule=True, + list_path="$.buildings[*].building_segments[*].zones[*].spaces[*]", + rmd_context="ruleset_model_descriptions/0", + ) + + def is_applicable(self, context, data=None): + rmd_p = context.PROPOSED + + return any( + interior_lighting_p.get("purpose_type") == LIGHTING_PURPOSE.RETAIL_DISPLAY + for space_p in find_all( + "$.buildings[*].building_segments[*].zones[*].spaces[*]", rmd_p + ) + if space_p.get("lighting_space_type") == LIGHTING_SPACE.SALES_AREA + for interior_lighting_p in space_p.get("interior_lighting", []) + ) + + class SpaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule12d80.SpaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=False, PROPOSED=True + ), + required_fields={ + "$": ["floor_area", "interior_lighting"], + "interior_lighting[*]": ["purpose_type", "power_per_area"], + }, + precision={ + "minimum_retail_display_W": { + "precision": 1, + "unit": "W", + }, + "maximum_retail_display_W": { + "precision": 1, + "unit": "W", + }, + }, + manual_check_required_msg=MANUAL_CHECK_REQUIRED_MSG, + ) + + def get_calc_vals(self, context, data=None): + space_p = context.PROPOSED + + # 9.5.2.2(b) gives a formula + # 750 W + (Retail Area 1 × 0.40 W/ft2) + (Retail Area 2 × 0.40 W/ft2) + (Retail Area 3 × 0.70 W/ft2) + (Retail Area 4 × 1.00 W/ft2) + # for retail display lighting that is based on four area categories. + # We don't have access to these four area categories in the schema, so we will calculate the maximum and minimum values possible based on this function. + # The maximum is calculated based on 100% of the space floor area being type 4: `maximum_retail_display_W = 750 + space.floor_area * (1) + maximum_retail_display_W = 750 * ureg("W") + space_p["floor_area"].to( + "ft2" + ) * 1.0 * ureg("W/ft2") + minimum_retail_display_W = 750 * ureg("W") + proposed_interior_display_W = sum( + [ + interior_lighting_p["power_per_area"] * space_p["floor_area"] + for interior_lighting_p in space_p["interior_lighting"] + if interior_lighting_p["purpose_type"] + == LIGHTING_PURPOSE.RETAIL_DISPLAY + ] + ) + return { + "maximum_retail_display_W": maximum_retail_display_W, + "minimum_retail_display_W": minimum_retail_display_W, + "proposed_interior_display_W": proposed_interior_display_W, + } + + def manual_check_required(self, context, calc_vals=None, data=None): + maximum_retail_display_W = calc_vals["maximum_retail_display_W"] + minimum_retail_display_W = calc_vals["minimum_retail_display_W"] + proposed_interior_display_W = calc_vals["proposed_interior_display_W"] + + return ( + minimum_retail_display_W < proposed_interior_display_W + or self.precision_comparison["minimum_retail_display_W"]( + proposed_interior_display_W, minimum_retail_display_W + ) + ) and ( + proposed_interior_display_W < maximum_retail_display_W + or self.precision_comparison["maximum_retail_display_W"]( + proposed_interior_display_W, maximum_retail_display_W + ) + ) + + def rule_check(self, context, calc_vals=None, data=None): + minimum_retail_display_W = calc_vals["minimum_retail_display_W"] + proposed_interior_display_W = calc_vals["proposed_interior_display_W"] + + return proposed_interior_display_W < minimum_retail_display_W diff --git a/rct229/rulesets/ashrae9012022/section6/section6rule13.py b/rct229/rulesets/ashrae9012022/section6/section6rule13.py new file mode 100644 index 0000000000..1a8616b8f1 --- /dev/null +++ b/rct229/rulesets/ashrae9012022/section6/section6rule13.py @@ -0,0 +1,125 @@ +from rct229.rule_engine.rule_base import RuleDefinitionBase +from rct229.rule_engine.rule_list_indexed_base import RuleDefinitionListIndexedBase +from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description +from rct229.rulesets.ashrae9012022 import BASELINE_0 +from rct229.schema.config import ureg +from rct229.schema.schema_enums import SchemaEnums +from rct229.utils.assertions import getattr_ +from rct229.utils.jsonpath_utils import find_all + +LIGHTING_SPACE = SchemaEnums.schema_enums["LightingSpaceOptions2019ASHRAE901TG37"] +LIGHTING_OCCUPANCY_CONTROL = SchemaEnums.schema_enums["LightingOccupancyControlOptions"] +SPACE_FUNCTION = SchemaEnums.schema_enums["SpaceFunctionOptions"] +BUILDING_AREA_LIMIT = 5000 * ureg("ft2") + + +class PRM9012022Rule86d29(RuleDefinitionListIndexedBase): + """Rule 13 of ASHRAE 90.1-2022 Appendix G Section 6 (Lighting)""" + + def __init__(self): + super(PRM9012022Rule86d29, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule86d29.BuildingRule(), + index_rmd=BASELINE_0, + id="6-13", + description="In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + ruleset_section_title="Lighting", + standard_section="Table G3.1 #6 Baseline column", + is_primary_rule=True, + list_path="ruleset_model_descriptions[0].buildings[*]", + ) + + class BuildingRule(RuleDefinitionListIndexedBase): + def __init__(self): + super(PRM9012022Rule86d29.BuildingRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + each_rule=PRM9012022Rule86d29.BuildingRule.SpaceRule(), + index_rmd=BASELINE_0, + list_path="$.building_segments[*].zones[*].spaces[*]", + ) + + def is_applicable(self, context, data=None): + building_b = context.BASELINE_0 + + building_area_b = sum( + find_all( + "$.building_segments[*].zones[*].spaces[*].floor_area", + building_b, + ) + ) + + return building_area_b > BUILDING_AREA_LIMIT + + def list_filter(self, context_item, data): + space_b = context_item.BASELINE_0 + + return space_b.get("interior_lighting") + + class SpaceRule(RuleDefinitionBase): + def __init__(self): + super(PRM9012022Rule86d29.BuildingRule.SpaceRule, self).__init__( + rmds_used=produce_ruleset_model_description( + USER=False, BASELINE_0=True, PROPOSED=False + ), + required_fields={"$": ["lighting_space_type"]}, + ) + + def is_applicable(self, context, data=None): + space_b = context.BASELINE_0 + lighting_space_type_b = space_b["lighting_space_type"] + space_function_b = space_b.get("function") + + return lighting_space_type_b in ( + LIGHTING_SPACE.LOUNGE_BREAKROOM_ALL_OTHERS, + LIGHTING_SPACE.CONFERENCE_MEETING_MULTIPURPOSE_ROOM, + LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_PENITENTIARY, + LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER, + LIGHTING_SPACE.LABORATORY_EXCEPT_IN_OR_AS_A_CLASSROOM, + ) or ( + space_function_b == SPACE_FUNCTION.LABORATORY + and lighting_space_type_b + == LIGHTING_SPACE.CLASSROOM_LECTURE_HALL_TRAINING_ROOM_SCHOOL + ) + + def get_calc_vals(self, context, data=None): + space_b = context.BASELINE_0 + + occupancy_sensor_controls_b = [ + getattr_( + interior_lighting_b, + "interior_lighting", + "occupancy_control_type", + ) + for interior_lighting_b in space_b["interior_lighting"] + ] + occupancy_sensor_schedules_b = [ + getattr_( + interior_lighting_b, + "interior_lighting", + "are_schedules_used_for_modeling_occupancy_control", + ) + for interior_lighting_b in space_b["interior_lighting"] + ] + + return { + "occupancy_sensor_controls_b": occupancy_sensor_controls_b, + "occupancy_sensor_schedules_b": occupancy_sensor_schedules_b, + } + + def rule_check(self, context, calc_vals=None, data=None): + occupancy_sensor_controls_b = calc_vals["occupancy_sensor_controls_b"] + occupancy_sensor_schedules_b = calc_vals["occupancy_sensor_schedules_b"] + + return not any( + val + in [ + LIGHTING_OCCUPANCY_CONTROL.NONE, + LIGHTING_OCCUPANCY_CONTROL.MANUAL_ON, + None, + ] + for val in occupancy_sensor_controls_b + ) and all(occupancy_sensor_schedules_b) diff --git a/rct229/ruletest_engine/ruletest_engine.py b/rct229/ruletest_engine/ruletest_engine.py index db418036af..e6c5b53954 100644 --- a/rct229/ruletest_engine/ruletest_engine.py +++ b/rct229/ruletest_engine/ruletest_engine.py @@ -1,5 +1,6 @@ import glob import json +import importlib # from jsonpointer import JsonPointer import os @@ -7,21 +8,29 @@ from typing import Optional from pint import Quantity + from rct229.reports.ashrae9012019.ashrae901_2019_software_test_report import ( ASHRAE9012019SoftwareTestReport, ) from rct229.rule_engine.engine import evaluate_rule from rct229.rule_engine.rct_outcome_label import RCTOutcomeLabel -from rct229.rule_engine.rulesets import RuleSet, RuleSetTest -from rct229.rulesets import rulesets -from rct229.rulesets.ashrae9012019 import rules_dict as rules_hash_dict -from rct229.rulesets.ashrae9012019 import section_dict +from rct229.rule_engine.rulesets import RuleSet +import rct229.rulesets as rulesets +from rct229.ruletest_engine.ruletest_jsons import get_ruleset_test_sections from rct229.ruletest_engine.ruletest_rmd_factory import get_ruletest_rmd_models from rct229.schema.schema_enums import SchemaEnums from rct229.schema.schema_store import SchemaStore from rct229.schema.validate import validate_rpd +def get_active_ruleset_module(): + """Return the active ruleset module based on SchemaStore.SELECTED_RULESET.""" + ruleset_name = SchemaStore.SELECTED_RULESET + if not ruleset_name: + raise RuntimeError("No ruleset is currently selected in SchemaStore.") + return importlib.import_module(f"rct229.rulesets.{ruleset_name}") + + # Generates the RMD triplet dictionaries from a test_dictionary's "rmd_transformation" element. # -test_dict = Dictionary with elements 'rmd_transformations' and 'rmd_transformations/user,baseline,proposed' def generate_test_rmds(test_dict): @@ -109,7 +118,7 @@ def evaluate_outcome_enumeration_str(outcome_enumeration_str): def process_test_result(test_result, raised_message, test_dict, test_id): - """Returns a string describing whether or not a test resulted in its expected outcome + """Returns a string describing whether a test resulted in its expected outcome Parameters ---------- @@ -134,7 +143,7 @@ def process_test_result(test_result, raised_message, test_dict, test_id): outcome_text: str - String describing whether or not a test resulted in its expected outcome + String describing whether a test resulted in its expected outcome received_expected_outcome: bool @@ -161,7 +170,7 @@ def process_test_result(test_result, raised_message, test_dict, test_id): # Success and failure tied to overall_outcome = messages_matched and received_expected_outcome - + outcome_text = "" # Check if the test results agree with the expected outcome. Write an appropriate response based on their agreement if received_expected_outcome: if test_result == "pass": @@ -201,10 +210,10 @@ def process_test_result(test_result, raised_message, test_dict, test_id): def run_section_tests( - test_json_name: str, ruleset_doc: RuleSet, test_json_path: Optional[str] = None + test_json_name: str, ruleset_doc: str, test_json_path: Optional[str] = None ): """Runs all tests found in a given test JSON and prints results to console. Returns true/false describing whether - or not all tests in the JSON result in the expected outcome. + all tests in the JSON result in the expected outcome. Parameters ---------- @@ -237,8 +246,9 @@ def run_section_tests( test_json_path = os.path.join(test_json_path, test_json_name) # hash for capturing test results. Keys include: "results, log" - test_result_dict = {} - test_result_dict["results"] = [] + test_result_dict = { + "results": [], + } # Flag checking if all tests succeed. Ensures a message gets printed if so. all_tests_pass = True @@ -320,7 +330,7 @@ def run_section_tests( # Update test_results_dict "log" and f"{test_id}" keys. # -The "log" element contains a list string describing errors, if any. - # -The f"{test_id} element contains a list of booleans describing whether or not each testable element in + # -The f"{test_id} element contains a list of booleans describing whether each testable element in # outcome structure met the expected outcome for this test_id evaluate_outcome_object( outcome_structure, test_result_dict, test_dict, test_id @@ -372,7 +382,7 @@ def run_section_tests( def generate_software_test_report(ruleset, section_list, output_json_path): - """Runs list of rule test JSONs and aggregates them into a ashrae901_2019_detail_report + """Runs list of rule test JSONs and aggregates them into an ashrae901_2019_detail_report Parameters ---------- @@ -397,16 +407,14 @@ def generate_software_test_report(ruleset, section_list, output_json_path): SchemaEnums.update_schema_enum() report_dict = ASHRAE9012019SoftwareTestReport() report_dict.initialize_ruleset_report() + elif ruleset == RuleSet.ASHRAE9012022_RULESET: + # TODO - add software test report logic here + return None else: raise Exception(f"Ruleset '{ruleset}' has no default software test report.") if section_list is None: - if ruleset == RuleSet.ASHRAE9012019_RULESET: - section_list = RuleSetTest.ASHRAE9012019_TEST_LIST - else: - raise Exception( - f"Ruleset '{ruleset}' has no default list of section tests." - ) + section_list = get_ruleset_test_sections(ruleset) # Master list of RCT engine outcomes, used to populate report. rct_outcomes = generate_rct_outcomes_list_from_section_list(section_list) @@ -434,7 +442,12 @@ def generate_rct_outcomes_list_from_section_list(section_list): ashrae901_2019_software_test_report """ + from rct229.ruletest_engine.ruletest_rmd_factory import get_ruletest_rmd_models + ruleset_module = get_active_ruleset_module() + available_rule_definitions = ruleset_module.__getrules__() + rules_hash_dict = ruleset_module.__getrulemap__() + section_dict = ruleset_module.__getsectiondict__() # Master list of RCT engine outcomes and invalid RMD messages used to populate starting point for an RCTReport. # Initialize them here rct_outcomes_list = [] @@ -449,8 +462,6 @@ def generate_rct_outcomes_list_from_section_list(section_list): "manual_check": RCTOutcomeLabel.NOT_APPLICABLE, } - # get all rules in the ruleset. - available_rule_definitions = rulesets.__getrules__() available_rule_definitions_dict = { rule_class[0]: rule_class[1] for rule_class in available_rule_definitions } @@ -604,9 +615,13 @@ def validate_test_json_schema(test_json_path): user_rmd, baseline_rmd, proposed_rmd = generate_test_rmds(test_dict) # Evaluate RMDs against the schema - user_result = validate_rpd(user_rmd) if user_rmd != None else None - baseline_result = validate_rpd(baseline_rmd) if baseline_rmd != None else None - proposed_result = validate_rpd(proposed_rmd) if proposed_rmd != None else None + user_result = validate_rpd(user_rmd) if user_rmd is not None else None + baseline_result = ( + validate_rpd(baseline_rmd) if baseline_rmd is not None else None + ) + proposed_result = ( + validate_rpd(proposed_rmd) if proposed_rmd is not None else None + ) results_list = [user_result, baseline_result, proposed_result] rmd_type_list = ["User", "Baseline", "Proposed"] @@ -651,7 +666,7 @@ def evaluate_outcome_object(outcome_dict, test_result_dict, test_dict, test_id): Dictionary used to log errors and aggregate the test results for a given outcome_dict. Updating this dictionary is the chief purpose of this function. Most notably the test_result_dict[f"{test_id}"] element is populated with - a list of booleans describing whether or not the elements of the outcome_dict meet the expected outcome described + a list of booleans describing whether the elements of the outcome_dict meet the expected outcome described in test_dict. test_dict: dict @@ -726,6 +741,7 @@ def evaluate_outcome_object(outcome_dict, test_result_dict, test_dict, test_id): test_result_dict[f"{test_id}"].append(received_expected_outcome) +# noinspection PyDefaultArgument def flatten_outcome_object(outcome_object, flattened_outcome_list=[]): """Checks every element in an RCT outcome dictionary and unravels the nested structure to produce a list of outcome results to be read in by rule_unit_test_evaluation as part of the software testing report @@ -737,7 +753,11 @@ def flatten_outcome_object(outcome_object, flattened_outcome_list=[]): The evaluate_rule function returns a dictionary with an "outcome" key. This is an instance of the object contained in that dictionary. - Returns: + flattened_outcome_list: list + + The flattened list of ruletest evaluations being built recursively + + Returns -------- flattened_outcome_list: list @@ -751,7 +771,7 @@ def correct_types_in_calculated_vals(calc_value_item): if calc_value_item is None: return - # If list, recursively check each element and correct when appropriate + # If it is a list, recursively check each element and correct when appropriate if isinstance(calc_value_item, list): for i in range(len(calc_value_item)): item = calc_value_item[i] diff --git a/rct229/ruletest_engine/ruletest_jsons/__init__.py b/rct229/ruletest_engine/ruletest_jsons/__init__.py new file mode 100644 index 0000000000..9519da58a5 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/__init__.py @@ -0,0 +1,20 @@ +import importlib + + +def get_ruleset_test_sections(ruleset_name: str): + """ + Dynamically load the test directory list for a given ruleset. + """ + module_path = f"rct229.ruletest_engine.ruletest_jsons.{ruleset_name}" + try: + module = importlib.import_module(module_path) + + if getattr(module, "RULETEST_SECTION_LIST") is None: + print(f"Warning: No RULETEST_SECTION_LIST found in module '{module_path}'") + + return getattr(module, "RULETEST_SECTION_LIST", []) + + except ModuleNotFoundError: + print(f"Warning: No ruletest module found for ruleset '{ruleset_name}'") + + return [] diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/LTG/rule_6_13.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/LTG/rule_6_13.json new file mode 100644 index 0000000000..9febd01fb3 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/LTG/rule_6_13.json @@ -0,0 +1,232 @@ +{ + "rule-6-13-a": { + "Section": 6, + "Rule": 13, + "Test": "a", + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting is managed by automatic occupancy sensors.", + "expected_rule_outcome": "pass", + "standard": { + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "FULL_AUTO_ON", + "are_schedules_used_for_modeling_occupancy_control": true + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-b": { + "Section": 6, + "Rule": 13, + "Test": "b", + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has no occupancy controls.", + "expected_rule_outcome": "undetermined", + "standard": { + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "NONE" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-c": { + "Section": 6, + "Rule": 13, + "Test": "c", + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has manual occupancy controls without any occupancy sensor schedules.", + "expected_rule_outcome": "undetermined", + "standard": { + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "MANUAL_ON" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-d": { + "Section": 6, + "Rule": 13, + "Test": "d", + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has manual occupancy controls and is managed via occupancy sensor schedules.", + "expected_rule_outcome": "fail", + "standard": { + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "MANUAL_ON", + "are_schedules_used_for_modeling_occupancy_control": true + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/REC/rule_12_5.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/REC/rule_12_5.json new file mode 100644 index 0000000000..a716cb8501 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/REC/rule_12_5.json @@ -0,0 +1,70663 @@ +{ + "rule-12-5-a": { + "Section": 12, + "Rule": 5, + "Test": "a", + "standard": { + "ruleset": "ashrae9012019", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed and baseline building have one building segment and zone. Miscellaneous equipment are defined, have loads included, and have annual energy use.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-b": { + "Section": 12, + "Rule": 5, + "Test": "b", + "standard": { + "ruleset": "ashrae9012019", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has not the loads.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No misc. loads", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 0, + "multiplier_schedule": "Plug Load Schedule" + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-c": { + "Section": 12, + "Rule": 5, + "Test": "c", + "standard": { + "ruleset": "ashrae9012019", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has an annual site use energy of 0.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No annual end use energy", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 0 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-d": { + "Section": 12, + "Rule": 5, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has an annual site use energy of 0.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No annual end use energy", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MOTORS", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/__init__.py b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/__init__.py index ccac9d6314..b2e5cafd69 100644 --- a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/__init__.py +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/__init__.py @@ -1,222 +1,13 @@ -# Constants used for rule test directory names -PERFORMANCE_CALC_DIR = "CALC" -ELEVATOR_DIR = "ELV" -ENVELOPE_DIR = "ENV" -HVAC_AIRSIDE_DIR = "HVAC-SPEC" -HVAC_CHILLED_WATER_DIR = "HVAC-CHW" -HVAC_GENERAL_DIR = "HVAC-GEN" -HVAC_HOT_WATER_DIR = "HVAC-HW" -HVAC_BASELINE_DIR = "HVAC-SYS" -LIGHTING_DIR = "LTG" -RECEPTACLE_DIR = "REC" -SCHEDULE_DIR = "SCH" -SERVICE_HOT_WATER_DIR = "SHW" +from pathlib import Path -section_rule_to_rule_id = { - "1-1": f"{PERFORMANCE_CALC_DIR}-1", - "1-2": f"{PERFORMANCE_CALC_DIR}-2", - "1-3": f"{PERFORMANCE_CALC_DIR}-3", - "1-4": f"{PERFORMANCE_CALC_DIR}-4", - "1-5": f"{PERFORMANCE_CALC_DIR}-5", - "1-6": f"{PERFORMANCE_CALC_DIR}-6", - "1-7": f"{PERFORMANCE_CALC_DIR}-7", - "1-8": f"{PERFORMANCE_CALC_DIR}-8", - "1-9": f"{PERFORMANCE_CALC_DIR}-9", - "4-1": f"{SCHEDULE_DIR}-1", - "4-2": f"{SCHEDULE_DIR}-2", - "4-11": f"{SCHEDULE_DIR}-3", - "4-14": f"{SCHEDULE_DIR}-4", - "5-1": f"{ENVELOPE_DIR}-1", - "5-2": f"{ENVELOPE_DIR}-2", - "5-3": f"{ENVELOPE_DIR}-3", - "5-4": f"{ENVELOPE_DIR}-4", - "5-5": f"{ENVELOPE_DIR}-5", - "5-6": f"{ENVELOPE_DIR}-6", - "5-7": f"{ENVELOPE_DIR}-7", - "5-8": f"{ENVELOPE_DIR}-8", - "5-9": f"{ENVELOPE_DIR}-9", - "5-10": f"{ENVELOPE_DIR}-10", - "5-11": f"{ENVELOPE_DIR}-11", - "5-12": f"{ENVELOPE_DIR}-12", - "5-13": f"{ENVELOPE_DIR}-13", - "5-14": f"{ENVELOPE_DIR}-14", - "5-15": f"{ENVELOPE_DIR}-15", - "5-16": f"{ENVELOPE_DIR}-16", - "5-17": f"{ENVELOPE_DIR}-17", - "5-18": f"{ENVELOPE_DIR}-18", - "5-19": f"{ENVELOPE_DIR}-19", - "5-20": f"{ENVELOPE_DIR}-20", - "5-21": f"{ENVELOPE_DIR}-21", - "5-22": f"{ENVELOPE_DIR}-22", - "5-23": f"{ENVELOPE_DIR}-23", - "5-24": f"{ENVELOPE_DIR}-24", - "5-25": f"{ENVELOPE_DIR}-25", - "5-26": f"{ENVELOPE_DIR}-26", - "5-27": f"{ENVELOPE_DIR}-27", - "5-28": f"{ENVELOPE_DIR}-28", - "5-29": f"{ENVELOPE_DIR}-29", - "5-30": f"{ENVELOPE_DIR}-30", - "5-31": f"{ENVELOPE_DIR}-31", - "5-32": f"{ENVELOPE_DIR}-32", - "5-33": f"{ENVELOPE_DIR}-33", - "5-34": f"{ENVELOPE_DIR}-34", - "5-35": f"{ENVELOPE_DIR}-35", - "5-36": f"{ENVELOPE_DIR}-36", - "5-37": f"{ENVELOPE_DIR}-37", - "5-38": f"{ENVELOPE_DIR}-38", - "5-39": f"{ENVELOPE_DIR}-39", - "5-40": f"{ENVELOPE_DIR}-40", - "6-1": f"{LIGHTING_DIR}-1", - "6-2": f"{LIGHTING_DIR}-2", - "6-3": f"{LIGHTING_DIR}-3", - "6-4": f"{LIGHTING_DIR}-4", - "6-5": f"{LIGHTING_DIR}-5", - "6-6": f"{LIGHTING_DIR}-6", - "6-7": f"{LIGHTING_DIR}-7", - "6-8": f"{LIGHTING_DIR}-8", - "6-9": f"{LIGHTING_DIR}-9", - "10-1": f"{HVAC_GENERAL_DIR}-38", - "10-7": f"{HVAC_GENERAL_DIR}-39", - "10-14": f"{HVAC_GENERAL_DIR}-40", - "10-15": f"{HVAC_GENERAL_DIR}-41", - "11-1": f"{SERVICE_HOT_WATER_DIR}-1", - "11-6": f"{SERVICE_HOT_WATER_DIR}-2", - "11-7": f"{SERVICE_HOT_WATER_DIR}-3", - "11-8": f"{SERVICE_HOT_WATER_DIR}-4", - "11-9": f"{SERVICE_HOT_WATER_DIR}-5", - "11-10": f"{SERVICE_HOT_WATER_DIR}-6", - "11-11": f"{SERVICE_HOT_WATER_DIR}-7", - "11-12": f"{SERVICE_HOT_WATER_DIR}-8", - "11-13": f"{SERVICE_HOT_WATER_DIR}-9", - "11-14": f"{SERVICE_HOT_WATER_DIR}-10", - "11-15": f"{SERVICE_HOT_WATER_DIR}-11", - "11-16": f"{SERVICE_HOT_WATER_DIR}-12", - "11-17": f"{SERVICE_HOT_WATER_DIR}-13", - "12-1": f"{RECEPTACLE_DIR}-1", - "12-2": f"{RECEPTACLE_DIR}-2", - "12-3": f"{RECEPTACLE_DIR}-3", - "12-4": f"{RECEPTACLE_DIR}-4", - "16-1": f"{ELEVATOR_DIR}-1", - "16-2": f"{ELEVATOR_DIR}-2", - "16-3": f"{ELEVATOR_DIR}-3", - "16-4": f"{ELEVATOR_DIR}-4", - "16-5": f"{ELEVATOR_DIR}-5", - "16-6": f"{ELEVATOR_DIR}-6", - "16-7": f"{ELEVATOR_DIR}-7", - "18-1": f"{HVAC_BASELINE_DIR}-1", - "18-2": f"{HVAC_BASELINE_DIR}-2", - "18-3": f"{HVAC_BASELINE_DIR}-3", - "19-1": f"{HVAC_GENERAL_DIR}-1", - "19-2": f"{HVAC_GENERAL_DIR}-2", - "19-3": f"{HVAC_GENERAL_DIR}-3", - "19-4": f"{HVAC_GENERAL_DIR}-4", - "19-5": f"{HVAC_GENERAL_DIR}-5", - "19-6": f"{HVAC_GENERAL_DIR}-6", - "19-7": f"{HVAC_GENERAL_DIR}-7", - "19-8": f"{HVAC_GENERAL_DIR}-8", - "19-9": f"{HVAC_GENERAL_DIR}-9", - "19-10": f"{HVAC_GENERAL_DIR}-10", - "19-11": f"{HVAC_GENERAL_DIR}-11", - "19-12": f"{HVAC_GENERAL_DIR}-12", - "19-13": f"{HVAC_GENERAL_DIR}-13", - "19-14": f"{HVAC_GENERAL_DIR}-14", - "19-15": f"{HVAC_GENERAL_DIR}-15", - "19-16": f"{HVAC_GENERAL_DIR}-16", - "19-17": f"{HVAC_GENERAL_DIR}-17", - "19-18": f"{HVAC_GENERAL_DIR}-18", - "19-19": f"{HVAC_GENERAL_DIR}-19", - "19-20": f"{HVAC_GENERAL_DIR}-20", - "19-21": f"{HVAC_GENERAL_DIR}-21", - "19-22": f"{HVAC_GENERAL_DIR}-22", - "19-23": f"{HVAC_GENERAL_DIR}-23", - "19-24": f"{HVAC_GENERAL_DIR}-24", - "19-25": f"{HVAC_GENERAL_DIR}-25", - "19-26": f"{HVAC_GENERAL_DIR}-26", - "19-27": f"{HVAC_GENERAL_DIR}-27", - "19-28": f"{HVAC_GENERAL_DIR}-28", - "19-29": f"{HVAC_GENERAL_DIR}-29", - "19-30": f"{HVAC_GENERAL_DIR}-30", - "19-31": f"{HVAC_GENERAL_DIR}-31", - "19-32": f"{HVAC_GENERAL_DIR}-32", - "19-33": f"{HVAC_GENERAL_DIR}-33", - "19-34": f"{HVAC_GENERAL_DIR}-34", - "19-35": f"{HVAC_GENERAL_DIR}-35", - "19-36": f"{HVAC_GENERAL_DIR}-36", - "19-37": f"{HVAC_GENERAL_DIR}-37", - "21-1": f"{HVAC_HOT_WATER_DIR}-1", - "21-2": f"{HVAC_HOT_WATER_DIR}-2", - "21-3": f"{HVAC_HOT_WATER_DIR}-3", - "21-4": f"{HVAC_HOT_WATER_DIR}-4", - "21-5": f"{HVAC_HOT_WATER_DIR}-5", - "21-6": f"{HVAC_HOT_WATER_DIR}-6", - "21-7": f"{HVAC_HOT_WATER_DIR}-7", - "21-8": f"{HVAC_HOT_WATER_DIR}-8", - "21-9": f"{HVAC_HOT_WATER_DIR}-9", - "21-10": f"{HVAC_HOT_WATER_DIR}-10", - "21-11": f"{HVAC_HOT_WATER_DIR}-11", - "21-12": f"{HVAC_HOT_WATER_DIR}-12", - "21-13": f"{HVAC_HOT_WATER_DIR}-13", - "21-14": f"{HVAC_HOT_WATER_DIR}-14", - "21-15": f"{HVAC_HOT_WATER_DIR}-15", - "21-16": f"{HVAC_HOT_WATER_DIR}-16", - "21-17": f"{HVAC_HOT_WATER_DIR}-17", - "21-18": f"{HVAC_HOT_WATER_DIR}-18", - "22-1": f"{HVAC_CHILLED_WATER_DIR}-1", - "22-2": f"{HVAC_CHILLED_WATER_DIR}-2", - "22-3": f"{HVAC_CHILLED_WATER_DIR}-3", - "22-4": f"{HVAC_CHILLED_WATER_DIR}-4", - "22-5": f"{HVAC_CHILLED_WATER_DIR}-5", - "22-6": f"{HVAC_CHILLED_WATER_DIR}-6", - "22-7": f"{HVAC_CHILLED_WATER_DIR}-7", - "22-8": f"{HVAC_CHILLED_WATER_DIR}-8", - "22-9": f"{HVAC_CHILLED_WATER_DIR}-9", - "22-10": f"{HVAC_CHILLED_WATER_DIR}-10", - "22-11": f"{HVAC_CHILLED_WATER_DIR}-11", - "22-12": f"{HVAC_CHILLED_WATER_DIR}-12", - "22-13": f"{HVAC_CHILLED_WATER_DIR}-13", - "22-14": f"{HVAC_CHILLED_WATER_DIR}-14", - "22-15": f"{HVAC_CHILLED_WATER_DIR}-15", - "22-16": f"{HVAC_CHILLED_WATER_DIR}-16", - "22-17": f"{HVAC_CHILLED_WATER_DIR}-17", - "22-18": f"{HVAC_CHILLED_WATER_DIR}-18", - "22-19": f"{HVAC_CHILLED_WATER_DIR}-19", - "22-20": f"{HVAC_CHILLED_WATER_DIR}-20", - "22-21": f"{HVAC_CHILLED_WATER_DIR}-21", - "22-22": f"{HVAC_CHILLED_WATER_DIR}-22", - "22-23": f"{HVAC_CHILLED_WATER_DIR}-23", - "22-24": f"{HVAC_CHILLED_WATER_DIR}-24", - "22-25": f"{HVAC_CHILLED_WATER_DIR}-25", - "22-26": f"{HVAC_CHILLED_WATER_DIR}-26", - "22-27": f"{HVAC_CHILLED_WATER_DIR}-27", - "22-28": f"{HVAC_CHILLED_WATER_DIR}-28", - "22-29": f"{HVAC_CHILLED_WATER_DIR}-29", - "22-30": f"{HVAC_CHILLED_WATER_DIR}-30", - "22-31": f"{HVAC_CHILLED_WATER_DIR}-31", - "22-32": f"{HVAC_CHILLED_WATER_DIR}-32", - "22-33": f"{HVAC_CHILLED_WATER_DIR}-33", - "22-34": f"{HVAC_CHILLED_WATER_DIR}-34", - "22-35": f"{HVAC_CHILLED_WATER_DIR}-35", - "22-36": f"{HVAC_CHILLED_WATER_DIR}-36", - "22-37": f"{HVAC_CHILLED_WATER_DIR}-37", - "22-38": f"{HVAC_CHILLED_WATER_DIR}-38", - "22-39": f"{HVAC_CHILLED_WATER_DIR}-39", - "22-40": f"{HVAC_CHILLED_WATER_DIR}-40", - "22-41": f"{HVAC_CHILLED_WATER_DIR}-41", - "23-1": f"{HVAC_AIRSIDE_DIR}-1", - "23-2": f"{HVAC_AIRSIDE_DIR}-2", - "23-3": f"{HVAC_AIRSIDE_DIR}-3", - "23-4": f"{HVAC_AIRSIDE_DIR}-4", - "23-5": f"{HVAC_AIRSIDE_DIR}-5", - "23-6": f"{HVAC_AIRSIDE_DIR}-6", - "23-7": f"{HVAC_AIRSIDE_DIR}-7", - "23-8": f"{HVAC_AIRSIDE_DIR}-8", - "23-9": f"{HVAC_AIRSIDE_DIR}-9", - "23-10": f"{HVAC_AIRSIDE_DIR}-10", - "23-11": f"{HVAC_AIRSIDE_DIR}-11", - "23-12": f"{HVAC_AIRSIDE_DIR}-12", - "23-13": f"{HVAC_AIRSIDE_DIR}-13", - "23-14": f"{HVAC_AIRSIDE_DIR}-14", - "23-15": f"{HVAC_AIRSIDE_DIR}-15", - "23-16": f"{HVAC_AIRSIDE_DIR}-16", - "23-17": f"{HVAC_AIRSIDE_DIR}-17", -} + +# Identify this ruleset’s root directory +ROOT_DIR = Path(__file__).parent + +# Collect subdirectories (these correspond to ruletest sections) +RULETEST_SECTION_LIST = [ + p.name + for p in ROOT_DIR.iterdir() + if p.is_dir() and p.name not in ["ruletest_spreadsheets", "__pycache__"] +] +RULETEST_SECTION_LIST.sort() diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_10.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_10.json new file mode 100644 index 0000000000..92a77a5857 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_10.json @@ -0,0 +1,1410 @@ +{ + "rule-5-10-a": { + "Section": 5, + "Rule": 10, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-b": { + "Section": 5, + "Rule": 10, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has residential occupancy type and is conditioned based on cooling capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-c": { + "Section": 5, + "Rule": 10, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.029690998270886 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.029690998270886 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-d": { + "Section": 5, + "Rule": 10, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.2952697349839144 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.2952697349839144 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-e": { + "Section": 5, + "Rule": 10, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.029690998270886 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.029690998270886 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-f": { + "Section": 5, + "Rule": 10, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.3918002252671173 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.3918002252671173 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-g": { + "Section": 5, + "Rule": 10, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.9974979505514567 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.9974979505514567 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-h": { + "Section": 5, + "Rule": 10, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.21577403710362977 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-10-i": { + "Section": 5, + "Rule": 10, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-10", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline floor assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an exterior floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline floor U-factor for the zone is not established correctly.\n\n", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.0662626325252655 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.0662626325252655 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_11.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_11.json new file mode 100644 index 0000000000..5827ddd043 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_11.json @@ -0,0 +1,310 @@ +{ + "rule-5-11-a": { + "Section": 5, + "Rule": 11, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-11", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline slab-on-grade assemblies must conform with assemblies detailed in Appendix A (unheated slabs from tables (A6))", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is not a slab-on-grade so this rule does not apply.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-11-b": { + "Section": 5, + "Rule": 11, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-11", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline slab-on-grade assemblies must conform with assemblies detailed in Appendix A (unheated slabs from tables (A6))", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated slab-on-grade for which this rule cannot be fully evaluated.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_12.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_12.json new file mode 100644 index 0000000000..8612420471 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_12.json @@ -0,0 +1,1438 @@ +{ + "rule-5-12-a": { + "Section": 5, + "Rule": 12, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade floor F-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-b": { + "Section": 5, + "Rule": 12, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has residential occupancy type and is conditioned based on cooling capacity of the HVAC system that serves it. The baseline slab-on-grade floor F-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 38687.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 38687.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-c": { + "Section": 5, + "Rule": 12, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline slab-on-grade floor F-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Baseline slab F-factor is not as expected for slabs that are less than 24\" below grade. verify that the slab is more than 24\" below grade and is unregulated.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DORMITORY_LIVING_QUARTERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-d": { + "Section": 5, + "Rule": 12, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline slab-on-grade floor F-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-e": { + "Section": 5, + "Rule": 12, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline slab-on-grade floor F-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Baseline slab F-factor is not as expected for slabs that are less than 24\" below grade. verify that the slab is more than 24\" below grade and is unregulated.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-f": { + "Section": 5, + "Rule": 12, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. A space is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade floor F-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-g": { + "Section": 5, + "Rule": 12, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 7 has one building segment with 1 zones containing 2 spaces and a slab on grade surface. The zone has mixed residential and nonresidential space types. Rule cannot be evaluated because the baseline requirements for residential and nonresidential differ.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "Zone has both residential and non-residential spaces and the construction requirements for slab-on-grade floor are different. Verify construction is modeled correctly.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ7", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ7", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.185918188976378 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-h": { + "Section": 5, + "Rule": 12, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a slab-on-grade floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade floor F-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 0.934596850393701 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 0.934596850393701 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-12-i": { + "Section": 5, + "Rule": 12, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-12", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline slab-on-grade assemblies must match the appropriate assembly maximum F-factors in Tables G3.4-1 through G3.4-9", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes one space with a slab-on-grade floor surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade floor F-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Baseline slab F-factor is not as expected for slabs that are less than 24\" below grade. verify that the slab is more than 24\" below grade and is unregulated.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WORKSHOP", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 1.2634364829396327 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_13.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_13.json new file mode 100644 index 0000000000..b1a9683f96 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_13.json @@ -0,0 +1,1558 @@ +{ + "rule-5-13-a": { + "Section": 5, + "Rule": 13, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes one space with an unregulated exterior wall surface. The space is unconditioned based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline exterior envelope U-factor for the surface correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-b": { + "Section": 5, + "Rule": 13, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes one space with an unregulated exterior wall surface. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline exterior envelope U-factor for the surface does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.665656581313163 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-c": { + "Section": 5, + "Rule": 13, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated exterior wall surface. The space is semiheated based on heating capacity of the HVAC system that serves the parent zone. The baseline exterior envelope U-factor for the surface correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-d": { + "Section": 5, + "Rule": 13, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated exterior wall surface. The space is semiheated based on heating capacity of the HVAC system that serves the parent zone. The baseline exterior envelope U-factor for the surface does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 7.665656581313163 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-e": { + "Section": 5, + "Rule": 13, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated below-grade wall surface. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-f": { + "Section": 5, + "Rule": 13, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated below-grade wall surface. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.665656581313163 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-g": { + "Section": 5, + "Rule": 13, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated below-grade wall surface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-h": { + "Section": 5, + "Rule": 13, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated below-grade wall surface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.097830167882559 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 7.665656581313163 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-i": { + "Section": 5, + "Rule": 13, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated slab-on-grade floor surface. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade F-factor correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-j": { + "Section": 5, + "Rule": 13, + "Test": "j", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated slab-on-grade floor surface. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade F-factor does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.336492125984252 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-k": { + "Section": 5, + "Rule": 13, + "Test": "k", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated slab-on-grade floor surface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade F-factor correctly matches the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-13-l": { + "Section": 5, + "Rule": 13, + "Test": "l", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-13", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque surfaces that are not regulated (not part of opaque building envelope) must be modeled the same U/C/F-factor in the baseline as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated slab-on-grade floor surface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline slab-on-grade F-factor does not match the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.1634186351706037 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 56.63369318399999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 180, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "f_factor": 2.336492125984252 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_16.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_16.json new file mode 100644 index 0000000000..7cb99321a5 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_16.json @@ -0,0 +1,459 @@ +{ + "rule-5-16-a": { + "Section": 5, + "Rule": 16, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-16", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (c)", + "rule_description": "The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": " Project has one building segment and includes a zone that has two exterior walls with windows. Vertical fenestration area in the baseline model is distributed on each face in the same proportion as in the proposed design. ", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 18.580607999999998, + "opaque_area": 0.0, + "u_factor": 3.2366105565544463 + }, + { + "id": "SubSurface 2", + "classification": "WINDOW", + "glazed_area": 9.290303999999999, + "opaque_area": 4.6451519999999995, + "u_factor": 3.2366105565544463 + } + ], + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 75, + "area": 92.90303999999999, + "construction": "construction_2", + "subsurfaces": [ + { + "id": "SubSurface 3", + "classification": "WINDOW", + "glazed_area": 37.161215999999996, + "opaque_area": 9.290303999999999, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "construction_2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 9.290303999999999, + "opaque_area": 0.0, + "u_factor": 3.2366105565544463 + }, + { + "id": "SubSurface 2", + "classification": "WINDOW", + "glazed_area": 4.6451519999999995, + "opaque_area": 2.3225759999999998, + "u_factor": 3.2366105565544463 + } + ], + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 75, + "area": 92.90303999999999, + "construction": "construction_2", + "subsurfaces": [ + { + "id": "SubSurface 3", + "classification": "WINDOW", + "glazed_area": 18.580607999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "construction_2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-16-b": { + "Section": 5, + "Rule": 16, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-16", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (c)", + "rule_description": "The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": " Project has one building segment and includes a zone that has two exterior walls with windows. Vertical fenestration area in the baseline model is not distributed on each face in the same proportion as in the proposed design. ", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "The vertical fenestration is not distributed across baseline opaque surfaces in the same proportion as in the proposed design. Verify if envelope is existing or altered and can be excluded from this check.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1", + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 18.580607999999998, + "opaque_area": 0.0, + "u_factor": 3.2366105565544463 + }, + { + "id": "SubSurface 2", + "classification": "WINDOW", + "glazed_area": 9.290303999999999, + "opaque_area": 4.6451519999999995, + "u_factor": 3.2366105565544463 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 75, + "area": 92.90303999999999, + "construction": "construction_2", + "subsurfaces": [ + { + "id": "SubSurface 3", + "classification": "WINDOW", + "glazed_area": 37.161215999999996, + "opaque_area": 9.290303999999999, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "construction_2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1", + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 18.580607999999998, + "opaque_area": 0.0, + "u_factor": 3.2366105565544463 + }, + { + "id": "SubSurface 2", + "classification": "WINDOW", + "glazed_area": 4.6451519999999995, + "opaque_area": 2.3225759999999998, + "u_factor": 3.2366105565544463 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 75, + "area": 92.90303999999999, + "construction": "construction_2", + "subsurfaces": [ + { + "id": "SubSurface 3", + "classification": "WINDOW", + "glazed_area": 18.580607999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "construction_2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_19.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_19.json new file mode 100644 index 0000000000..19f344cb15 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_19.json @@ -0,0 +1,1370 @@ +{ + "rule-5-19-a": { + "Section": 5, + "Rule": 19, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-b": { + "Section": 5, + "Rule": 19, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.520523763269749 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.520523763269749 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-c": { + "Section": 5, + "Rule": 19, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-d": { + "Section": 5, + "Rule": 19, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": " Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-e": { + "Section": 5, + "Rule": 19, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space is semiheated based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-f": { + "Section": 5, + "Rule": 19, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space is semiheated based on heating and cooling capacity of the HVAC system that serves it. The vertical fenestration area is less than 10% of the gross exterior wall area. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-g": { + "Section": 5, + "Rule": 19, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The baseline vertical fenestration U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 6.927482243853377 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 6.927482243853377 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 6.927482243853377 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-19-h": { + "Section": 5, + "Rule": 19, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-19", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8 for the appropriate WWR in the baseline RMR.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The baseline vertical fenestration U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 2.6120015017807816 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 2.6120015017807816 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_20.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_20.json new file mode 100644 index 0000000000..ab23a1ba94 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_20.json @@ -0,0 +1,1442 @@ +{ + "rule-5-20-a": { + "Section": 5, + "Rule": 20, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-b": { + "Section": 5, + "Rule": 20, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-c": { + "Section": 5, + "Rule": 20, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-d": { + "Section": 5, + "Rule": 20, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-e": { + "Section": 5, + "Rule": 20, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space is semiheated based on heating capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.4 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-f": { + "Section": 5, + "Rule": 20, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with an above-grade wall surface and window. The space is semiheated based on heating capacity of the HVAC system that serves it. The WWR is less than 10% of the gross wall area. The baseline vertical fenestration SHGC is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-g": { + "Section": 5, + "Rule": 20, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is 20-30% of the gross wall area. The baseline vertical fenestration SHGC is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 22.2967296, + "opaque_area": 3.7161215999999997, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 22.2967296, + "opaque_area": 3.7161215999999997, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.39 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-20-h": { + "Section": 5, + "Rule": 20, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-20", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (d)", + "rule_description": "Vertical fenestration SHGC shall match the appropriate requirements in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with an above-grade wall surface and window. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. The WWR is 20-30% of the gross wall area. The baseline vertical fenestration SHGC is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 22.2967296, + "opaque_area": 3.7161215999999997, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.61 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "STAIRWELL", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 22.2967296, + "opaque_area": 3.7161215999999997, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.61 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 3517.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_21.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_21.json new file mode 100644 index 0000000000..e3e0077969 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_21.json @@ -0,0 +1,875 @@ +{ + "rule-5-21-a": { + "Section": 5, + "Rule": 21, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-21", + "ruleset_reference": "Table G3.1(1), Baseline Building Performance", + "rule_description": "Fenestration that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface and window. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is correctly modeled with the same area, U-factor and SHGC in the baseline as in the proposed design", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-21-b": { + "Section": 5, + "Rule": 21, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-21", + "ruleset_reference": "Table G3.1(1), Baseline Building Performance", + "rule_description": "Fenestration that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface and window. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is incorrectly modeled with a different area in the baseline than in the proposed design", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Subsurface that is not regulated (Not part of building envelope) is not modeled with the same area, U-factor and SHGC in the baseline as in the propsoed design.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 0.9290303999999999, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-21-c": { + "Section": 5, + "Rule": 21, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-21", + "ruleset_reference": "Table G3.1(1), Baseline Building Performance", + "rule_description": "Fenestration that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface and window. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is modeled with a different u-factor in the baseline than in the proposed design", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Subsurface that is not regulated (Not part of building envelope) is not modeled with the same area, U-factor and SHGC in the baseline as in the propsoed design.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 4.5426113074448375, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-21-d": { + "Section": 5, + "Rule": 21, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-21", + "ruleset_reference": "Table G3.1(1), Baseline Building Performance", + "rule_description": "Fenestration that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface and window. The space is unconditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is modeled with a different SHGC in the baseline than in the proposed design", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Subsurface that is not regulated (Not part of building envelope) is not modeled with the same area, U-factor and SHGC in the baseline as in the propsoed design.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.3 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "solar_heat_gain_coefficient": 0.5 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-21-e": { + "Section": 5, + "Rule": 21, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-21", + "ruleset_reference": "Table G3.1(1), Baseline Building Performance", + "rule_description": "Fenestration that is not regulated (not part of building envelope) must be modeled with the same area, U-factor and SHGC in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface but no windows or other subsurfaces. ", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_22.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_22.json new file mode 100644 index 0000000000..cba4ff0c82 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_22.json @@ -0,0 +1,707 @@ +{ + "rule-5-22-a": { + "Section": 5, + "Rule": 22, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-22", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance(d)", + "rule_description": "Baseline vertical fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an above-grade wall surface. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is modeled as flush with the exterior wall with no shading projections.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": false, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": false, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-22-b": { + "Section": 5, + "Rule": 22, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-22", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance(d)", + "rule_description": "Baseline vertical fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an above-grade wall surface. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline model contains overhangs casting shade.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Baseline fenestration was modeled with shading projections and/or overhangs, which is incorrect.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": true, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": true, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-22-c": { + "Section": 5, + "Rule": 22, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-22", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance(d)", + "rule_description": "Baseline vertical fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an above-grade wall surface. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. Fenestration is modeled as flush with the exterior wall and overhangs are specified, but the depth of overhang is 0.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": false, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 5.5741824, + "opaque_area": 1.8580607999999998, + "u_factor": 3.2366105565544463, + "has_shading_overhang": false, + "has_shading_sidefins": false + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-22-d": { + "Section": 5, + "Rule": 22, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-22", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance(d)", + "rule_description": "Baseline vertical fenestration shall be assumed to be flush with the exterior wall, and no shading projections shall be modeled.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface but no windows or other subsurfaces. ", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_26.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_26.json new file mode 100644 index 0000000000..162583b34b --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_26.json @@ -0,0 +1,386 @@ +{ + "rule-5-26-a": { + "Section": 5, + "Rule": 26, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-26", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight area must be allocated to surfaces in the same proportion in the baseline as in the proposed design; Skylight orientation and tilt shall be the same as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": " Project has one building segment and includes a conditioned zone that has two roof surfaces both of which have skylights. Each baseline subsurface's proportion of the building's total glazed area is equal to the proposed.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 9.290303999999999, + "opaque_area": 4.6451519999999995, + "u_factor": 3.406958480583628 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 185.80607999999998, + "subsurfaces": [ + { + "id": "Subsurface 2", + "classification": "SKYLIGHT", + "glazed_area": 83.612736, + "opaque_area": 9.290303999999999, + "u_factor": 3.406958480583628 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 2.3225759999999998, + "u_factor": 3.406958480583628 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 185.80607999999998, + "subsurfaces": [ + { + "id": "Subsurface 2", + "classification": "SKYLIGHT", + "glazed_area": 41.806368, + "opaque_area": 4.6451519999999995, + "u_factor": 3.406958480583628 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-26-b": { + "Section": 5, + "Rule": 26, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-26", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight area must be allocated to surfaces in the same proportion in the baseline as in the proposed design; Skylight orientation and tilt shall be the same as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": " Project has one building segment and includes a conditioned zone that has two roof surfaces both of which have skylights. Each baseline subsurface's proportion of the building's total glazed area is not equal to the proposed.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 9.290303999999999, + "opaque_area": 4.6451519999999995, + "u_factor": 3.406958480583628 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 185.80607999999998, + "subsurfaces": [ + { + "id": "Subsurface 2", + "classification": "SKYLIGHT", + "glazed_area": 83.612736, + "opaque_area": 9.290303999999999, + "u_factor": 3.406958480583628 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 92.90303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 2.3225759999999998, + "u_factor": 3.406958480583628 + } + ] + }, + { + "id": "Surface 2", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 185.80607999999998, + "subsurfaces": [ + { + "id": "Subsurface 2", + "classification": "SKYLIGHT", + "glazed_area": 83.612736, + "opaque_area": 9.290303999999999, + "u_factor": 3.406958480583628 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_27.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_27.json new file mode 100644 index 0000000000..bc88d19519 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_27.json @@ -0,0 +1,1338 @@ +{ + "rule-5-27-a": { + "Section": 5, + "Rule": 27, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.293393197897507 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.293393197897507 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-b": { + "Section": 5, + "Rule": 27, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space has residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.918002252671172 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.918002252671172 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-c": { + "Section": 5, + "Rule": 27, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.918002252671172 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.918002252671172 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-d": { + "Section": 5, + "Rule": 27, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 5.110437720875442 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 5.110437720875442 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-e": { + "Section": 5, + "Rule": 27, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space is semiheated based on heating capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 7.722439222656224 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 7.722439222656224 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-f": { + "Section": 5, + "Rule": 27, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment and includes a space with a roof surface and a skylight. The space is semiheated based on heating capacity of the HVAC system that serves it. Skylight area in the building is 0%-2.0%. The baseline skylight U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.293393197897507 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 3.293393197897507 + } + ], + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-g": { + "Section": 5, + "Rule": 27, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is greater than 2.0%. The baseline skylight U-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 7.722439222656224 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 7.722439222656224 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-27-h": { + "Section": 5, + "Rule": 27, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-27", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight U-factors for residential, non-residential and semiheated spaces in the baseline model must match the appropriate requirements in Table G3.4-1 through G3.4-8.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 3C has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is greater than 2.0%. The baseline skylight U-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ3C", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_28.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_28.json new file mode 100644 index 0000000000..70183e2443 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_28.json @@ -0,0 +1,511 @@ +{ + "rule-5-28-a": { + "Section": 5, + "Rule": 28, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-28", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 6A has one building segment with 1 zones containing 2 spaces and a roof surface with a skylight. The zone has mixed residential and nonresidential space types. Rule cannot be evaluated because the baseline requirements for residential and nonresidential differ.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "MANUAL REVIEW IS REQUESTED TO VERIFY SKYLIGHT MEETS SHGC REQUIREMENT AS PER TABLE G3.4.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 42.47526988799999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.49 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 42.47526988799999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.49 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-28-b": { + "Section": 5, + "Rule": 28, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-28", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 6A has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is greater than 2.0%. The baseline skylight SHGC-factor is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.49 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.49 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-28-c": { + "Section": 5, + "Rule": 28, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-28", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (e)", + "rule_description": "Skylight SHGC properties shall match the appropriate requirements in Tables G3.4-1 through G3.4-8 using the value and the applicable skylight percentage.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 6A has one building segment and includes a space with a roof surface and a skylight. The space has non-residential occupancy type and is conditioned based on heating and cooling capacity of the HVAC system that serves it. Skylight area in the building is greater than 2.0%. The baseline skylight SHGC-factor is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.39 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ6A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 23.225759999999998, + "opaque_area": 4.6451519999999995, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.39 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_29.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_29.json new file mode 100644 index 0000000000..7574953667 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_29.json @@ -0,0 +1,302 @@ +{ + "rule-5-29-a": { + "Section": 5, + "Rule": 29, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-29", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (f)", + "rule_description": "The baseline roof surfaces shall be modeled using a thermal emittance of 0.9.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The baseline roof emittance is correctly set to 0.9", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-29-b": { + "Section": 5, + "Rule": 29, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-29", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (f)", + "rule_description": "The baseline roof surfaces shall be modeled using a thermal emittance of 0.9.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The baseline roof emittance is incorrectly set to 0.5 ", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.5 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.5 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_3.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_3.json new file mode 100644 index 0000000000..4add55f671 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_3.json @@ -0,0 +1,306 @@ +{ + "rule-5-3-a": { + "Section": 5, + "Rule": 3, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-3", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline roof assemblies must conform with assemblies detailed in Appendix A", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is not a roof so this rule does not apply.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-3-b": { + "Section": 5, + "Rule": 3, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-3", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline roof assemblies must conform with assemblies detailed in Appendix A", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated exterior roof for which this rule cannot be fully evaluated.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_30.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_30.json new file mode 100644 index 0000000000..23628b9739 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_30.json @@ -0,0 +1,612 @@ +{ + "rule-5-30-a": { + "Section": 5, + "Rule": 30, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-30", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model if the aged test data are available, or equal to 0.9 default emittance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface thermal emittance in the proposed and user models is equal to 0.9", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-30-b": { + "Section": 5, + "Rule": 30, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-30", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model if the aged test data are available, or equal to 0.9 default emittance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface thermal emittance in the proposed and user models is equal to 0.7", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "matches that in the user model but is not equal to the prescribed default value of 0.9. Verify that the modeled value is based on testing in accordance with section 5.5.3.1.1(a).", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-30-c": { + "Section": 5, + "Rule": 30, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-30", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model if the aged test data are available, or equal to 0.9 default emittance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface thermal emittance in the proposed model is equal to 0.9, but the roof surface thermal emittance in the user model is equal to 0.7.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "Fail if the thermal emittance in the user model is based on aged test data. Roof thermal emittance is equal to the prescribed default value of 0.9 but differs from the thermal emittance in the user model", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-30-d": { + "Section": 5, + "Rule": 30, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-30", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same thermal emittance as in the user model if the aged test data are available, or equal to 0.9 default emittance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface thermal emittance in the proposed model is equal to 0.5, but the roof surface thermal emittance in the user model is equal to 0.7.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.5 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_31.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_31.json new file mode 100644 index 0000000000..2990cc9ff2 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_31.json @@ -0,0 +1,334 @@ +{ + "rule-5-31-a": { + "Section": 5, + "Rule": 31, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-31", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance", + "rule_description": "The baseline roof surfaces shall be modeled using a solar reflectance of 0.30.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The baseline roof emittance is correctly set to 0.9", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.7 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.7 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-31-b": { + "Section": 5, + "Rule": 31, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-31", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance", + "rule_description": "The baseline roof surfaces shall be modeled using a solar reflectance of 0.30.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The baseline roof emittance is incorrectly set to 0.5 ", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.5 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.5 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_32.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_32.json new file mode 100644 index 0000000000..823ecac50a --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_32.json @@ -0,0 +1,612 @@ +{ + "rule-5-32-a": { + "Section": 5, + "Rule": 32, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-32", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model if the aged test data are available, or equal to 0.7 default reflectance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface solar reflectance in the proposed and user models is equal to 0.3", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-32-b": { + "Section": 5, + "Rule": 32, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-32", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model if the aged test data are available, or equal to 0.7 default reflectance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface solar reflectance in the proposed and user models is equal to 0.7", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "matches that in the user model but is not equal to the prescribed default value of 0.3. Verify that reflectance was established using aged test data as required in section 5.5.3.1(a).", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.3 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.3 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-32-c": { + "Section": 5, + "Rule": 32, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-32", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model if the aged test data are available, or equal to 0.7 default reflectance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface solar reflectance in the proposed model is equal to 0.3, but the roof surface thermal emittance in the user model is equal to 0.7.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "Fail if the thermal emittance in the user model is based on aged test data. roof surface solar reflectance is equal to the prescribed default value of 0.3 but differs from the solar reflectance in the user model", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.3 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.7 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-32-d": { + "Section": 5, + "Rule": 32, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-32", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (a)(3)", + "rule_description": "The proposed roof surfaces shall be modeled using the same solar reflectance as in the user model if the aged test data are available, or equal to 0.7 default reflectance.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "User Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with a roof surface. The roof surface solar reflectance in the proposed model is equal to 0.5, but the roof surface thermal emittance in the user model is equal to 0.7.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "user": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.3 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "USER" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.5 + } + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_35.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_35.json new file mode 100644 index 0000000000..cad1fde415 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_35.json @@ -0,0 +1,1438 @@ +{ + "rule-5-35-a": { + "Section": 5, + "Rule": 35, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate @75PA is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-b": { + "Section": 5, + "Rule": 35, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate @75PA is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 2359.737215999999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 2359.737215999999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-c": { + "Section": 5, + "Rule": 35, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate at wind pressure is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-d": { + "Section": 5, + "Rule": 35, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate at wind pressure is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 1057.1622727679996 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 1057.1622727679996 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994 + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994 + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 17584.266666666666 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-e": { + "Section": 5, + "Rule": 35, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate @75PA is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-f": { + "Section": 5, + "Rule": 35, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate @75PA is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 2359.737215999999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "measured_infiltration_pressure_difference": 75, + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 2359.737215999999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "azimuth": 180, + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-g": { + "Section": 5, + "Rule": 35, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate at wind pressure is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-35-h": { + "Section": 5, + "Rule": 35, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-35", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (h)", + "rule_description": "The baseline air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 1 cfm/ft2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes two surfaces - one adjacent to exterior and another adjacent to ground. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The baseline infiltration flow rate at wind pressure is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 1057.1622727679996 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 1415.8423295999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 464.51519999999994 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 1057.1622727679996 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 1" + }, + { + "id": "Surface 2", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 464.51519999999994, + "construction": "Construction 2" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 7034.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + }, + { + "id": "Construction 2", + "u_factor": 3.2366105565544463 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_37.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_37.json new file mode 100644 index 0000000000..e27124fdb8 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_37.json @@ -0,0 +1,393 @@ +{ + "rule-5-37-a": { + "Section": 5, + "Rule": 37, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-37", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (b)", + "rule_description": "The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. \nExceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a roof surface with a skylight subsurface. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The proposed infiltration flow rate at wind pressure is established correctly based on default 0.6 cfm/ft2 @75PA.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 317.1486818303999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.19 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-37-b": { + "Section": 5, + "Rule": 37, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-37", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (b)", + "rule_description": "The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. \nExceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a roof surface with a skylight subsurface. The space is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The proposed infiltration flow rate at wind pressure is not based on default 0.6 cfm/ft2 @75PA. Manual check required to verify that site measurements were performed", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "The building total air leakage rate is not equal to the required proposed design air leakage rate at 75Pa with a Conversion Factor of 0.112 as per section G3.1.1.4. and Measured air leakage rate is not entered for all conditioned and semi-heated zones. Verify the proposed air leakage rate is modeled correctly.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.39 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-37-c": { + "Section": 5, + "Rule": 37, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-37", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (b)", + "rule_description": "The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. \nExceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a roof surface with a skylight subsurface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The proposed infiltration flow rate at wind pressure is established correctly based on default 0.6 cfm/ft2 @75PA.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 317.1486818303999, + "measured_air_leakage_rate": 2831.684659199999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.39 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-37-d": { + "Section": 5, + "Rule": 37, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-37", + "ruleset_reference": "Table G3.1(5) Proposed Building Performance (b)", + "rule_description": "The proposed air leakage rate of the building envelope (I75Pa) at a fixed building pressure differential of 0.3 in. of water shall be 0.6 cfm/ft2 for buildings providing verification in accordance with Section 5.9.1.2. The air leakage rate of the building envelope shall be converted to appropriate units for the simulation program using one of the methods in Section Table G3.1.1.4. \nExceptions: When whole-building air leakage testing, in accordance with Section 5.4.3.1.1, is specified during design and completed after construction, the proposed design air leakage rate of the building envelope shall be as measured.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a roof surface with a skylight subsurface. The space is semiheated based on the heating capacity of the HVAC system that serves the parent zone. The proposed infiltration flow rate at wind pressure is not based on default 0.6 cfm/ft2 @75PA.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "infiltration": { + "id": "Infiltration 1", + "flow_rate": 528.5811363839998, + "measured_air_leakage_rate": 2359.737215999999 + }, + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 30, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "SKYLIGHT", + "glazed_area": 4.6451519999999995, + "opaque_area": 0.9290303999999999, + "u_factor": 6.927482243853377, + "solar_heat_gain_coefficient": 0.58 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_39.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_39.json new file mode 100644 index 0000000000..e238ae86e9 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_39.json @@ -0,0 +1,688 @@ +{ + "rule-5-39-a": { + "Section": 5, + "Rule": 39, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-39", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a wall surface with a nonswinging door subsurface. The space is residential and conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline door u-factor is correctly established per Tables G3.4-1 through G3.4-8.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "NONSWINGING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 2.8391320671530234 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "NONSWINGING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 2.8391320671530234 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-39-b": { + "Section": 5, + "Rule": 39, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-39", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with 1 zones containing 2 spaces and a wall surface with a metal coiling door. The zone has mixed residential and nonresidential space types. All available options for baseline U-factor are the same, but baseline door u-factor does not align and is more conservative.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Rule evaluation fails with a conservative outcome.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 42.47526988799999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 2.2713056537224188 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 42.47526988799999, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 2.2713056537224188 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-39-c": { + "Section": 5, + "Rule": 39, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-39", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a wall surface with a metal coiling door. The space is nonresidential and conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline door u-factor does not align with either of the available options per Tables G3.4-1 through G3.4-8.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 5.678264134306047 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 5.678264134306047 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-39-d": { + "Section": 5, + "Rule": 39, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-39", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "U-factor of the baseline door is based on Tables G3.4-1 through G3.4-8 for the applicable door type (swinging or non-swinging) and envelope conditioning category.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with 1 zones containing 2 spaces and a wall surface with a metal coiling door. The zone has mixed residential and nonresidential space types and is conditioned based on the heating and cooling capacity of the HVAC system that serves the parent zone. The baseline door u-factor aligns with one of the available options per Tables G3.4-1 through G3.4-8, but cannot be determined if it is correct.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "Prescribed u-factor requirement could not be determined. Verify the baseline door u-factor", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 8.233482994743767 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "OFFICE_ENCLOSED", + "floor_area": 23.225759999999998 + }, + { + "id": "Space 2", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 929.0303999999999, + "subsurfaces": [ + { + "id": "Subsurface 1", + "classification": "DOOR", + "subclassification": "METAL_COILING_DOOR", + "glazed_area": 0.0, + "opaque_area": 2.3225759999999998, + "u_factor": 8.233482994743767 + } + ] + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 35170.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_4.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_4.json new file mode 100644 index 0000000000..9aa6bf2ea7 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_4.json @@ -0,0 +1,1410 @@ +{ + "rule-5-4-a": { + "Section": 5, + "Rule": 4, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has residential occupancy type, and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-b": { + "Section": 5, + "Rule": 4, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface.The project includes a space that has residential occupancy type, and is conditioned based on cooling capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-c": { + "Section": 5, + "Rule": 4, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has residential occupancy type, and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-d": { + "Section": 5, + "Rule": 4, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-e": { + "Section": 5, + "Rule": 4, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-f": { + "Section": 5, + "Rule": 4, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the the parent zone. The baseline roof U-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-g": { + "Section": 5, + "Rule": 4, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the the parent zone. The baseline roof U-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-h": { + "Section": 5, + "Rule": 4, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.27255667844669024 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.27255667844669024 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-4-i": { + "Section": 5, + "Rule": 4, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-4", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline roof assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an exterior roof surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline roof U-factor for the space is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_40.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_40.json new file mode 100644 index 0000000000..f6db9dbb52 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_40.json @@ -0,0 +1,388 @@ +{ + "rule-5-40-a": { + "Section": 5, + "Rule": 40, + "Test": "a", + "test_description": "Project has one building segment with one space that includes an unregulated roof surface. The baseline roof optical properties are the same as in the proposed design.", + "expected_rule_outcome": "pass", + "standard": { + "rule_id": "5-40", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be modeled with the same thermal emittance and solar reflectance in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_thermal_exterior": 0.3, + "absorptance_solar_exterior": 0.1 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_thermal_exterior": 0.3, + "absorptance_solar_exterior": 0.1 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-40-b": { + "Section": 5, + "Rule": 40, + "Test": "b", + "test_description": "Project has one building segment with one space that includes an unregulated roof surface. The baseline roof optical properties are the different from the proposed design.", + "expected_rule_outcome": "fail", + "standard": { + "rule_id": "5-40", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be modeled with the same thermal emittance and solar reflectance in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_thermal_exterior": 0.3, + "absorptance_solar_exterior": 0.1 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_thermal_exterior": 0.5, + "absorptance_solar_exterior": 0.5 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-40-c": { + "Section": 5, + "Rule": 40, + "Test": "c", + "test_description": "Project has one building segment with one space that includes an unregulated roof surface. The proposed roof optical properties are not specified.", + "expected_rule_outcome": "undetermined", + "standard": { + "rule_id": "5-40", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Opaque roof surfaces that are not regulated (not part of opaque building envelope) must be modeled with the same thermal emittance and solar reflectance in the baseline as in the proposed design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Proposed Model", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_solar_exterior": 0.1 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 50, + "area": 929.0303999999999, + "optical_properties": { + "id": "Surface Optical Properties 1", + "absorptance_thermal_exterior": 0.3, + "absorptance_solar_exterior": 0.1 + }, + "construction": "Construction 1" + } + ] + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_42.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_42.json new file mode 100644 index 0000000000..2888cc3510 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_42.json @@ -0,0 +1,177 @@ +{ + "rule-5-42-a": { + "Section": 5, + "Rule": 42, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-42", + "ruleset_reference": "Section G3.1-5 Building Envelope Modeling Requirements for the Proposed building", + "rule_description": " Each linear thermal bridge and point thermal bridge as identified in Section 5.5.5 shall be modeled using either of the following techniques:\n\na. A separate model of the assembly within the energy simulation model.\nb. Adjustment of the clear-field U-factor in accordance with Section A10.2.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment and includes a space with an unregulated above-grade wall surface.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "volume": 21.237634943999996, + "spaces": [ + { + "id": "Space 1", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 92.90303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 0.0 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 3.2366105565544463 + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-42-b": { + "Section": 5, + "Rule": 42, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-42", + "ruleset_reference": "Section G3.1-5 Building Envelope Modeling Requirements for the Proposed building", + "rule_description": " Each linear thermal bridge and point thermal bridge as identified in Section 5.5.5 shall be modeled using either of the following techniques:\n\na. A separate model of the assembly within the energy simulation model.\nb. Adjustment of the clear-field U-factor in accordance with Section A10.2.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated exterior roof for which this rule does not apply", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_43.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_43.json new file mode 100644 index 0000000000..651e215558 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_43.json @@ -0,0 +1,205 @@ +{ + "rule-5-43-a": { + "Section": 5, + "Rule": 43, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-43", + "ruleset_reference": "Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building", + "rule_description": "Automatic fenestration shading devices shall not be modeled in the Baseline.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a window subsurface. The baseline building's window does not have automated shades", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 23.225759999999998, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 3.7161215999999997, + "opaque_area": 1.8580607999999998, + "has_automatic_shades": false + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-43-b": { + "Section": 5, + "Rule": 43, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-43", + "ruleset_reference": "Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building", + "rule_description": "Automatic fenestration shading devices shall not be modeled in the Baseline.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that includes a window subsurface. The baseline building's window has automated shades", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "Baseline model incorrectly includes automatic fenestration shading devices. Address this issue for the following subsurfaces", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 23.225759999999998, + "subsurfaces": [ + { + "id": "SubSurface 1", + "classification": "WINDOW", + "glazed_area": 3.7161215999999997, + "opaque_area": 1.8580607999999998, + "has_automatic_shades": true + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-43-c": { + "Section": 5, + "Rule": 43, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-43", + "ruleset_reference": "Section G3.1-5(f) Building Envelope Modeling Requirements for the Baseline building", + "rule_description": "Automatic fenestration shading devices shall not be modeled in the Baseline.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one space that without any window subsurfaces.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR" + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_44.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_44.json new file mode 100644 index 0000000000..f4f0ee900c --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_44.json @@ -0,0 +1,330 @@ +{ + "rule-5-44-a": { + "Section": 5, + "Rule": 44, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-44", + "ruleset_reference": "Table G3.1 Section 5(j) Baseline", + "rule_description": "The baseline above-grade wall surfaces shall be modeled with a solar reflectance of 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "A project with one building segment has one space with an above grade, conditioned wall. The wall's solar absorptance is equal to 0.75, implying a reflectance of 0.25 in agreement with Table G3.1. Section 5(j).", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_solar_exterior": 0.75 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_solar_exterior": 0.75 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-44-b": { + "Section": 5, + "Rule": 44, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-44", + "ruleset_reference": "Table G3.1 Section 5(j) Baseline", + "rule_description": "The baseline above-grade wall surfaces shall be modeled with a solar reflectance of 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "A project with one building segment has one space with an above grade, conditioned wall. The wall's solar absorptance is equal to 0.65, implying a reflectance of 0.35 in disagreement with Table G3.1. Section 5(j).", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_solar_exterior": 0.65 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_solar_exterior": 0.75 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_45.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_45.json new file mode 100644 index 0000000000..869c3d6c68 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_45.json @@ -0,0 +1,330 @@ +{ + "rule-5-45-a": { + "Section": 5, + "Rule": 45, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-45", + "ruleset_reference": "Table G3.1 Section 5(j) Baseline", + "rule_description": "The baseline above-grade wall surfaces shall be modeled with a thermal emittance of 0.90.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "A project with one building segment has one space with an above grade, conditioned wall. The wall's thermal absorptance is equal to 0.9, in agreement with Table G3.1. Section 5(j).", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.9 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-5-45-b": { + "Section": 5, + "Rule": 45, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-45", + "ruleset_reference": "Table G3.1 Section 5(j) Baseline", + "rule_description": "The baseline above-grade wall surfaces shall be modeled with a thermal emittance of 0.90.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "A project with one building segment has one space with an above grade, conditioned wall. The wall's thermal absorptance is equal to 0.7, in disagreement with Table G3.1. Section 5(j).", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + }, + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "PARKING_AREA_INTERIOR", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "optical_properties": { + "id": "Optical Properties 1", + "absorptance_thermal_exterior": 0.7 + }, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_5.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_5.json new file mode 100644 index 0000000000..1cc4576db6 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_5.json @@ -0,0 +1,310 @@ +{ + "rule-5-5-a": { + "Section": 5, + "Rule": 5, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-5", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline below-grade walls shall conform with assemblies detailed in Appendix A Concrete block, A4) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is not a below grade wall so this rule does not apply.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 0, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-5-b": { + "Section": 5, + "Rule": 5, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-5", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline below-grade walls shall conform with assemblies detailed in Appendix A Concrete block, A4) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated below grade wall for which this rule cannot be fully evaluated.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_6.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_6.json new file mode 100644 index 0000000000..0596b9570c --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_6.json @@ -0,0 +1,1410 @@ +{ + "rule-5-6-a": { + "Section": 5, + "Rule": 6, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-b": { + "Section": 5, + "Rule": 6, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on cooling capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor for the space is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 3516.8533333333335 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 3516.8533333333335 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-c": { + "Section": 5, + "Rule": 6, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.363408904595587 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.363408904595587 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-d": { + "Section": 5, + "Rule": 6, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline below-grade wall C-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-e": { + "Section": 5, + "Rule": 6, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline below-grade wall C-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.6757134319824195 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.6757134319824195 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-f": { + "Section": 5, + "Rule": 6, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-g": { + "Section": 5, + "Rule": 6, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with a below-grade wall surface. The project includes a space that has residential occupancy type and is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline below-grade wall C-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.363408904595587 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.363408904595587 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-h": { + "Section": 5, + "Rule": 6, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with a below-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline below-grade wall C-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.6757134319824195 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 0.6757134319824195 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-6-i": { + "Section": 5, + "Rule": 6, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-6", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline below-grade walls shall match the appropriate assembly maximum C-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with a below-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves it. The baseline below-grade wall C-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CORRIDOR_ALL_OTHERS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 10257.488888888889 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "c_factor": 6.473221113108893 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_7.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_7.json new file mode 100644 index 0000000000..3088afe656 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_7.json @@ -0,0 +1,310 @@ +{ + "rule-5-7-a": { + "Section": 5, + "Rule": 7, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-7", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline above-grade wall assemblies must conform with assemblies detailed in Appendix A (Steel-framed A3.3) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is not an above grade wall so this rule does not apply.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "GROUND", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-7-b": { + "Section": 5, + "Rule": 7, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-7", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline above-grade wall assemblies must conform with assemblies detailed in Appendix A (Steel-framed A3.3) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated above grade wall for which this rule cannot be fully evaluated.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_8.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_8.json new file mode 100644 index 0000000000..077e51fba6 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_8.json @@ -0,0 +1,1414 @@ +{ + "rule-5-8-a": { + "Section": 5, + "Rule": 8, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-b": { + "Section": 5, + "Rule": 8, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on cooling capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 42204.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 8792.133333333333 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-c": { + "Section": 5, + "Rule": 8, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that has residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-d": { + "Section": 5, + "Rule": 8, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-e": { + "Section": 5, + "Rule": 8, + "Test": "e", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 1.2378615812787181 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-f": { + "Section": 5, + "Rule": 8, + "Test": "f", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.7041047526539498 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-g": { + "Section": 5, + "Rule": 8, + "Test": "g", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 4A has one building segment with an above-grade wall surface. The project includes a space that is semiheated based on heating and cooling capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "WAREHOUSE_STORAGE_AREA_SMALLER_HAND_CARRIED_ITEMS", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 0.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 699.8538133333334 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.35773064046128095 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-h": { + "Section": 5, + "Rule": 8, + "Test": "h", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an above-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is established correctly.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.363408904595587 + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-8-i": { + "Section": 5, + "Rule": 8, + "Test": "i", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-8", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b) ", + "rule_description": "Baseline above-grade wall assemblies must match the appropriate assembly maximum U-factors in Tables G3.4-1 through G3.4-8", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "Project located in climate zone 8 has one building segment with an above-grade wall surface. The project includes a space that has non-residential occupancy type and is conditioned based on heating capacity of the HVAC system that serves the parent zone. The baseline above-grade wall U-factor for the zone is not established correctly.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.31230452738683256 + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ8", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "area": 9.290303999999999, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 17585.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1", + "u_factor": 0.31230452738683256 + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_9.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_9.json new file mode 100644 index 0000000000..6be35b1902 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/ENV/rule_5_9.json @@ -0,0 +1,311 @@ +{ + "rule-5-9-a": { + "Section": 5, + "Rule": 9, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-9", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline floor assemblies must conform with assemblies detailed in Appendix A (Floors\u2014Steel-joist (A5.3)) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is not a floor so this rule does not apply.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 90, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-5-9-b": { + "Section": 5, + "Rule": 9, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "5-9", + "ruleset_reference": "Table G3.1(5) Baseline Building Performance (b)", + "rule_description": "Baseline floor assemblies must conform with assemblies detailed in Appendix A (Floors\u2014Steel-joist (A5.3)) ", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Applicability", + "schema_version": "0.1.7" + }, + "test_description": "Project has one building segment with one zone and a single surface. The surface is a regulated floor for which this rule cannot be fully evaluated.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "is a regulated floor surface. Conduct a manual check to confirm that Baseline floor assemblies conform with assemblies detailed in Appendix A.", + "rmd_transformations": { + "proposed": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "RPD 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A", + "data_source_type": "OTHER" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "DWELLING_UNIT", + "floor_area": 23.225759999999998 + } + ], + "terminals": [ + { + "id": "Terminal 1", + "served_by_heating_ventilating_air_conditioning_system": "HVAC 1" + } + ], + "surfaces": [ + { + "id": "Surface 1", + "adjacent_to": "EXTERIOR", + "tilt": 120, + "construction": "Construction 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "HVAC 1", + "cooling_system": { + "id": "Cooling System 1", + "design_sensible_cool_capacity": 10551.0 + }, + "heating_system": { + "id": "Heating System 1", + "design_capacity": 9378.275555555556 + } + } + ] + } + ] + } + ], + "constructions": [ + { + "id": "Construction 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_42.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_42.json new file mode 100644 index 0000000000..e8009ff999 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_42.json @@ -0,0 +1,1653 @@ +{ + "rule-22-42-a": { + "Section": 22, + "Rule": 42, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-42", + "ruleset_reference": "G3.2.2.1 Baseline", + "rule_description": "The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.61 kW/ton water cooled centrifugal chiller, with performance curves that agree with Table J-2, curve set Z.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "efficiency_metric_values": [ + 5.76557185245901 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 351712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 335993 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 320824 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 306204 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 298819 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 382518 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 369464 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 356959 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 345003 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 339003 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 397552 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 386717 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 376432 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 366697 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 361851 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 402913 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 394299 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 386234 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 378719 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 375028 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 19576 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 27486 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 38856 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 53686 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 83985.95999999999, + "power": 20848 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168007.09, + "power": 29273 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 251993.05000000002, + "power": 41382 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 335979.01, + "power": 57175 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 80222.76999999999, + "power": 21272 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 160410.37, + "power": 29868 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 240633.14, + "power": 42224 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 320820.74, + "power": 58339 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 76565.09, + "power": 20953 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 153095.01, + "power": 29420 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 229660.09999999998, + "power": 41590 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 306190.02, + "power": 57462 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 74701.08, + "power": 20525 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 149402.16, + "power": 28819 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 224103.24, + "power": 40741 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 298804.32, + "power": 56290 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95627.23000000001, + "power": 19881 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 191254.46000000002, + "power": 27915 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 286881.69, + "power": 39462 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 382508.92000000004, + "power": 54523 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 92356.42, + "power": 21565 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 184748.01, + "power": 30280 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 277104.43, + "power": 42805 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 369460.85, + "power": 59142 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89226.29000000001, + "power": 22356 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 178487.75, + "power": 31391 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 267714.04000000004, + "power": 44376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 356975.5, + "power": 61312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 86236.84, + "power": 22341 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 172508.84999999998, + "power": 31370 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 258745.68999999997, + "power": 44346 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 345017.69999999995, + "power": 61271 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 84759.70000000001, + "power": 22042 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 169484.22999999998, + "power": 30949 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 254243.93000000002, + "power": 43752 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 339003.63, + "power": 60449 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 99390.42, + "power": 19875 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 198780.84, + "power": 27907 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 298171.26, + "power": 39452 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 397561.68, + "power": 54508 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 96682.33, + "power": 21808 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 193364.66, + "power": 30622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 290046.99, + "power": 43289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 386729.32, + "power": 59810 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 94114.92, + "power": 22834 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 188229.84, + "power": 32061 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 282309.58999999997, + "power": 45324 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 376424.51, + "power": 62622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91688.19, + "power": 23025 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183341.21000000002, + "power": 32329 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275029.4, + "power": 45703 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 366682.42000000004, + "power": 63145 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 90457.23999999999, + "power": 22816 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 180914.47999999998, + "power": 32037 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 271371.72, + "power": 45289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 361864.13, + "power": 62574 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 100726.88, + "power": 19746 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 201453.76, + "power": 27726 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 302180.64, + "power": 39195 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 402907.52, + "power": 54154 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 98581.51000000001, + "power": 21849 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 197163.02000000002, + "power": 30678 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 295709.36, + "power": 43369 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 394290.87, + "power": 59920 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 96541.65, + "power": 23051 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 193118.47, + "power": 32366 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 289660.12, + "power": 45755 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 386236.94, + "power": 63217 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 94677.64, + "power": 23411 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 189355.28, + "power": 32871 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 284032.92000000004, + "power": 46469 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 378710.56, + "power": 64204 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 93763.22, + "power": 23283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 187526.44, + "power": 32692 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 281254.49, + "power": 46215 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 375017.70999999996, + "power": 63853 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-22-42-b": { + "Section": 22, + "Rule": 42, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-42", + "ruleset_reference": "G3.2.2.1 Baseline", + "rule_description": "The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.61 kW/ton water cooled centrifugal chiller, however it is missing the capacity and power operating validation points required as by Table J-2 for curve set Z.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "efficiency_metric_values": [ + 5.76557185245901 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-22-42-c": { + "Section": 22, + "Rule": 42, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-42", + "ruleset_reference": "G3.2.2.1 Baseline", + "rule_description": "The sets of performance curves specified in Table J-2 should be used to represent part-load performance of chillers in the baseline building design.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 150-ton, 5.5 COP water cooled centrifugal chiller, with performance curves that do not agree with Table J-2, curves set AA.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 527550.0, + "condensing_loop": "Condenser Loop 1", + "efficiency_metric_values": [ + 5.5 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 351712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 335993 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 320824 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 306204 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 298819 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 382518 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 369464 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 356959 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 345003 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 339003 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 397552 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 386717 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 376432 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 366697 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 361851 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 402913 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 394299 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 386234 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 378719 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 375028 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 19576 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 27486 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 38856 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 53686 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 83985.95999999999, + "power": 20848 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168007.09, + "power": 29273 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 251993.05000000002, + "power": 41382 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 335979.01, + "power": 57175 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 80222.76999999999, + "power": 21272 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 160410.37, + "power": 29868 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 240633.14, + "power": 42224 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 320820.74, + "power": 58339 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 76565.09, + "power": 20953 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 153095.01, + "power": 29420 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 229660.09999999998, + "power": 41590 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 306190.02, + "power": 57462 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 74701.08, + "power": 20525 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 149402.16, + "power": 28819 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 224103.24, + "power": 40741 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 298804.32, + "power": 56290 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95627.23000000001, + "power": 19881 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 191254.46000000002, + "power": 27915 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 286881.69, + "power": 39462 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 382508.92000000004, + "power": 54523 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 92356.42, + "power": 21565 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 184748.01, + "power": 30280 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 277104.43, + "power": 42805 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 369460.85, + "power": 59142 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89226.29000000001, + "power": 22356 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 178487.75, + "power": 31391 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 267714.04000000004, + "power": 44376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 356975.5, + "power": 61312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 86236.84, + "power": 22341 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 172508.84999999998, + "power": 31370 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 258745.68999999997, + "power": 44346 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 345017.69999999995, + "power": 61271 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 84759.70000000001, + "power": 22042 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 169484.22999999998, + "power": 30949 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 254243.93000000002, + "power": 43752 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 339003.63, + "power": 60449 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 99390.42, + "power": 19875 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 198780.84, + "power": 27907 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 298171.26, + "power": 39452 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 397561.68, + "power": 54508 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 96682.33, + "power": 21808 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 193364.66, + "power": 30622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 290046.99, + "power": 43289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 386729.32, + "power": 59810 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 94114.92, + "power": 22834 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 188229.84, + "power": 32061 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 282309.58999999997, + "power": 45324 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 376424.51, + "power": 62622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91688.19, + "power": 23025 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183341.21000000002, + "power": 32329 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275029.4, + "power": 45703 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 366682.42000000004, + "power": 63145 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 90457.23999999999, + "power": 22816 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 180914.47999999998, + "power": 32037 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 271371.72, + "power": 45289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 361864.13, + "power": 62574 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 100726.88, + "power": 19746 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 201453.76, + "power": 27726 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 302180.64, + "power": 39195 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 402907.52, + "power": 54154 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 98581.51000000001, + "power": 21849 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 197163.02000000002, + "power": 30678 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 295709.36, + "power": 43369 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 394290.87, + "power": 59920 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 96541.65, + "power": 23051 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 193118.47, + "power": 32366 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 289660.12, + "power": 45755 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 386236.94, + "power": 63217 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 94677.64, + "power": 23411 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 189355.28, + "power": 32871 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 284032.92000000004, + "power": 46469 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 378710.56, + "power": 64204 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 93763.22, + "power": 23283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 187526.44, + "power": 32692 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 281254.49, + "power": 46215 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 375017.70999999996, + "power": 63853 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_43.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_43.json new file mode 100644 index 0000000000..f6dd9d1d20 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_43.json @@ -0,0 +1,2329 @@ +{ + "rule-22-43-a": { + "Section": 22, + "Rule": 43, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-43", + "ruleset_reference": "Section G3.2.2.1 Equipment Efficiencies", + "rule_description": "When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "No", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.61 kW/ton water cooled centrifugal chiller, with performance curves that agree with Table J-2, curve set Z. The minimum load ratio and unload ratio are both 0.25.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "minimum_load_ratio": 0.25, + "minimum_unload_ratio": 0.25, + "efficiency_metric_values": [ + 5.76557185245901 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 351712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 335993 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 320824 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 306204 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 298819 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 382518 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 369464 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 356959 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 345003 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 339003 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 397552 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 386717 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 376432 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 366697 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 361851 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 402913 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 394299 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 386234 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 378719 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 375028 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 19576 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 27486 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 38856 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 53686 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 83985.95999999999, + "power": 20848 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168007.09, + "power": 29273 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 251993.05000000002, + "power": 41382 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 335979.01, + "power": 57175 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 80222.76999999999, + "power": 21272 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 160410.37, + "power": 29868 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 240633.14, + "power": 42224 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 320820.74, + "power": 58339 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 76565.09, + "power": 20953 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 153095.01, + "power": 29420 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 229660.09999999998, + "power": 41590 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 306190.02, + "power": 57462 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 74701.08, + "power": 20525 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 149402.16, + "power": 28819 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 224103.24, + "power": 40741 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 298804.32, + "power": 56290 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95627.23000000001, + "power": 19881 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 191254.46000000002, + "power": 27915 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 286881.69, + "power": 39462 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 382508.92000000004, + "power": 54523 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 92356.42, + "power": 21565 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 184748.01, + "power": 30280 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 277104.43, + "power": 42805 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 369460.85, + "power": 59142 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89226.29000000001, + "power": 22356 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 178487.75, + "power": 31391 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 267714.04000000004, + "power": 44376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 356975.5, + "power": 61312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 86236.84, + "power": 22341 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 172508.84999999998, + "power": 31370 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 258745.68999999997, + "power": 44346 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 345017.69999999995, + "power": 61271 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 84759.70000000001, + "power": 22042 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 169484.22999999998, + "power": 30949 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 254243.93000000002, + "power": 43752 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 339003.63, + "power": 60449 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 99390.42, + "power": 19875 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 198780.84, + "power": 27907 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 298171.26, + "power": 39452 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 397561.68, + "power": 54508 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 96682.33, + "power": 21808 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 193364.66, + "power": 30622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 290046.99, + "power": 43289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 386729.32, + "power": 59810 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 94114.92, + "power": 22834 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 188229.84, + "power": 32061 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 282309.58999999997, + "power": 45324 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 376424.51, + "power": 62622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91688.19, + "power": 23025 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183341.21000000002, + "power": 32329 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275029.4, + "power": 45703 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 366682.42000000004, + "power": 63145 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 90457.23999999999, + "power": 22816 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 180914.47999999998, + "power": 32037 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 271371.72, + "power": 45289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 361864.13, + "power": 62574 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 100726.88, + "power": 19746 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 201453.76, + "power": 27726 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 302180.64, + "power": 39195 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 402907.52, + "power": 54154 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 98581.51000000001, + "power": 21849 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 197163.02000000002, + "power": 30678 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 295709.36, + "power": 43369 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 394290.87, + "power": 59920 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 96541.65, + "power": 23051 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 193118.47, + "power": 32366 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 289660.12, + "power": 45755 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 386236.94, + "power": 63217 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 94677.64, + "power": 23411 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 189355.28, + "power": 32871 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 284032.92000000004, + "power": 46469 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 378710.56, + "power": 64204 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 93763.22, + "power": 23283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 187526.44, + "power": 32692 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 281254.49, + "power": 46215 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 375017.70999999996, + "power": 63853 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-22-43-b": { + "Section": 22, + "Rule": 43, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-43", + "ruleset_reference": "Section G3.2.2.1 Equipment Efficiencies", + "rule_description": "When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "No", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.61 kW/ton water cooled centrifugal chiller, with performance curves that agree with Table J-2, curve set Z. The minimum load ratio and unload ratio are both undefined.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "efficiency_metric_values": [ + 5.76557185245901 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 351712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 335993 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 320824 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 306204 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 298819 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 382518 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 369464 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 356959 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 345003 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 339003 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 397552 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 386717 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 376432 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 366697 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 361851 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 402913 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 394299 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 386234 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 378719 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 375028 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 19576 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 27486 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 38856 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 53686 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 83985.95999999999, + "power": 20848 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168007.09, + "power": 29273 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 251993.05000000002, + "power": 41382 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 335979.01, + "power": 57175 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 80222.76999999999, + "power": 21272 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 160410.37, + "power": 29868 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 240633.14, + "power": 42224 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 320820.74, + "power": 58339 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 76565.09, + "power": 20953 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 153095.01, + "power": 29420 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 229660.09999999998, + "power": 41590 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 306190.02, + "power": 57462 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 74701.08, + "power": 20525 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 149402.16, + "power": 28819 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 224103.24, + "power": 40741 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 298804.32, + "power": 56290 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95627.23000000001, + "power": 19881 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 191254.46000000002, + "power": 27915 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 286881.69, + "power": 39462 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 382508.92000000004, + "power": 54523 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 92356.42, + "power": 21565 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 184748.01, + "power": 30280 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 277104.43, + "power": 42805 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 369460.85, + "power": 59142 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89226.29000000001, + "power": 22356 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 178487.75, + "power": 31391 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 267714.04000000004, + "power": 44376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 356975.5, + "power": 61312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 86236.84, + "power": 22341 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 172508.84999999998, + "power": 31370 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 258745.68999999997, + "power": 44346 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 345017.69999999995, + "power": 61271 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 84759.70000000001, + "power": 22042 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 169484.22999999998, + "power": 30949 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 254243.93000000002, + "power": 43752 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 339003.63, + "power": 60449 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 99390.42, + "power": 19875 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 198780.84, + "power": 27907 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 298171.26, + "power": 39452 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 397561.68, + "power": 54508 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 96682.33, + "power": 21808 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 193364.66, + "power": 30622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 290046.99, + "power": 43289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 386729.32, + "power": 59810 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 94114.92, + "power": 22834 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 188229.84, + "power": 32061 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 282309.58999999997, + "power": 45324 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 376424.51, + "power": 62622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91688.19, + "power": 23025 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183341.21000000002, + "power": 32329 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275029.4, + "power": 45703 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 366682.42000000004, + "power": 63145 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 90457.23999999999, + "power": 22816 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 180914.47999999998, + "power": 32037 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 271371.72, + "power": 45289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 361864.13, + "power": 62574 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 100726.88, + "power": 19746 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 201453.76, + "power": 27726 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 302180.64, + "power": 39195 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 402907.52, + "power": 54154 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 98581.51000000001, + "power": 21849 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 197163.02000000002, + "power": 30678 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 295709.36, + "power": 43369 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 394290.87, + "power": 59920 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 96541.65, + "power": 23051 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 193118.47, + "power": 32366 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 289660.12, + "power": 45755 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 386236.94, + "power": 63217 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 94677.64, + "power": 23411 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 189355.28, + "power": 32871 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 284032.92000000004, + "power": 46469 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 378710.56, + "power": 64204 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 93763.22, + "power": 23283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 187526.44, + "power": 32692 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 281254.49, + "power": 46215 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 375017.70999999996, + "power": 63853 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-22-43-c": { + "Section": 22, + "Rule": 43, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-43", + "ruleset_reference": "Section G3.2.2.1 Equipment Efficiencies", + "rule_description": "When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "No", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.61 kW/ton water cooled centrifugal chiller, with performance curves that agree with Table J-2, curve set Z. The minimum load ratio and unload ratio are both 0.3.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "minimum_load_ratio": 0.3, + "minimum_unload_ratio": 0.3, + "efficiency_metric_values": [ + 5.76557185245901 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 351712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 335993 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 320824 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 306204 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 298819 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 382518 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 369464 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 356959 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 345003 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 339003 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 397552 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 386717 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 376432 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 366697 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 361851 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 402913 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 394299 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 386234 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 378719 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 375028 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 19576 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 27486 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 38856 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 53686 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 83985.95999999999, + "power": 20848 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168007.09, + "power": 29273 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 251993.05000000002, + "power": 41382 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 335979.01, + "power": 57175 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 80222.76999999999, + "power": 21272 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 160410.37, + "power": 29868 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 240633.14, + "power": 42224 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 320820.74, + "power": 58339 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 76565.09, + "power": 20953 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 153095.01, + "power": 29420 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 229660.09999999998, + "power": 41590 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 306190.02, + "power": 57462 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 74701.08, + "power": 20525 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 149402.16, + "power": 28819 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 224103.24, + "power": 40741 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 298804.32, + "power": 56290 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95627.23000000001, + "power": 19881 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 191254.46000000002, + "power": 27915 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 286881.69, + "power": 39462 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 382508.92000000004, + "power": 54523 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 92356.42, + "power": 21565 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 184748.01, + "power": 30280 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 277104.43, + "power": 42805 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 369460.85, + "power": 59142 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89226.29000000001, + "power": 22356 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 178487.75, + "power": 31391 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 267714.04000000004, + "power": 44376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 356975.5, + "power": 61312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 86236.84, + "power": 22341 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 172508.84999999998, + "power": 31370 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 258745.68999999997, + "power": 44346 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 345017.69999999995, + "power": 61271 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 84759.70000000001, + "power": 22042 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 169484.22999999998, + "power": 30949 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 254243.93000000002, + "power": 43752 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 339003.63, + "power": 60449 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 99390.42, + "power": 19875 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 198780.84, + "power": 27907 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 298171.26, + "power": 39452 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 397561.68, + "power": 54508 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 96682.33, + "power": 21808 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 193364.66, + "power": 30622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 290046.99, + "power": 43289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 386729.32, + "power": 59810 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 94114.92, + "power": 22834 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 188229.84, + "power": 32061 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 282309.58999999997, + "power": 45324 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 376424.51, + "power": 62622 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91688.19, + "power": 23025 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183341.21000000002, + "power": 32329 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275029.4, + "power": 45703 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 366682.42000000004, + "power": 63145 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 90457.23999999999, + "power": 22816 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 180914.47999999998, + "power": 32037 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 271371.72, + "power": 45289 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 361864.13, + "power": 62574 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 100726.88, + "power": 19746 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 201453.76, + "power": 27726 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 302180.64, + "power": 39195 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 402907.52, + "power": 54154 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 98581.51000000001, + "power": 21849 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 197163.02000000002, + "power": 30678 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 295709.36, + "power": 43369 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 394290.87, + "power": 59920 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 96541.65, + "power": 23051 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 193118.47, + "power": 32366 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 289660.12, + "power": 45755 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 386236.94, + "power": 63217 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 94677.64, + "power": 23411 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 189355.28, + "power": 32871 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 284032.92000000004, + "power": 46469 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 378710.56, + "power": 64204 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 93763.22, + "power": 23283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 187526.44, + "power": 32692 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 281254.49, + "power": 46215 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 375017.70999999996, + "power": 63853 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-22-43-d": { + "Section": 22, + "Rule": 43, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-43", + "ruleset_reference": "Section G3.2.2.1 Equipment Efficiencies", + "rule_description": "When using performance curves from Normative Appendix J, chiller minimum part-load ratio (ratio of load to available capacity at a given simulation time step) and minimum compressor unloading ratio (part-load ratio below which the chiller capacity cannot be reduced by unloading and chiller is false loaded) shall be equal to 0.25.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "No", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment served by System Type-1 PTAC HVAC systems. ", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "PTAC Terminal 1", + "is_supply_ducted": false, + "type": "CONSTANT_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "PTAC 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "PTAC 1", + "cooling_system": { + "id": "DX Coil 1", + "type": "DIRECT_EXPANSION" + }, + "heating_system": { + "id": "HHW Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "CAV Fan System 1", + "fan_control": "CONSTANT", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_44.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_44.json new file mode 100644 index 0000000000..d637d734bf --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-CHW/rule_22_44.json @@ -0,0 +1,2980 @@ +{ + "rule-22-44-a": { + "Section": 22, + "Rule": 44, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-44", + "ruleset_reference": "Table G3.1 #10b Proposed Column", + "rule_description": "Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10\u00b0F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.610 kW/ton FL water cooled centrifugal chiller, with performance curves that agree with Table J-3, curve set H. The design temperature across the condenser is 10F", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "design_entering_condenser_temperature": 35.00000000000006, + "design_leaving_condenser_temperature": 29.444444444444457, + "efficiency_metric_values": [ + 5.765 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 349113.9499 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 337373.764275 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 314752.8599 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 281251.236775 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 259530.3327 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 380758.5091 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 375586.320975 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 359533.4141 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 332599.788475 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 314294.2431 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 394188.1736 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 394489.316725 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 383909.7411 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 362449.446725 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 346990.0336 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 395853.4731 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 401627.947475 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 396521.7031 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 380534.739975 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 367921.4591 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87291.94, + "power": 18254 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 174548.71000000002, + "power": 25070 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 261840.65000000002, + "power": 35809 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 349097.42000000004, + "power": 50470 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 84337.66, + "power": 20504 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168675.32, + "power": 28160 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 253012.97999999998, + "power": 40223 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 337385.81, + "power": 56691 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 78675.29000000001, + "power": 20703 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 157385.75, + "power": 28434 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 236061.04, + "power": 40613 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 314736.32999999996, + "power": 57241 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 70304.83, + "power": 18925 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 140609.66, + "power": 25992 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 210949.66, + "power": 37125 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 281254.49, + "power": 52325 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 64888.649999999994, + "power": 17310 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 129777.29999999999, + "power": 23773 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 194630.78, + "power": 33957 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 259519.43000000002, + "power": 47859 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95205.19, + "power": 18255 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 190375.21000000002, + "power": 25071 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 285580.4, + "power": 35810 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 380750.42000000004, + "power": 50472 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 93903.9, + "power": 21361 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 187807.8, + "power": 29337 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 281676.53, + "power": 41903 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 375580.43, + "power": 59060 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89894.51999999999, + "power": 22405 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 179753.87, + "power": 30771 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 269648.39, + "power": 43951 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 359542.91000000003, + "power": 61946 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 83141.88, + "power": 21376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 166283.76, + "power": 29358 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 249460.81000000003, + "power": 41934 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 332602.69, + "power": 59103 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 78569.78, + "power": 20086 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 157139.56, + "power": 27586 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 235709.34, + "power": 39403 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 314279.12, + "power": 55535 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 98546.34, + "power": 17778 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 197092.68, + "power": 24416 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 295639.02, + "power": 34874 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 394185.36, + "power": 49152 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 98616.68, + "power": 21459 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 197233.36, + "power": 29472 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 295850.04000000004, + "power": 42096 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 394501.89, + "power": 59332 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 95978.93, + "power": 23115 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 191957.86, + "power": 31746 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 287936.79000000004, + "power": 45344 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 383915.72, + "power": 63909 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 90597.92, + "power": 22665 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 181231.01, + "power": 31128 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 271828.93, + "power": 44461 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 362462.02, + "power": 62664 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 86764.39, + "power": 21639 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 173493.61, + "power": 29719 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 260258.0, + "power": 42448 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 346987.22, + "power": 59828 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 98968.38, + "power": 17006 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 197936.76, + "power": 23356 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 296905.14, + "power": 33360 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 395838.35, + "power": 47019 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 100410.35, + "power": 21137 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 200820.7, + "power": 29029 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 301231.05000000005, + "power": 41463 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 401641.4, + "power": 58027 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 99144.23000000001, + "power": 23318 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 198253.28999999998, + "power": 32025 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 297397.52, + "power": 45743 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 396506.57999999996, + "power": 64471 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 95134.85, + "power": 23402 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 190269.7, + "power": 32141 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 285404.55000000005, + "power": 45908 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 380539.4, + "power": 64703 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 91969.54999999999, + "power": 22634 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 183974.27000000002, + "power": 31086 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 275943.82, + "power": 44401 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 367913.37, + "power": 62580 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-22-44-b": { + "Section": 22, + "Rule": 44, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-44", + "ruleset_reference": "Table G3.1 #10b Proposed Column", + "rule_description": "Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10\u00b0F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by an air cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 9.7 EER air cooled centrifugal chiller, with performance curves that agree with Table J-3, curve set K. The design temperature across the condenser is 10 delta F.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "design_entering_condenser_temperature": 40.5555555555556, + "design_leaving_condenser_temperature": 35.00000000000006, + "efficiency_metric_values": [ + 2.8429 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 350764.8297 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 348654.6297 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 336872.6797 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 315418.979699999 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 300440.7801 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 390926.1561 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 386995.9086 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 373393.9111 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 350120.1636 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 334195.539299999 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 412652.4236 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 407205.46985 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 392086.7661 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 367296.31235 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 350583.0008 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 423704.5961 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 416740.9361 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 400105.5261 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 373798.3661 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 356296.3673 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87678.81, + "power": 14598 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175392.78999999998, + "power": 38344 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263071.6, + "power": 68028 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 350750.41000000003, + "power": 96881 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 87151.26000000001, + "power": 15695 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 174337.69, + "power": 41226 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 261488.94999999998, + "power": 73141 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 348640.20999999996, + "power": 104162 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 84232.15, + "power": 17093 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 168429.13, + "power": 44899 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 252661.28, + "power": 79658 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 336858.26, + "power": 113443 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 78851.14, + "power": 18545 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 157702.28, + "power": 48712 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 236553.42, + "power": 86422 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 315404.56, + "power": 123077 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 75123.12, + "power": 19198 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 150211.07, + "power": 50430 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 225334.18999999997, + "power": 89470 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 300457.31, + "power": 127416 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 97737.43, + "power": 14998 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 195474.86, + "power": 39396 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 293177.12, + "power": 69894 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 390914.55000000005, + "power": 99538 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 96752.67, + "power": 16019 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 193505.34, + "power": 42077 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 290258.01, + "power": 74651 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 387010.68, + "power": 106312 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 93341.18, + "power": 17455 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 186682.36, + "power": 45850 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 280058.70999999996, + "power": 81345 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 373399.89, + "power": 115845 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 87538.13, + "power": 19057 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 175076.26, + "power": 50057 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 262579.22, + "power": 88809 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 350117.35, + "power": 126475 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 83563.92, + "power": 19832 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 167092.66999999998, + "power": 52095 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 250656.59, + "power": 92423 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 334185.33999999997, + "power": 131623 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 103153.61, + "power": 15257 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 206342.39, + "power": 40076 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 309496.0, + "power": 71100 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 412649.61, + "power": 101256 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 101817.15, + "power": 16162 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 203599.13, + "power": 42454 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 305416.28, + "power": 75319 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 407198.26, + "power": 107265 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 98018.79000000001, + "power": 17540 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 196037.58000000002, + "power": 46074 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 294056.37, + "power": 81742 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 392075.16000000003, + "power": 116411 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 91828.87, + "power": 19139 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 183657.74, + "power": 50274 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 275486.61, + "power": 89194 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 367280.31, + "power": 127023 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 87643.64, + "power": 19935 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 175287.28, + "power": 52364 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 262930.92000000004, + "power": 92902 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 350574.56, + "power": 132304 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 105932.04000000001, + "power": 15582 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 211864.08000000002, + "power": 40931 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 317760.94999999995, + "power": 72618 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 423692.99, + "power": 103417 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 104173.54000000001, + "power": 16330 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 208382.25, + "power": 42895 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 312555.79000000004, + "power": 76102 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 416729.32999999996, + "power": 108380 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 100023.48000000001, + "power": 17573 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 200046.96000000002, + "power": 46161 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 300070.44, + "power": 81895 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 400093.92000000004, + "power": 116630 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 93446.69, + "power": 19058 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 186893.38, + "power": 50061 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 280340.07, + "power": 88816 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 373786.76, + "power": 126485 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 89085.61, + "power": 19802 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 178136.05, + "power": 52016 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 267221.66000000003, + "power": 92283 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 356307.27, + "power": 131423 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-22-44-c": { + "Section": 22, + "Rule": 44, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-44", + "ruleset_reference": "Table G3.1 #10b Proposed Column", + "rule_description": "Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10\u00b0F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.610 kW/ton FL water cooled centrifugal chiller, with performance curves that agree with Table J-3, curve set H. The design temperature across the condenser is not specified", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "design_entering_condenser_temperature": 40.5555555555556, + "design_leaving_condenser_temperature": 29.444444444444457, + "efficiency_metric_values": [ + 5.765 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 349113.9499 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 337373.764275 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 314752.8599 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 281251.236775 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 259530.3327 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 380758.5091 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 375586.320975 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 359533.4141 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 332599.788475 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 314294.2431 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 394188.1736 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 394489.316725 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 383909.7411 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 362449.446725 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 346990.0336 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 395853.4731 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 401627.947475 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 396521.7031 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 380534.739975 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 367921.4591 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87291.94, + "power": 18254 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 174548.71000000002, + "power": 25070 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 261840.65000000002, + "power": 35809 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 349097.42000000004, + "power": 50470 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 84337.66, + "power": 20504 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 168675.32, + "power": 28160 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 253012.97999999998, + "power": 40223 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 337385.81, + "power": 56691 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 78675.29000000001, + "power": 20703 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 157385.75, + "power": 28434 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 236061.04, + "power": 40613 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 314736.32999999996, + "power": 57241 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 70304.83, + "power": 18925 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 140609.66, + "power": 25992 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 210949.66, + "power": 37125 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 281254.49, + "power": 52325 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 64888.649999999994, + "power": 17310 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 129777.29999999999, + "power": 23773 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 194630.78, + "power": 33957 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 259519.43000000002, + "power": 47859 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 95205.19, + "power": 18255 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 190375.21000000002, + "power": 25071 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 285580.4, + "power": 35810 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 380750.42000000004, + "power": 50472 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 93903.9, + "power": 21361 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 187807.8, + "power": 29337 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 281676.53, + "power": 41903 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 375580.43, + "power": 59060 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 89894.51999999999, + "power": 22405 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 179753.87, + "power": 30771 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 269648.39, + "power": 43951 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 359542.91000000003, + "power": 61946 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 83141.88, + "power": 21376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 166283.76, + "power": 29358 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 249460.81000000003, + "power": 41934 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 332602.69, + "power": 59103 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 78569.78, + "power": 20086 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 157139.56, + "power": 27586 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 235709.34, + "power": 39403 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 314279.12, + "power": 55535 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 98546.34, + "power": 17778 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 197092.68, + "power": 24416 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 295639.02, + "power": 34874 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 394185.36, + "power": 49152 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 98616.68, + "power": 21459 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 197233.36, + "power": 29472 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 295850.04000000004, + "power": 42096 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 394501.89, + "power": 59332 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 95978.93, + "power": 23115 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 191957.86, + "power": 31746 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 287936.79000000004, + "power": 45344 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 383915.72, + "power": 63909 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 90597.92, + "power": 22665 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 181231.01, + "power": 31128 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 271828.93, + "power": 44461 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 362462.02, + "power": 62664 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 86764.39, + "power": 21639 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 173493.61, + "power": 29719 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 260258.0, + "power": 42448 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 346987.22, + "power": 59828 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 98968.38, + "power": 17006 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 197936.76, + "power": 23356 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 296905.14, + "power": 33360 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 395838.35, + "power": 47019 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 100410.35, + "power": 21137 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 200820.7, + "power": 29029 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 301231.05000000005, + "power": 41463 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 401641.4, + "power": 58027 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 99144.23000000001, + "power": 23318 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 198253.28999999998, + "power": 32025 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 297397.52, + "power": 45743 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 396506.57999999996, + "power": 64471 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 95134.85, + "power": 23402 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 190269.7, + "power": 32141 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 285404.55000000005, + "power": 45908 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 380539.4, + "power": 64703 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 91969.54999999999, + "power": 22634 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 183974.27000000002, + "power": 31086 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 275943.82, + "power": 44401 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 367913.37, + "power": 62580 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-22-44-d": { + "Section": 22, + "Rule": 44, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "22-44", + "ruleset_reference": "Table G3.1 #10b Proposed Column", + "rule_description": "Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10\u00b0F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.", + "applicable_rmr": "Proposed Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a water cooled baseline system type 7 with a chilled water system. The chilled water system consists of a 100-ton, 0.610 kW/ton FL water cooled centrifugal chiller, with performance curves that slightly disagree with Table J-3, curve set H. The design temperature across the condenser is set correctly to 10 delta F.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "FAIL unless manufacturer full- and part-load data is provided to support the modeled curves.", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Secondary CHW Loop 1" + }, + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "chillers": [ + { + "id": "Chiller 1", + "cooling_loop": "Chiller Loop 1", + "compressor_type": "CENTRIFUGAL", + "rated_capacity": 351700.0, + "condensing_loop": "Condenser Loop 1", + "design_entering_condenser_temperature": 35.00000000000006, + "design_leaving_condenser_temperature": 29.444444444444457, + "efficiency_metric_values": [ + 5.765 + ], + "efficiency_metric_types": [ + "FULL_LOAD_EFFICIENCY_RATED" + ], + "capacity_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "capacity": 250000 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "capacity": 348655 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "capacity": 336873 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "capacity": 315419 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "capacity": 300441 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "capacity": 390926 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "capacity": 386996 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "capacity": 373394 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "capacity": 350120 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "capacity": 334196 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "capacity": 412652 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "capacity": 407205 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "capacity": 392087 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "capacity": 367296 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "capacity": 350583 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "capacity": 423705 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "capacity": 416741 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "capacity": 400106 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "capacity": 373798 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "capacity": 356296 + } + ], + "power_operating_points": [ + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 18254 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 25070 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 35809 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 50470 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 87925.0, + "power": 20504 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 175850.0, + "power": 28160 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 263775.0, + "power": 40223 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 22.500000000000057, + "load": 351700.0, + "power": 56691 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 87925.0, + "power": 20703 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 175850.0, + "power": 28434 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 263775.0, + "power": 40613 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 29.444444444444457, + "load": 351700.0, + "power": 57241 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 87925.0, + "power": 18925 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 175850.0, + "power": 25992 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 263775.0, + "power": 37125 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 36.388888888888914, + "load": 351700.0, + "power": 52325 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 87925.0, + "power": 17310 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 175850.0, + "power": 23773 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 263775.0, + "power": 33957 + }, + { + "chilled_water_supply_temperature": 3.888888888888914, + "condenser_temperature": 40.00000000000006, + "load": 351700.0, + "power": 47859 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 18255 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 25071 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 35810 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 50472 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 87925.0, + "power": 21361 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 175850.0, + "power": 29337 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 263775.0, + "power": 41903 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 22.500000000000057, + "load": 351700.0, + "power": 59060 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 87925.0, + "power": 22405 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 175850.0, + "power": 30771 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 263775.0, + "power": 43951 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 29.444444444444457, + "load": 351700.0, + "power": 61946 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 87925.0, + "power": 21376 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 175850.0, + "power": 29358 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 263775.0, + "power": 41934 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 36.388888888888914, + "load": 351700.0, + "power": 59103 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 87925.0, + "power": 20086 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 175850.0, + "power": 27586 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 263775.0, + "power": 39403 + }, + { + "chilled_water_supply_temperature": 7.222222222222285, + "condenser_temperature": 40.00000000000006, + "load": 351700.0, + "power": 55535 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 17778 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 24416 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 34874 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 49152 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 87925.0, + "power": 21459 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 175850.0, + "power": 29472 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 263775.0, + "power": 42096 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 22.500000000000057, + "load": 351700.0, + "power": 59332 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 87925.0, + "power": 23115 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 175850.0, + "power": 31746 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 263775.0, + "power": 45344 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 29.444444444444457, + "load": 351700.0, + "power": 63909 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 87925.0, + "power": 22665 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 175850.0, + "power": 31128 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 263775.0, + "power": 44461 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 36.388888888888914, + "load": 351700.0, + "power": 62664 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 87925.0, + "power": 21639 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 175850.0, + "power": 29719 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 263775.0, + "power": 42448 + }, + { + "chilled_water_supply_temperature": 10.000000000000057, + "condenser_temperature": 40.00000000000006, + "load": 351700.0, + "power": 59828 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 87925.0, + "power": 17006 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 175850.0, + "power": 23356 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 263775.0, + "power": 33360 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 15.5555555555556, + "load": 351700.0, + "power": 47019 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 87925.0, + "power": 21137 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 175850.0, + "power": 29029 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 263775.0, + "power": 41463 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 22.500000000000057, + "load": 351700.0, + "power": 58439 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 87925.0, + "power": 23318 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 175850.0, + "power": 32025 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 263775.0, + "power": 45743 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 29.444444444444457, + "load": 351700.0, + "power": 64471 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 87925.0, + "power": 23402 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 175850.0, + "power": 32141 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 263775.0, + "power": 45908 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 36.388888888888914, + "load": 351700.0, + "power": 64703 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 87925.0, + "power": 22634 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 175850.0, + "power": 31086 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 263775.0, + "power": 44401 + }, + { + "chilled_water_supply_temperature": 12.777777777777828, + "condenser_temperature": 40.00000000000006, + "load": 351700.0, + "power": 62580 + } + ] + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Chiller Pump 1", + "loop_or_piping": "Chiller Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "Secondary CHW Pump", + "loop_or_piping": "Secondary CHW Loop 1", + "speed_control": "VARIABLE_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING" + }, + { + "id": "Chiller Loop 1", + "type": "COOLING", + "child_loops": [ + { + "id": "Secondary CHW Loop 1", + "type": "COOLING" + } + ] + }, + { + "id": "Condenser Loop 1", + "type": "CONDENSER" + } + ], + "heat_rejections": [ + { + "id": "Heat Rejection 1", + "loop": "Condenser Loop 1" + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-HW/rule_21_19.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-HW/rule_21_19.json new file mode 100644 index 0000000000..10b57dac74 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/HVAC-HW/rule_21_19.json @@ -0,0 +1,348 @@ +{ + "rule-21-19-a": { + "Section": 21, + "Rule": 19, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "21-19", + "ruleset_reference": "Section G3.2.3.5", + "rule_description": "Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a baseline system type 7 with a hot water loop. The hot water loop operation is intermittent.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1", + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "heating_source": "HOT_WATER", + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + }, + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Chilled Water Loop 1" + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "external_fluid_sources": [ + { + "id": "Purchased CW 1", + "loop": "Chilled Water Loop 1", + "type": "CHILLED_WATER" + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "CHW Pump 1", + "loop_or_piping": "Chilled Water Loop 1", + "speed_control": "FIXED_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING", + "heating_design_and_control": { + "id": "DAC 1", + "operation": "INTERMITTENT" + } + }, + { + "id": "Chilled Water Loop 1", + "type": "COOLING" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-21-19-b": { + "Section": 21, + "Rule": 19, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "21-19", + "ruleset_reference": "Section G3.2.3.5", + "rule_description": "Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with two zones served by a baseline system type 7 with a hot water loop. The hot water loop operation is continuous.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "VAV Air Terminal 1", + "is_supply_ducted": true, + "heating_source": "HOT_WATER", + "heating_from_loop": "Boiler Loop 1", + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7" + } + ] + }, + { + "id": "Thermal Zone 2", + "terminals": [ + { + "id": "VAV Air Terminal 2", + "is_supply_ducted": true, + "heating_source": "HOT_WATER", + "type": "VARIABLE_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "System 7", + "heating_from_loop": "Boiler Loop 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "System 7", + "preheat_system": { + "id": "Preheat Coil 1", + "type": "FLUID_LOOP", + "hot_water_loop": "Boiler Loop 1" + }, + "fan_system": { + "id": "VAV Fan System 1", + "fan_control": "VARIABLE_SPEED_DRIVE", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ], + "return_fans": [ + { + "id": "Return Fan 1" + } + ] + }, + "cooling_system": { + "id": "CHW Coil 1", + "type": "FLUID_LOOP", + "chilled_water_loop": "Chilled Water Loop 1" + } + } + ] + } + ] + } + ], + "boilers": [ + { + "id": "Boiler 1", + "loop": "Boiler Loop 1", + "energy_source_type": "NATURAL_GAS" + } + ], + "external_fluid_sources": [ + { + "id": "Purchased CW 1", + "loop": "Chilled Water Loop 1", + "type": "CHILLED_WATER" + } + ], + "pumps": [ + { + "id": "Boiler Pump 1", + "loop_or_piping": "Boiler Loop 1", + "speed_control": "FIXED_SPEED" + }, + { + "id": "CHW Pump 1", + "loop_or_piping": "Chilled Water Loop 1", + "speed_control": "FIXED_SPEED" + } + ], + "fluid_loops": [ + { + "id": "Boiler Loop 1", + "type": "HEATING", + "heating_design_and_control": { + "id": "DAC 1", + "operation": "CONTINUOUS" + } + }, + { + "id": "Chilled Water Loop 1", + "type": "COOLING" + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-21-19-c": { + "Section": 21, + "Rule": 19, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "21-19", + "ruleset_reference": "Section G3.2.3.5", + "rule_description": "Hot-water pumps shall only be enabled when a load exists on the associated hot-water loop.", + "applicable_rmr": "Baseline Model", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "primary_rule": "Full", + "schema_version": "0.1.7" + }, + "test_description": "The project has one building segment with one zone served by a baseline system type 2. There is no heating loop at all.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "terminals": [ + { + "id": "PTHP Terminal 1", + "is_supply_ducted": false, + "type": "CONSTANT_AIR_VOLUME", + "served_by_heating_ventilating_air_conditioning_system": "PTHP 1" + } + ] + } + ], + "heating_ventilating_air_conditioning_systems": [ + { + "id": "PTHP 1", + "heating_system": { + "id": "HP Heating Coil 1", + "type": "HEAT_PUMP" + }, + "fan_system": { + "id": "CAV Fan System 1", + "fan_control": "CONSTANT", + "supply_fans": [ + { + "id": "Supply Fan 1" + } + ] + }, + "cooling_system": { + "id": "HP Cooling Coil 1", + "type": "DIRECT_EXPANSION" + } + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_11.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_11.json new file mode 100644 index 0000000000..18d08c0ce2 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_11.json @@ -0,0 +1,294 @@ +{ + "rule-6-11-a": { + "Section": 6, + "Rule": 11, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-11", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and space. The proposed and baseline spaces have 650 watts of interior display lighting power, which falls below the ASHRAE 90.1 minimum allowance of 750 watts.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 6.99654177086132 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 6.99654177086132 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-11-b": { + "Section": 6, + "Rule": 11, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-11", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and space. The proposed space has 1200 watts of interior display lighting power while the baseline has 1400 watts.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 12.916692500051669 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 15.069474583393612 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-11-c": { + "Section": 6, + "Rule": 11, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-11", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design in accordance with Section 9.5.2.2(b), the baseline building design retail display lighting additional power shall be equal to the limits established by Section 9.5.2.2(b) or same as proposed, whichever is less.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and space. The proposed space has 550 watts of interior display lighting power while the baseline has 500 watts.", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "It could not be determined whether the baseline retail display lighting power is modeled correctly as the minimum of the proposed retail display lighting power and the allowance calculated according to the formulas in ASHRAE 90.1 Section 9.5.2.2", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 5.920150729190349 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "purpose_type": "RETAIL_DISPLAY", + "power_per_area": 5.381955208354862 + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_12.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_12.json new file mode 100644 index 0000000000..e93ca8ea5e --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_12.json @@ -0,0 +1,239 @@ +{ + "rule-6-12-a": { + "Section": 6, + "Rule": 12, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b)", + "applicable_rmr": "Proposed Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and sales area space. The space has 650 watts of interior display lighting power, which falls below the ASHRAE 90.1 minimum allowance of 750 watts", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "SALES_AREA", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "power_per_area": 6.99654177086132, + "purpose_type": "RETAIL_DISPLAY" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-6-12-b": { + "Section": 6, + "Rule": 12, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b)", + "applicable_rmr": "Proposed Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and sales area space. The space has 2,000 watts of interior display lighting power, which exceeds the ASHRAE 90.1 maximum allowance of 1,750 watts for this space.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "SALES_AREA", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "power_per_area": 21.527820833419447, + "purpose_type": "RETAIL_DISPLAY" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-6-12-c": { + "Section": 6, + "Rule": 12, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b)", + "applicable_rmr": "Proposed Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and sales area space. The space has 1,000 watts of interior display lighting power, which falls between the minimum allowance (750W) and maximum allowance (1,750W).", + "expected_rule_outcome": "undetermined", + "expected_raised_message_includes": "It could not be determined whether the proposed retail display lighting power is less than or equal to the allowance calculated according to the formulas in ASHRAE 90.1 Section 9.5.2.2", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "SALES_AREA", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "power_per_area": 10.763910416709724, + "purpose_type": "RETAIL_DISPLAY" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + }, + "rule-6-12-d": { + "Section": 6, + "Rule": 12, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-12", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "Where retail display lighting is included in the proposed building design the display lighting additional power shall be less than or equal to the limits established by Section 9.5.2.2(b)", + "applicable_rmr": "Proposed Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 1,000 ft2 of gross floor area containing a single zone and mall concourse space. There is no SALES_AREA space.", + "expected_rule_outcome": "not_applicable", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "RETAIL_FACILITIES_MALL_CONCOURSE", + "floor_area": 92.90303999999999, + "interior_lighting": [ + { + "id": "Lighting 1", + "power_per_area": 10.763910416709724, + "purpose_type": "RETAIL_DISPLAY" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "PROPOSED" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_13.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_13.json new file mode 100644 index 0000000000..d63a4fdbbe --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/LTG/rule_6_13.json @@ -0,0 +1,236 @@ +{ + "rule-6-13-a": { + "Section": 6, + "Rule": 13, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-13", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting is managed by automatic occupancy sensors.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "FULL_AUTO_ON", + "are_schedules_used_for_modeling_occupancy_control": true + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-b": { + "Section": 6, + "Rule": 13, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-13", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has no occupancy controls.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "NONE" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-c": { + "Section": 6, + "Rule": 13, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-13", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has manual occupancy controls without any occupancy sensor schedules.", + "expected_rule_outcome": "undetermined", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "MANUAL_ON" + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-6-13-d": { + "Section": 6, + "Rule": 13, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "6-13", + "ruleset_reference": "(Previously 6-14, Then 6-10) Table G3.1(6) Proposed Building Performance (i)", + "rule_description": "In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.", + "applicable_rmr": "Baseline Design", + "rule_assertion": "=", + "comparison_value": "Expected Value", + "rule_dependency": "-", + "mandatory_rule": "Yes", + "schema_version": "0.1.7" + }, + "test_description": "This test uses a simple building model with 7,500 ft2 of gross floor area containing a single classroom zone and space. The interior lighting has manual occupancy controls and is managed via occupancy sensor schedules.", + "expected_rule_outcome": "fail", + "rmd_transformations": { + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "spaces": [ + { + "id": "Space 1", + "lighting_space_type": "CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER", + "floor_area": 696.7728, + "interior_lighting": [ + { + "id": "Lighting 1", + "occupancy_control_type": "MANUAL_ON", + "are_schedules_used_for_modeling_occupancy_control": true + } + ] + } + ] + } + ] + } + ] + } + ], + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/REC/rule_12_5.json b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/REC/rule_12_5.json new file mode 100644 index 0000000000..5277588749 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/REC/rule_12_5.json @@ -0,0 +1,70663 @@ +{ + "rule-12-5-a": { + "Section": 12, + "Rule": 5, + "Test": "a", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed and baseline building have one building segment and zone. Miscellaneous equipment are defined, have loads included, and have annual energy use.", + "expected_rule_outcome": "pass", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-b": { + "Section": 12, + "Rule": 5, + "Test": "b", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has not the loads.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No misc. loads", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 0, + "multiplier_schedule": "Plug Load Schedule" + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-c": { + "Section": 12, + "Rule": 5, + "Test": "c", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has an annual site use energy of 0.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No annual end use energy", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 0 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + }, + "rule-12-5-d": { + "Section": 12, + "Rule": 5, + "Test": "d", + "standard": { + "ruleset": "ashrae9012022", + "rule_id": "12-5", + "ruleset_reference": "Table G3.1-12 Proposed Building Performance column", + "rule_description": "These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.", + "applicable_rmd": "Proposed RMD", + "rule_assertion": "=", + "comparison_value": "Baseline RMD", + "rule_dependency": 0, + "mandatory_rule": 0, + "schema_version": "0.1.7" + }, + "test_description": "A proposed building has one building segment and zone. Miscellaneous equipment is defined, but has an annual site use energy of 0.", + "expected_rule_outcome": "fail", + "expected_raised_message_includes": "No annual end use energy", + "rmd_transformations": { + "proposed": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MOTORS", + "annual_site_energy_use": 100 + } + ] + }, + "type": "PROPOSED" + } + ] + }, + "baseline": { + "id": "ASHRAE229 1", + "ruleset_model_descriptions": [ + { + "weather": { + "climate_zone": "CZ4A" + }, + "id": "RMD 1", + "buildings": [ + { + "id": "Building 1", + "building_segments": [ + { + "id": "Building Segment 1", + "zones": [ + { + "id": "Thermal Zone 1", + "floor_name": "Floor 1", + "spaces": [ + { + "id": "Space 1", + "floor_area": 1393.5456, + "lighting_space_type": "OFFICE_OPEN_PLAN", + "miscellaneous_equipment": [ + { + "id": "Plug Load 1", + "power": 40, + "multiplier_schedule": "Plug Load Schedule", + "sensible_fraction": 1, + "latent_fraction": 0 + } + ] + } + ] + } + ] + } + ] + } + ], + "schedules": [ + { + "id": "Plug Load Schedule", + "type": "MULTIPLIER_DIMENSIONLESS", + "hourly_values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.1, + 0.2, + 0.95, + 0.95, + 0.95, + 0.95, + 0.5, + 0.95, + 0.95, + 0.95, + 0.95, + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.05, + 0.05 + ] + } + ], + "model_output": { + "id": "Output 1", + "annual_end_use_results": [ + { + "id": "End Use 1", + "type": "MISC_EQUIPMENT", + "annual_site_energy_use": 100 + } + ] + }, + "type": "BASELINE_0" + } + ] + } + } + } +} \ No newline at end of file diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/__init__.py b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/__init__.py new file mode 100644 index 0000000000..170c9781e9 --- /dev/null +++ b/rct229/ruletest_engine/ruletest_jsons/ashrae9012022/__init__.py @@ -0,0 +1,12 @@ +from pathlib import Path + +# Identify this ruleset’s root directory +ROOT_DIR = Path(__file__).parent + +# Collect subdirectories (these correspond to ruletest sections) +RULETEST_SECTION_LIST = [ + p.name + for p in ROOT_DIR.iterdir() + if p.is_dir() and p.name not in ["ruletest_spreadsheets", "__pycache__"] +] +RULETEST_SECTION_LIST.sort() diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/batch_excel_to_test_json.py b/rct229/ruletest_engine/ruletest_jsons/scripts/batch_excel_to_test_json.py index 2dec475d34..5c0572dd60 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/batch_excel_to_test_json.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/batch_excel_to_test_json.py @@ -49,7 +49,7 @@ test_json_name = f"{section_ruletest_spreadsheet}.json" # Create test JSON - create_test_json_from_excel(spreadsheet_name, sheet_name, test_json_name) + create_test_json_from_excel(spreadsheet_name, sheet_name, test_json_name, rule_set) # Update unit conventions update_unit_convention_record(spreadsheet_name, sheet_name) diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/disaggregate_master_test_json.py b/rct229/ruletest_engine/ruletest_jsons/scripts/disaggregate_master_test_json.py index 9342fde9e3..a378d6dce9 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/disaggregate_master_test_json.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/disaggregate_master_test_json.py @@ -1,11 +1,24 @@ +from rct229.schema.schema_enums import SchemaEnums +from rct229.schema.schema_store import SchemaStore +from rct229.rule_engine.rulesets import RuleSet from rct229.ruletest_engine.ruletest_jsons.scripts.json_generation_utilities import ( disaggregate_master_rmd_json, disaggregate_master_ruletest_json, ) -# Name of master spreadsheet in rct229.ruletest_engine.ruletest_jsons -json_name = "chiller_tcd_master_temp.json" +# --- SELECT A RULESET --- +# ruleset = RuleSet.ASHRAE9012019_RULESET +ruleset = RuleSet.ASHRAE9012022_RULESET + +# --- SET THE MASTER JSON FILENAME TO DISAGGREGATE --- +json_name = "section5_envelope_tcd_2022.json" + + +SchemaStore.set_ruleset(ruleset) +SchemaEnums.update_schema_enum() +disaggregate_master_ruletest_json(json_name, ruleset) + +# --- SET THE OUTPUT DIRECTORY --- # output_dir = "system_types" -ruleset_doc = "ashrae9012019" -disaggregate_master_ruletest_json(json_name, ruleset_doc) + # disaggregate_master_rmd_json(json_name, output_dir, ruleset_doc) diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_generation_utilities.py b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_generation_utilities.py index 84d868ab9a..2d6aa24afa 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_generation_utilities.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_generation_utilities.py @@ -2,17 +2,16 @@ import json import os import re - +import importlib import pandas as pd from openpyxl import utils from openpyxl.styles import Alignment, Font, PatternFill -from rct229.ruletest_engine.ruletest_jsons.ashrae9012019 import section_rule_to_rule_id + +from rct229.schema.schema_store import SchemaStore from rct229.utils.natural_sort import natural_keys -def create_rule_test_documentation_spreadsheet( - ruleset_standard, test_json_branch="master" -): +def create_rule_test_documentation_spreadsheet(test_json_branch="master"): """Generates an Excel documentation file for all ruletest JSONS found for a particular ruleset standard in: ruleset_checking_tool/rct229/ruletest_engine/ruletest_jsons/RULESET_STANDARD. @@ -21,12 +20,6 @@ def create_rule_test_documentation_spreadsheet( Parameters ---------- - ruleset_standard : str - - A string representing a ruleset standard directory as specified under: - ruleset_checking_tool/rct229/ruletest_engine/ruletest_jsons/RULESET_STANDARD - Example: "ashrae902019" - test_json_branch : str This string points to the name of the branch that the test JSON hyperlinks will reference. This helps freeze or @@ -35,7 +28,7 @@ def create_rule_test_documentation_spreadsheet( Example: "RT/JG/schema_update_016_017" """ - + ruleset_standard = SchemaStore.SELECTED_RULESET ruletest_directory = f"../{ruleset_standard}" excel_path = f"{ruletest_directory}/{ruleset_standard}_rules.xlsx" @@ -52,7 +45,7 @@ def create_rule_test_documentation_spreadsheet( def natural_sort_key(rule_unit_test): """Split the Rule_Unit_Test into numeric parts for natural ordering.""" - parts = re.split(r"[-]", rule_unit_test) # Split by '-' + parts = re.split(r"-", rule_unit_test) # Split by '-' return [ int(parts[0]), int(parts[1]), @@ -87,6 +80,7 @@ def generate_rule_test_dictionary(ruleset_standard, test_json_branch="master"): EX: master_rule_data_dict["section23"] = {"Rule": ["23-1", "23-1", ...], "Rule_Unit_Test": ["23-1-a", "23-1-b", ...] etc. + } """ @@ -207,6 +201,20 @@ def write_rule_test_excel_from_dictionary(master_ruletest_dict, excel_path): Ex: 'C:/rct_repo/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/ashrae9012019_rules.xlsx' """ + ruleset_standard = SchemaStore.SELECTED_RULESET + if not ruleset_standard: + raise ValueError("No ruleset is currently selected in SchemaStore.") + + # Dynamically import the ruleset package (e.g. rct229.rulesets.ashrae9012019) + ruleset_module = importlib.import_module(f"rct229.rulesets.{ruleset_standard}") + + # Retrieve the section_rule_to_rule_id mapping from that ruleset’s __init__.py + section_rule_to_rule_id = getattr(ruleset_module, "section_rule_to_rule_id", None) + if section_rule_to_rule_id is None: + raise AttributeError( + f"Ruleset package '{ruleset_standard}' has no section_rule_to_rule_id mapping. " + "Ensure it is built by build_section_rule_to_rule_id() in its __init__.py." + ) # Set column widths column_widths = [8, 13, 70, 21, 19] diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json.py b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json.py index 69c6f258aa..a954bd589b 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json.py @@ -1,5 +1,7 @@ import os +from rct229.schema.schema_store import SchemaStore +from rct229.rule_engine.rulesets import RuleSet from rct229.ruletest_engine.ruletest_engine import validate_test_json_schema from rct229.ruletest_engine.ruletest_jsons.scripts.excel_to_test_json_utilities import ( create_test_json_from_excel, @@ -9,25 +11,27 @@ # ---------------------------------------USER INPUTS--------------------------------------- # Excel to master test JSON inputs -spreadsheet_name = "chiller_tcd_master.xlsx" -test_json_name = "chiller_tcd_master_temp.json" +spreadsheet_name = "section5_envelope_tcd_2022.xlsx" +test_json_name = "section5_envelope_tcd_2022.json" sheet_name = "TCDs" # Flag to determine if you should check the test JSON check_schema = False -# The rule set being evaluated (e.g., 'ashrae902019'). Should correspond to a directory name in ruletests_jsons -rule_set = "ashrae9012019" +# --- SELECT A RULESET --- +# ruleset = RuleSet.ASHRAE9012019_RULESET +rule_set = RuleSet.ASHRAE9012022_RULESET # --------------------------------------SCRIPT STARTS-------------------------------------- +SchemaStore.set_ruleset(rule_set) # Create a test JSON for a given ruletest spreadsheet -create_test_json_from_excel(spreadsheet_name, sheet_name, test_json_name) +create_test_json_from_excel(spreadsheet_name, sheet_name, test_json_name, rule_set) # Parse ruletest spreadsheet for unit types and update the unit conventions in unit_convention.json for: # -RMD (typically SI) # -Rule Tests (typically IP) -update_unit_convention_record(spreadsheet_name, sheet_name) +update_unit_convention_record(spreadsheet_name, sheet_name, rule_set) # Check generated master JSON against latest schema json_dir = os.path.join(os.path.dirname(__file__), "..", rule_set) diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json_utilities.py b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json_utilities.py index acf5c4610d..9b44433e47 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json_utilities.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/excel_to_test_json_utilities.py @@ -253,6 +253,11 @@ def create_dictionary_from_excel(spreadsheet_name, sheet_name, rule_set): # If test_id has not yet been added, add it's content to json_dict else: + + # Establish ruleset for this ruletest JSON + key_list = [test_id, "standard", "ruleset"] + set_nested_dict(json_dict, key_list, rule_set) + # Iterate through both keys and rule values for row_i in range(rule_value_list.size): # row_value = what will be set to the dictionary's key/value pair @@ -388,9 +393,14 @@ def create_test_json_from_excel( json_file_path = os.path.join(file_dir, "..", rule_set, json_name) # Load Schemas - if rule_set == RuleSet.ASHRAE9012019_RULESET: - SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) - SchemaEnums.update_schema_enum() + match rule_set: + + case RuleSet.ASHRAE9012019_RULESET: + SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) + SchemaEnums.update_schema_enum() + case RuleSet.ASHRAE9012022_RULESET: + SchemaStore.set_ruleset(RuleSet.ASHRAE9012022_RULESET) + SchemaEnums.update_schema_enum() json_dict = create_dictionary_from_excel(spreadsheet_name, sheet_name, rule_set) @@ -616,12 +626,22 @@ def set_systems_to_zones(json_dict, system_to_zone_dict, rule_set): file_dir = os.path.dirname(__file__) + match rule_set: + case RuleSet.ASHRAE9012019_RULESET | RuleSet.ASHRAE9012022_RULESET: + system_type_dir = "90.1_system_types" + case _: + raise ValueError(f"Invalid rule set for system to zone mapping: {rule_set}") + for system in system_to_zone_dict["system_zone_assignment"]["systems"]: system_name = system["baseline_system"] zone_list = system["zones"] system_type_path = os.path.join( - file_dir, "..", rule_set, "system_types", f"{system_name}.json" + file_dir, + "resources", + "system_types", + system_type_dir, + f"{system_name}.json", ) # Get system RMD diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/generate_rule_test_documentation.py b/rct229/ruletest_engine/ruletest_jsons/scripts/generate_rule_test_documentation.py index dfdc4b0f3b..3ad9f0c9b0 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/generate_rule_test_documentation.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/generate_rule_test_documentation.py @@ -1,10 +1,14 @@ from rct229.ruletest_engine.ruletest_jsons.scripts.excel_generation_utilities import ( create_rule_test_documentation_spreadsheet, ) +from rct229.schema.schema_store import SchemaStore +from rct229.rule_engine.rulesets import RuleSet + # INPUT: -ruleset_standard = "ashrae9012019" +ruleset_standard = RuleSet.ASHRAE9012019_RULESET +SchemaStore.set_ruleset(ruleset_standard) test_json_branch = "public_review_2nd" # Create rule test documentation for ruleset standard specified above -create_rule_test_documentation_spreadsheet(ruleset_standard, test_json_branch) +create_rule_test_documentation_spreadsheet(test_json_branch) diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/json_generation_utilities.py b/rct229/ruletest_engine/ruletest_jsons/scripts/json_generation_utilities.py index b124fa6227..6aa6a57da3 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/json_generation_utilities.py +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/json_generation_utilities.py @@ -2,8 +2,7 @@ import os import re from collections import OrderedDict - -from rct229.rulesets.ashrae9012019 import rules_dict +import rct229.rulesets as rulesets def get_nested_dict(dic, keys): @@ -483,6 +482,10 @@ def disaggregate_master_ruletest_json( except Exception as e: print(f"An error occurred: {e}") + # Get the rules dictionary for the selected ruleset + rules_dict = rulesets.__getrulemap__() + ruleset_short_name = rulesets.__getruleset__().SHORT_NAME + # Initialize dictionary used to break out master dictionary into sections and rules rule_dictionary = {} @@ -527,7 +530,7 @@ def write_ruletest_json(section, rule, ruleset_doc, section_dir_name=""): ) # Map the rule ID to the rule name - rule_name = rules_dict.get(f"prm9012019rule{ruletest.split('-')[1]}") + rule_name = rules_dict.get(f"{ruleset_short_name}rule{ruletest.split('-')[1]}") if not rule_name: raise ValueError(f"Rule {ruletest.split('-')[1]} not found in rule_map") diff --git a/rct229/ruletest_engine/ruletest_jsons/scripts/resources/json_pointer_enumerations.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/json_pointer_enumerations.json index fc49e6ed20..d0febf77dd 100644 --- a/rct229/ruletest_engine/ruletest_jsons/scripts/resources/json_pointer_enumerations.json +++ b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/json_pointer_enumerations.json @@ -4,6 +4,7 @@ "buildings": "ruleset_model_descriptions[0]/buildings", "building_segments": "ruleset_model_descriptions[0]/buildings[0]/building_segments", "calendar": "ruleset_model_descriptions[0]/calendar", + "capacity_operating_points": "ruleset_model_descriptions[0]/chillers[0]/capacity_operating_points", "chillers": "ruleset_model_descriptions[0]/chillers", "climate_zone": "ruleset_model_descriptions[0]/weather/climate_zone", "constructions": "ruleset_model_descriptions[0]/constructions", @@ -24,6 +25,7 @@ "output": "output", "output_instance": "ruleset_model_descriptions[0]/model_output/output_instance", "output_validation_points": "ruleset_model_descriptions[0]/buildings[0]/building_segments[0]/zones[0]/terminals[0]/fan/output_validation_points", + "power_operating_points": "ruleset_model_descriptions[0]/chillers[0]/power_operating_points", "preheat_system": "ruleset_model_descriptions[0]/buildings[0]/building_segments[0]/heating_ventilating_air_conditioning_systems[0]/preheat_system", "pumps": "ruleset_model_descriptions[0]/pumps", "schedules": "ruleset_model_descriptions[0]/schedules", diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12_CAV_SZ_HW.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12_CAV_SZ_HW.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12_CAV_SZ_HW.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12_CAV_SZ_HW.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12a_CAV_SZ_HW.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12a_CAV_SZ_HW.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12a_CAV_SZ_HW.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12a_CAV_SZ_HW.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12b_CAV_SZ_HW.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12b_CAV_SZ_HW.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 12b_CAV_SZ_HW.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 12b_CAV_SZ_HW.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 13_CAV_SZ_ER.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 13_CAV_SZ_ER.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 13_CAV_SZ_ER.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 13_CAV_SZ_ER.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 13a_CAV_SZ_ER.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 13a_CAV_SZ_ER.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System 13a_CAV_SZ_ER.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System 13a_CAV_SZ_ER.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_10_Warm_Air_Furnace_Elec.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_10_Warm_Air_Furnace_Elec.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_10_Warm_Air_Furnace_Elec.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_10_Warm_Air_Furnace_Elec.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1a_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1a_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1a_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1a_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1b_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1b_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1b_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1b_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1c_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1c_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.1c_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.1c_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.2_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.2_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.2_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.2_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.2a_VAV_SZ.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.2a_VAV_SZ.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_11.2a_VAV_SZ.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_11.2a_VAV_SZ.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1_PTAC.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1_PTAC.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1_PTAC.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1_PTAC.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1a_PTAC.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1a_PTAC.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1a_PTAC.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1a_PTAC.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1b_PTAC.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1b_PTAC.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1b_PTAC.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1b_PTAC.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1c_PTAC.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1c_PTAC.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_1c_PTAC.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_1c_PTAC.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_2_PTHP.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_2_PTHP.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_2_PTHP.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_2_PTHP.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3_PSZ_AC_Gas_Furnace.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3_PSZ_AC_Gas_Furnace.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3_PSZ_AC_Gas_Furnace.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3_PSZ_AC_Gas_Furnace.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3a_PSZ_AC_Gas_Furnace.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3a_PSZ_AC_Gas_Furnace.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3a_PSZ_AC_Gas_Furnace.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3a_PSZ_AC_Gas_Furnace.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3b_PSZ_AC_Gas_Furnace.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3b_PSZ_AC_Gas_Furnace.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3b_PSZ_AC_Gas_Furnace.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3b_PSZ_AC_Gas_Furnace.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3c_PSZ_AC_Gas_Furnace.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3c_PSZ_AC_Gas_Furnace.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_3c_PSZ_AC_Gas_Furnace.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_3c_PSZ_AC_Gas_Furnace.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_4_PSZ_HP.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_4_PSZ_HP.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_4_PSZ_HP.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_4_PSZ_HP.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_5_PVAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_5_PVAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_5_PVAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_5_PVAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_5b_PVAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_5b_PVAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_5b_PVAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_5b_PVAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_6_PVAV_Elec_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_6_PVAV_Elec_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_6_PVAV_Elec_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_6_PVAV_Elec_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_6b_PVAV_Elec_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_6b_PVAV_Elec_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_6b_PVAV_Elec_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_6b_PVAV_Elec_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7_VAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7_VAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7_VAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7_VAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7a_VAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7a_VAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7a_VAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7a_VAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7b_VAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7b_VAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7b_VAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7b_VAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7c_VAV_HW_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7c_VAV_HW_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_7c_VAV_HW_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_7c_VAV_HW_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8_PFP_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8_PFP_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8_PFP_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8_PFP_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8a_PFP_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8a_PFP_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8a_PFP_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8a_PFP_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8b_PFP_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8b_PFP_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8b_PFP_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8b_PFP_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8c_PFP_Reheat.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8c_PFP_Reheat.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_8c_PFP_Reheat.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_8c_PFP_Reheat.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_9_Warm_Air_Furnace_Gas.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_9_Warm_Air_Furnace_Gas.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_9_Warm_Air_Furnace_Gas.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_9_Warm_Air_Furnace_Gas.json diff --git a/rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_9b_Warm_Air_Furnace_Gas.json b/rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_9b_Warm_Air_Furnace_Gas.json similarity index 100% rename from rct229/ruletest_engine/ruletest_jsons/ashrae9012019/system_types/System_9b_Warm_Air_Furnace_Gas.json rename to rct229/ruletest_engine/ruletest_jsons/scripts/resources/system_types/90.1_system_types/System_9b_Warm_Air_Furnace_Gas.json diff --git a/rct229/ruletest_engine/ruletest_rmd_factory.py b/rct229/ruletest_engine/ruletest_rmd_factory.py index 7dee0a0431..5607db9f62 100644 --- a/rct229/ruletest_engine/ruletest_rmd_factory.py +++ b/rct229/ruletest_engine/ruletest_rmd_factory.py @@ -2,25 +2,30 @@ from rct229.rule_engine.ruleset_model_factory import produce_ruleset_model_description from rct229.rule_engine.rulesets import RuleSet -from rct229.rulesets.ashrae9012019 import ( - BASELINE_0, - BASELINE_90, - BASELINE_180, - BASELINE_270, -) from rct229.schema.schema_store import SchemaStore from rct229.utils.assertions import getattr_ def get_ruletest_rmd_models(test_dict: dict): rmd = None - if SchemaStore.SELECTED_RULESET == RuleSet.ASHRAE9012019_RULESET: - rmd = get_9012019_rmd_models(test_dict) + + match SchemaStore.SELECTED_RULESET: + case RuleSet.ASHRAE9012019_RULESET: + rmd = get_901_rmd_models(test_dict) + case RuleSet.ASHRAE9012022_RULESET: + rmd = get_901_rmd_models(test_dict) return rmd -def get_9012019_rmd_models(test_dict: dict): +def get_901_rmd_models(test_dict: dict): + from rct229.rulesets.ashrae9012019 import ( + BASELINE_0, + BASELINE_90, + BASELINE_180, + BASELINE_270, + ) + # Each of these will remain None unless it is specified in # rmd_transformations. user_rmd = None diff --git a/rct229/ruletest_engine/run_ruletests.py b/rct229/ruletest_engine/run_ruletests.py index 35435f9b3e..bae989275c 100644 --- a/rct229/ruletest_engine/run_ruletests.py +++ b/rct229/ruletest_engine/run_ruletests.py @@ -1,61 +1,96 @@ -from rct229.rule_engine.rulesets import RuleSet, RuleSetTest -from rct229.ruletest_engine.ruletest_engine import * -from rct229.ruletest_engine.ruletest_jsons.ashrae9012019 import * +import os + +from rct229.ruletest_engine.ruletest_engine import ( + run_section_tests, + generate_software_test_report, +) +from rct229.schema.schema_store import SchemaStore +from rct229.rule_engine.rulesets import RuleSet from rct229.utils.natural_sort import natural_keys +from rct229.ruletest_engine.ruletest_jsons import get_ruleset_test_sections TEST_PATH = "ruletest_jsons" -def run_ashrae9012019_tests(section=None): +# ============================================================ +# =============== GENERIC TEST RUNNERS ======================= +# ============================================================ + + +def run_ruleset_tests(ruleset: str, section: str | None = None): """ - Run ruleset by section or all - If section is None, then this function runs all the rule sections + Run all or selected rule test sections for a given ruleset. Parameters ---------- - section: str - it should be the same string in the ASHRAE9012019_TEST_PATH_LIST + ruleset : str + The ruleset name (e.g., "ashrae9012019" or "ashrae9012022"). + section : str or None + If provided, only that section is run. Returns ------- - + list[bool] + True/False results per section. """ + SchemaStore.set_ruleset(ruleset) + all_sections = get_ruleset_test_sections(ruleset) + return [ run_test_helper( - _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, test_section - ), - RuleSet.ASHRAE9012019_RULESET, + _helper_get_all_test_file_by_section(ruleset, test_section), + ruleset, ) - for test_section in RuleSetTest.ASHRAE9012019_TEST_LIST + for test_section in all_sections if section is None or test_section == section ] -def generate_ashrae9012019_software_test_report( - section_list=None, output_dir=os.path.dirname(__file__) +def generate_software_test_report_for_ruleset( + ruleset: str, section_list=None, output_dir=os.path.dirname(__file__) ): - """ - Generate a software test JSON for ASHRAE 90.1 RCT for a given set of sections If section is None, then this - function runs all the rule sections + """Generate a software test JSON report for the given ruleset.""" + if section_list is None: + section_list = get_ruleset_test_sections(ruleset) + return generate_software_test_report(ruleset, section_list, output_dir) - Parameters - ---------- - section_list: list - List of strings representing section lists to run. If None, all are ran per those listed in - RuleSetTest.ASHRAE9012019_TEST_LIST +# ============================================================ +# =============== RULESET-SPECIFIC WRAPPERS ================== +# ============================================================ - output_dir: str - Directory in which you want the ashrae901_2019_software_testing_report.json to appear +def run_ashrae9012019_tests(section=None): + """Run all or specific ASHRAE 90.1-2019 tests.""" + return run_ruleset_tests("ashrae9012019", section) - """ - # If no section list is defined, rune all ASHRAE90.1 sections - if section_list is None: - section_list = RuleSetTest.ASHRAE9012019_TEST_LIST +def run_ashrae9012022_tests(section=None): + """Run all or specific ASHRAE 90.1-2022 tests.""" + return run_ruleset_tests("ashrae9012022", section) - return generate_software_test_report("ashrae9012019", section_list, output_dir) + +def generate_ashrae9012019_software_test_report( + section_list=None, output_dir=os.path.dirname(__file__) +): + """Generate ASHRAE 90.1-2019 software test report.""" + return generate_software_test_report_for_ruleset( + "ashrae9012019", section_list, output_dir + ) + + +def generate_ashrae9012022_software_test_report( + section_list=None, output_dir=os.path.dirname(__file__) +): + """Generate ASHRAE 90.1-2022 software test report.""" + return generate_software_test_report_for_ruleset( + "ashrae9012022", section_list, output_dir + ) + + +# ============================================================ +# ===================== HELPER FUNCTIONS ===================== +# ============================================================ def _helper_get_all_test_file_by_section(ruleset: str, path: str): @@ -84,226 +119,185 @@ def _helper_get_all_test_file_by_section(ruleset: str, path: str): ] -def run_lighting_tests(): - """Runs all tests found in the lighting tests JSON. - Returns - ------- - None - Results of lighting test are spit out to console - """ +def run_test_helper(test_list, ruleset_doc): + # sort the list in a human order + test_list.sort(key=natural_keys) + # all will short-circuit the tests - to avoid it, split the code into two lines. + test_results = [ + run_section_tests(test_json, ruleset_doc) for test_json in test_list + ] + return all(test_results) - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, LIGHTING_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def _run_tests_by_dir(ruleset, directory): + """Internal helper to execute all tests within a category directory.""" + json_tests = _helper_get_all_test_file_by_section(ruleset, directory) + return run_test_helper(json_tests, ruleset) -def run_envelope_tests(): - """Runs all tests found in the envelope tests JSON. - Returns - ------- - None - Results of envelope stest are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, ENVELOPE_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +# ============================================================ +# =============== CATEGORY TESTS FOR 2019 ==================== +# ============================================================ -def run_boiler_tests(): - """Runs all tests found in the boiler tests JSON - Returns - ------- - None - Results of boiler test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, HVAC_HOT_WATER_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_lighting_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "LTG") -def run_chiller_tests(): - """Runs all tests found in the chiller tests JSON - Returns - ------- - None - Results of chiller test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, HVAC_CHILLED_WATER_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_envelope_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "ENV") -def run_airside_tests(): - """Runs all tests found in the airside tests JSON. - Returns - ------- - None - Results of lighting test are spit out to console - """ +def run_boiler_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "HVAC-HW") - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, HVAC_AIRSIDE_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_chiller_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "HVAC-CHW") -def run_hvac_general_tests(): - """Runs all tests found in the hvac general tests JSON. - Returns - ------- - None - Results of lighting test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, HVAC_GENERAL_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_airside_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "HVAC-SPEC") -def run_sys_zone_assignment_tests(): - """Runs all tests found in the system zone assignment tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ +def run_hvac_general_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "HVAC-GEN") - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, HVAC_BASELINE_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_sys_zone_assignment_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "HVAC-SYS") -def run_elevator_tests(): - """Runs all tests found in the elevator tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, ELEVATOR_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_elevator_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "ELV") -def run_performance_calculation_tests(): - """Runs all tests found in the performance calculation tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ +def run_performance_calculation_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "CALC") - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, PERFORMANCE_CALC_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_service_water_heater_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "SHW") -def run_service_water_heater_tests(): - """Runs all tests found in the service water heater calculation tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, SERVICE_HOT_WATER_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +def run_schedule_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "SCH") -def run_schedule_tests(): - """Runs all tests found in the schedule tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ +def run_receptacle_tests_2019(): + return _run_tests_by_dir(RuleSet.ASHRAE9012019_RULESET, "REC") - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, SCHEDULE_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) - - -# SECTION 10 is now covered by run_hvac_general_tests -# def run_general_hvac_tests(): -# """Runs all tests found in section 10 tests JSON. -# Returns -# ------- -# None -# Results of system zone assignments test are spit out to console -# """ -# -# json_tests = _helper_get_all_test_file_by_section( -# RuleSet.ASHRAE9012019_RULESET, "section10" -# ) -# return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) - - -def run_receptacle_tests(): - """Runs all tests found in the schedule tests JSON. - Returns - ------- - None - Results of system zone assignments test are spit out to console - """ - json_tests = _helper_get_all_test_file_by_section( - RuleSet.ASHRAE9012019_RULESET, RECEPTACLE_DIR - ) - return run_test_helper(json_tests, RuleSet.ASHRAE9012019_RULESET) +# ============================================================ +# =============== CATEGORY TESTS FOR 2022 ==================== +# ============================================================ -def run_test_helper(test_list, ruleset_doc): - # sort the list in a human order - test_list.sort(key=natural_keys) - # all will short-circuit the tests - to avoid it, split the code into two lines. - test_results = [ - run_section_tests(test_json, ruleset_doc) for test_json in test_list - ] - return all(test_results) +def run_lighting_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "LTG") -def run_test_one_jsontest(test_json): - """ - Test function developed to facilitate running a single rule test json - """ - return run_section_tests(test_json, RuleSet.ASHRAE9012019_RULESET) +def run_envelope_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "ENV") + + +def run_boiler_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "HVAC-HW") + + +def run_chiller_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "HVAC-CHW") + + +def run_airside_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "HVAC-SPEC") + + +def run_hvac_general_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "HVAC-GEN") + + +def run_sys_zone_assignment_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "HVAC-SYS") + + +def run_elevator_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "ELV") -# if __name__ == "__main__": -# outcome = run_ashrae9012019_tests(section="section5") +def run_performance_calculation_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "CALC") -# run_transformer_tests() -# run_lighting_tests() -# run_boiler_tests() -# run_chiller_tests() -# run_envelope_tests() -# run_receptacle_tests() -# run_airside_tests() -# run_sys_zone_assignment_tests() -# run_hvac_general_tests() -# run_elevator_tests() -# run_performance_calculation_tests() -# run_schedule_tests() -# # run_general_hvac_tests() -# run_service_water_heater_tests() +def run_service_water_heater_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "SHW") -# run_test_one_jsontest("ashrae9012019/HVAC-GEN/rule_19_10.json") -# run_ashrae9012019_tests() -# output_dir = os.path.dirname(__file__) -# generate_ashrae9012019_software_test_report(['tester']) -# generate_ashrae9012019_software_test_report(None, output_dir) +def run_schedule_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "SCH") + + +def run_receptacle_tests_2022(): + return _run_tests_by_dir(RuleSet.ASHRAE9012022_RULESET, "REC") + + +# ============================================================ +# =================== SINGLE TEST RUNNERS ==================== +# ============================================================ + + +def run_test_one_jsontest_2019(test_json): + """ + Test function developed to facilitate running a single rule test json + """ + return run_section_tests(test_json, RuleSet.ASHRAE9012019_RULESET) + + +def run_test_one_jsontest_2022(test_json): + """ + Test function developed to facilitate running a single rule test json + """ + return run_section_tests(test_json, RuleSet.ASHRAE9012022_RULESET) + + +# ============================================================ +# ====================== ENTRY POINT ========================= +# ============================================================ + +if __name__ == "__main__": + # outcome = run_ashrae9012019_tests(section="section23") + # + # run_lighting_tests_2019() + # run_boiler_tests_2019() + # run_chiller_tests_2019() + # run_envelope_tests_2019() + # run_receptacle_tests_2019() + # run_airside_tests_2019() + # run_sys_zone_assignment_tests_2019() + # run_hvac_general_tests_2019() + # run_elevator_tests_2019() + # run_performance_calculation_tests_2019() + # run_schedule_tests_2019() + # run_service_water_heater_tests_2019() + # + # run_lighting_tests_2022() + # run_boiler_tests_2022() + # run_chiller_tests_2022() + # run_envelope_tests_2022() + # run_receptacle_tests_2022() + # run_airside_tests_2022() + # run_sys_zone_assignment_tests_2022() + # run_hvac_general_tests_2022() + # run_elevator_tests_2022() + # run_performance_calculation_tests_2022() + # run_schedule_tests_2022() + # run_service_water_heater_tests_2022() + # + # run_test_one_jsontest_2019("ashrae9012019/section23/rule_23_8.json") + # run_test_one_jsontest_2022("ashrae9012022/ENV/rule_5_43.json") + # run_ashrae9012019_tests() + # run_ashrae9012022_tests() + # output_dir = os.path.dirname(__file__) + # generate_ashrae9012019_software_test_report(['tester']) + # generate_ashrae9012019_software_test_report(None, output_dir) + pass diff --git a/rct229/schema/ASHRAE229.schema.json b/rct229/schema/ASHRAE229.schema.json index e182ab86c7..196c790bed 100644 --- a/rct229/schema/ASHRAE229.schema.json +++ b/rct229/schema/ASHRAE229.schema.json @@ -3933,6 +3933,12 @@ "units": "C", "notes": "The temperature entering the condenser portion of the chiller at design conditions. The design outside air dry-bulb temperature for air cooled chillers or design entering condenser water temperature for water cooled chillers. This should correpond with the design_capacity and the FULL_LOAD_EFFICIENCY_DESIGN and NONSTANDARD_PART_LOAD_VALUE. The element should describe the value during cooling mode operation for chillers even for chillers that operate in multiple modes." }, + "design_leaving_condenser_temperature": { + "description": "Design leaving condenser temperature", + "type": "number", + "units": "C", + "notes": "The temperature leaving the condenser portion of the chiller at design conditions. The design outside air dry-bulb temperature for air cooled chillers or design entering condenser water temperature for water cooled chillers. This should correpond with the design_capacity and the FULL_LOAD_EFFICIENCY_DESIGN and NONSTANDARD_PART_LOAD_VALUE. The element should describe the value during cooling mode operation for chillers even for chillers that operate in multiple modes." + }, "design_leaving_evaporator_temperature": { "description": "Design leaving evaporator temperature", "type": "number", diff --git a/rct229/schema/schema_enums.py b/rct229/schema/schema_enums.py index 9d7c18f8f0..8a379ff476 100644 --- a/rct229/schema/schema_enums.py +++ b/rct229/schema/schema_enums.py @@ -36,14 +36,14 @@ class SchemaEnums: def update_schema_enum(): # Load the enumeration schema file _enum_schema_path = join( - dirname(__file__), "..", "schema", SchemaStore.get_enum_schema_by_ruleset() + dirname(__file__), "..", "schema", SchemaStore.get_active_enum_schema() ) with open(_enum_schema_path) as json_file: _enum_schema_obj = json.load(json_file) # Load the output schema file _output_schema_path = join( - dirname(__file__), "..", "schema", "Output2019ASHRAE901.schema.json" + dirname(__file__), "..", "schema", SchemaStore.get_active_output_schema() ) with open(_output_schema_path) as json_file: _output_schema_obj = json.load(json_file) @@ -82,16 +82,67 @@ def update_schema_enum(): key: _ListEnum(enum_list) for key, enum_list in _enums_dict.items() } + @staticmethod + def update_schema_enum_by_ruleset(ruleset: str): + """Update enums for a specific ruleset, without changing the selected ruleset""" + _enum_schema_path = join( + dirname(__file__), + "..", + "schema", + SchemaStore.get_enum_schema_by_ruleset(ruleset), + ) + with open(_enum_schema_path) as json_file: + _enum_schema_obj = json.load(json_file) + + _output_schema_path = join( + dirname(__file__), + "..", + "schema", + SchemaStore.get_output_schema_by_ruleset(ruleset), + ) + with open(_output_schema_path) as json_file: + _output_schema_obj = json.load(json_file) + + _schema_path = join(dirname(__file__), "..", "schema", "ASHRAE229.schema.json") + with open(_schema_path) as json_file: + _schema_obj = json.load(json_file) + + _enum_schema_enum_jsonpath_value_dict = create_jsonpath_value_dict( + "$..*[?(@.enum)]", _enum_schema_obj + ) + _schema_enum_jsonpath_value_dict = create_jsonpath_value_dict( + "$..*[?(@.enum)]", _schema_obj + ) + _output_schema_enum_jsonpath_value_dict = create_jsonpath_value_dict( + "$..*[?(@.enum)]", _output_schema_obj + ) + + enum_jsonpath_value_dict = { + **_enum_schema_enum_jsonpath_value_dict, + **_schema_enum_jsonpath_value_dict, + **_output_schema_enum_jsonpath_value_dict, + } + + _enums_dict = { + enum_jsonpath.split('"')[-2]: value["enum"] + for (enum_jsonpath, value) in enum_jsonpath_value_dict.items() + } + + SchemaEnums.schema_enums = { + key: _ListEnum(enum_list) for key, enum_list in _enums_dict.items() + } + # Convert the enumerations as dictionaries to classes for easier access -def print_schema_enums(): +def print_schema_enums(ruleset: RuleSet): """Print all the schema enumerations with their names and values This is primarily useful for debugging purposes """ - SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) + + SchemaStore.set_ruleset(ruleset) SchemaEnums.update_schema_enum() for key in SchemaEnums.schema_enums: print(f"{key}:") diff --git a/rct229/schema/schema_store.py b/rct229/schema/schema_store.py index 64832ee443..157149e13d 100644 --- a/rct229/schema/schema_store.py +++ b/rct229/schema/schema_store.py @@ -4,23 +4,69 @@ class SchemaStore: SCHEMA_KEY = "ASHRAE229.schema.json" SCHEMA_9012019_ENUM_KEY = "Enumerations2019ASHRAE901.schema.json" + SCHEMA_9012022_ENUM_KEY = "Enumerations2019ASHRAE901.schema.json" SCHEMA_RESNET_ENUM_KEY = "EnumerationsRESNET.schema.json" SCHEMA_T24_ENUM_KEY = "Enumerations2019T24.schema.json" SCHEMA_9012019_OUTPUT_KEY = "Output2019ASHRAE901.schema.json" + SCHEMA_9012022_OUTPUT_KEY = "Output2019ASHRAE901.schema.json" SELECTED_RULESET = "" @staticmethod - def get_enum_schema_by_ruleset(): - if SchemaStore.SELECTED_RULESET == RuleSet.ASHRAE9012019_RULESET: - return SchemaStore.SCHEMA_9012019_ENUM_KEY + def get_active_enum_schema(): + + match SchemaStore.SELECTED_RULESET: + + case RuleSet.ASHRAE9012019_RULESET: + return SchemaStore.SCHEMA_9012019_ENUM_KEY + case RuleSet.ASHRAE9012022_RULESET: + return SchemaStore.SCHEMA_9012022_ENUM_KEY + + @staticmethod + def get_active_output_schema(): + + match SchemaStore.SELECTED_RULESET: + case RuleSet.ASHRAE9012019_RULESET: + return SchemaStore.SCHEMA_9012019_OUTPUT_KEY + case RuleSet.ASHRAE9012022_RULESET: + return SchemaStore.SCHEMA_9012022_OUTPUT_KEY + + @staticmethod + def get_enum_schema_by_ruleset(ruleset: str): + from rct229.rulesets import register_rulesets, discover_ruleset_plugins + + if not any(a.endswith("_RULESET") for a in vars(RuleSet)): + discover_ruleset_plugins() + register_rulesets() + + match ruleset: + case RuleSet.ASHRAE9012019_RULESET: + return "Enumerations2019ASHRAE901.schema.json" + case RuleSet.ASHRAE9012022_RULESET: + return "Enumerations2019ASHRAE901.schema.json" + case _: + raise ValueError(f"Unknown ruleset: {ruleset}") @staticmethod - def get_output_schema_by_ruleset(): - if SchemaStore.SELECTED_RULESET == RuleSet.ASHRAE9012019_RULESET: - return SchemaStore.SCHEMA_9012019_OUTPUT_KEY + def get_output_schema_by_ruleset(ruleset: str): + from rct229.rulesets import register_rulesets, discover_ruleset_plugins + + if not any(attr.endswith("_RULESET") for attr in vars(RuleSet)): + discover_ruleset_plugins() + register_rulesets() + + match ruleset: + case RuleSet.ASHRAE9012019_RULESET: + return SchemaStore.SCHEMA_9012019_OUTPUT_KEY + case RuleSet.ASHRAE9012022_RULESET: + return SchemaStore.SCHEMA_9012022_OUTPUT_KEY @staticmethod - def set_ruleset(ruleset: RuleSet): - # prevent overriding the ruleset if multi-processing. - if not SchemaStore.SELECTED_RULESET: + def set_ruleset(ruleset: str): + # prevent overriding the ruleset if multiprocessing. + if SchemaStore.SELECTED_RULESET in ( + RuleSet.ASHRAE9012019_RULESET, + RuleSet.ASHRAE9012022_RULESET, + ): + SchemaStore.SELECTED_RULESET = ruleset + elif not SchemaStore.SELECTED_RULESET: SchemaStore.SELECTED_RULESET = ruleset diff --git a/rct229/schema/schema_utils.py b/rct229/schema/schema_utils.py index 957d0ac049..373e52f3f8 100644 --- a/rct229/schema/schema_utils.py +++ b/rct229/schema/schema_utils.py @@ -66,7 +66,7 @@ def find_schema_unit_for_json_path(key_list): root_key = "RulesetProjectDescription" - secondary_schema_files = [SchemaStore.get_output_schema_by_ruleset()] + secondary_schema_files = [SchemaStore.get_active_output_schema()] schema_dict = config.schema_dict # Initialize first reference to top level key diff --git a/rct229/web_application.py b/rct229/web_application.py index 8e12604db9..6aed306eda 100644 --- a/rct229/web_application.py +++ b/rct229/web_application.py @@ -3,15 +3,14 @@ import rct229.rulesets as rulesets import rct229.rulesets as rs from rct229.reports import reports as rct_report -from rct229.rule_engine.engine import evaluate_all_rules, evaluate_all_rules_rpd -from rct229.rule_engine.rulesets import RuleSet, RuleSetTest +from rct229.rule_engine.engine import evaluate_all_rules_rpd +from rct229.rule_engine.rulesets import RuleSet from rct229.ruletest_engine.ruletest_jsons.scripts.excel_to_test_json_utilities import ( generate_rule_test_dictionary, ) from rct229.ruletest_engine.run_ruletests import ( generate_ashrae9012019_software_test_report, ) -from rct229.rulesets.ashrae9012019 import rules_dict from rct229.schema.schema_enums import SchemaEnums from rct229.schema.schema_store import SchemaStore from rct229.utils.assertions import assert_ @@ -43,6 +42,7 @@ def count_number_of_secondary_rules(ruleset_standard): # Collect rule modules as a list of tuples available_rule_definitions = rulesets.__getrules__() ruleset = rulesets.__getruleset__() + rules_dict = rulesets.__getrulemap__() # Dictionary with rule counts count_dict = {} @@ -94,6 +94,7 @@ def count_number_of_primary_rules(ruleset_standard): # Collect rule modules as a list of tuples available_rule_definitions = rulesets.__getrules__() ruleset = rulesets.__getruleset__() + rules_dict = rulesets.__getrulemap__() # Dictionary with rule counts count_dict = {} @@ -139,12 +140,13 @@ def count_number_of_rules(ruleset_standard): if not _setup_workflow(ruleset_standard): assert_( False, - f"Provided ruleset, {ruleset_standard}, does not match the available ones in the RCT. Available: ashrae9012019 ", + f"Provided ruleset, {ruleset_standard}, does not match the available ones in the RCT. Available: ashrae9012019, ashrae9012022", ) # Collect rule modules as a list of tuples available_rule_definitions = rulesets.__getrules__() ruleset = rulesets.__getruleset__() + rules_dict = rulesets.__getrulemap__() # Dictionary with rule counts count_dict = {} @@ -334,4 +336,8 @@ def _setup_workflow(ruleset: str): SchemaStore.set_ruleset(RuleSet.ASHRAE9012019_RULESET) SchemaEnums.update_schema_enum() setup_flag = True + elif ruleset == RuleSet.ASHRAE9012022_RULESET: + SchemaStore.set_ruleset(RuleSet.ASHRAE9012022_RULESET) + SchemaEnums.update_schema_enum() + setup_flag = True return setup_flag