diff --git a/CMakeLists.txt b/CMakeLists.txt index 09e42a8e..5e0b2bc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,6 +145,7 @@ endif( WIN32 ) find_package( BerkeleyDB ) set(ENABLE_COVERAGE_TESTING FALSE CACHE BOOL "Build Graphene for code coverage analysis") + if(ENABLE_COVERAGE_TESTING) SET(CMAKE_CXX_FLAGS "--coverage ${CMAKE_CXX_FLAGS}") endif() @@ -168,7 +169,7 @@ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) SET(CPACK_PACKAGE_DIRECTORY "${CMAKE_INSTALL_PREFIX}") set(CPACK_PACKAGE_NAME "graphene") -set(CPACK_PACKAGE_VENDOR "Graphene Labs, Inc.") +set(CPACK_PACKAGE_VENDOR "Cryptonomex, Inc.") set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") @@ -188,7 +189,6 @@ if(WIN32) # it seems like windows zip files usually don't have a single directory inside them, unix tgz frequently do SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) - include(CPack) endif(WIN32) if(APPLE) @@ -201,4 +201,5 @@ if(LINUX) SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1) endif(LINUX) + include(CPack) endif(ENABLE_INSTALLER) diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 2a8be16e..00000000 --- a/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -Copyright (c) 2015, Cryptonomex, Inc. -All rights reserved. - -This source code is provided for evaluation in private test networks only, until September 8, 2015. After this date, this license expires and -the code may not be used, modified or distributed for any purpose. Redistribution and use in source and binary forms, with or without modification, -are permitted until September 8, 2015, provided that the following conditions are met: - -1. The code and/or derivative works are used only for private test networks consisting of no more than 10 P2P nodes. - -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. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..6b25e119 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,2 @@ +Copyright (c) 2015, Cryptonomex, Inc. +All rights reserved. diff --git a/libraries/app/application.cpp b/libraries/app/application.cpp index 17d4c1c5..9dcbda94 100644 --- a/libraries/app/application.cpp +++ b/libraries/app/application.cpp @@ -411,6 +411,10 @@ namespace detail { } return result; + } catch ( const graphene::chain::unlinkable_block_exception& e ) { + // translate to a graphene::net exception + elog("Error when pushing block:\n${e}", ("e", e.to_detail_string())); + FC_THROW_EXCEPTION(graphene::net::unlinkable_block_exception, "Error when pushing block:\n${e}", ("e", e.to_detail_string())); } catch( const fc::exception& e ) { elog("Error when pushing block:\n${e}", ("e", e.to_detail_string())); throw; diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index 67717855..3d371bae 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -1,5 +1,6 @@ #include +#include #include #include @@ -350,7 +351,7 @@ fc::variant_object database_api::get_config()const fc::variant_object database_api_impl::get_config()const { - return get_config(); + return graphene::chain::get_config(); } chain_id_type database_api::get_chain_id()const diff --git a/libraries/chain/account_object.cpp b/libraries/chain/account_object.cpp index bd670c12..d51a9479 100644 --- a/libraries/chain/account_object.cpp +++ b/libraries/chain/account_object.cpp @@ -55,8 +55,6 @@ void account_statistics_object::process_fees(const account_object& a, database& { if( pending_fees > 0 || pending_vested_fees > 0 ) { - const auto& props = d.get_global_properties(); - auto pay_out_fees = [&](const account_object& account, share_type core_fee_total, bool require_vesting) { // Check the referrer -- if he's no longer a member, pay to the lifetime referrer instead. @@ -70,6 +68,8 @@ void account_statistics_object::process_fees(const account_object& a, database& assert( network_cut <= core_fee_total ); #ifndef NDEBUG + const auto& props = d.get_global_properties(); + share_type reserveed = cut_fee(network_cut, props.parameters.reserve_percent_of_fee); share_type accumulated = network_cut - reserveed; assert( accumulated + reserveed == network_cut ); diff --git a/libraries/chain/asset_evaluator.cpp b/libraries/chain/asset_evaluator.cpp index 8c1b899d..c9d9c71c 100644 --- a/libraries/chain/asset_evaluator.cpp +++ b/libraries/chain/asset_evaluator.cpp @@ -335,6 +335,7 @@ void_result asset_update_feed_producers_evaluator::do_evaluate(const asset_updat FC_ASSERT(a.is_market_issued(), "Cannot update feed producers on a non-BitAsset."); FC_ASSERT(a.issuer != GRAPHENE_COMMITTEE_ACCOUNT, "Cannot set feed producers on a committee-issued asset."); + FC_ASSERT(a.issuer != GRAPHENE_WITNESS_ACCOUNT, "Cannot set feed producers on a witness-issued asset."); const asset_bitasset_data_object& b = a.bitasset_data(d); bitasset_to_update = &b; @@ -457,12 +458,12 @@ void_result asset_publish_feeds_evaluator::do_evaluate(const asset_publish_feed_ FC_ASSERT( !bitasset.has_settlement(), "No further feeds may be published after a settlement event" ); FC_ASSERT(o.feed.settlement_price.quote.asset_id == bitasset.options.short_backing_asset); //Verify that the publisher is authoritative to publish a feed - if( base.issuer == GRAPHENE_COMMITTEE_ACCOUNT ) + if( (base.issuer == GRAPHENE_WITNESS_ACCOUNT) || (base.issuer == GRAPHENE_COMMITTEE_ACCOUNT) ) + { + FC_ASSERT( d.get(base.issuer).active.account_auths.count(o.publisher) ); + } + else { - //It's a committee_member-fed asset. Verify that publisher is an active committee_member or witness. - FC_ASSERT(d.get(GRAPHENE_COMMITTEE_ACCOUNT).active.account_auths.count(o.publisher) || - d.get_global_properties().witness_accounts.count(o.publisher)); - } else { FC_ASSERT(bitasset.feeds.count(o.publisher)); } diff --git a/libraries/chain/block_database.cpp b/libraries/chain/block_database.cpp index 281dd387..605be12b 100644 --- a/libraries/chain/block_database.cpp +++ b/libraries/chain/block_database.cpp @@ -129,7 +129,7 @@ block_id_type block_database::fetch_block_id( uint32_t block_num )const index_entry e; auto index_pos = sizeof(e)*block_num; _block_num_to_pos.seekg( 0, _block_num_to_pos.end ); - if ( _block_num_to_pos.tellg() <= index_pos ) + if ( _block_num_to_pos.tellg() <= int64_t(index_pos) ) FC_THROW_EXCEPTION(fc::key_not_found_exception, "Block number ${block_num} not contained in block database", ("block_num", block_num)); _block_num_to_pos.seekg( index_pos ); diff --git a/libraries/net/include/graphene/net/exceptions.hpp b/libraries/net/include/graphene/net/exceptions.hpp index 7750455d..5c028ead 100644 --- a/libraries/net/include/graphene/net/exceptions.hpp +++ b/libraries/net/include/graphene/net/exceptions.hpp @@ -27,5 +27,6 @@ namespace graphene { namespace net { FC_DECLARE_DERIVED_EXCEPTION( already_connected_to_requested_peer, graphene::net::net_exception, 90003, "already connected to requested peer" ); FC_DECLARE_DERIVED_EXCEPTION( block_older_than_undo_history, graphene::net::net_exception, 90004, "block is older than our undo history allows us to process" ); FC_DECLARE_DERIVED_EXCEPTION( peer_is_on_an_unreachable_fork, graphene::net::net_exception, 90005, "peer is on another fork" ); + FC_DECLARE_DERIVED_EXCEPTION( unlinkable_block_exception, graphene::net::net_exception, 90006, "unlinkable block" ) } } diff --git a/libraries/net/include/graphene/net/peer_connection.hpp b/libraries/net/include/graphene/net/peer_connection.hpp index 4e506026..82044222 100644 --- a/libraries/net/include/graphene/net/peer_connection.hpp +++ b/libraries/net/include/graphene/net/peer_connection.hpp @@ -221,7 +221,6 @@ namespace graphene { namespace net bool we_need_sync_items_from_peer; fc::optional, fc::time_point> > item_ids_requested_from_peer; /// we check this to detect a timed-out request and in busy() item_to_time_map_type sync_items_requested_from_peer; /// ids of blocks we've requested from this peer during sync. fetch from another peer if this peer disconnects - uint32_t last_block_number_delegate_has_seen; /// the number of the last block this peer has told us about that the delegate knows (ids_of_items_to_get[0] should be the id of block [this value + 1]) item_hash_t last_block_delegate_has_seen; /// the hash of the last block this peer has told us about that the peer knows fc::time_point_sec last_block_time_delegate_has_seen; bool inhibit_fetching_sync_blocks; diff --git a/libraries/net/node.cpp b/libraries/net/node.cpp index 9af8c217..fc49f0f3 100644 --- a/libraries/net/node.cpp +++ b/libraries/net/node.cpp @@ -462,6 +462,7 @@ namespace graphene { namespace net { namespace detail { > items_to_fetch_set_type; unsigned _items_to_fetch_sequence_counter; items_to_fetch_set_type _items_to_fetch; /// list of items we know another peer has and we want + peer_connection::timestamped_items_set_type _recently_failed_items; /// list of transactions we've recently pushed and had rejected by the delegate // @} /// used by the task that advertises inventory during normal operation @@ -846,7 +847,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "unexpected exception on close ${e}", ("e", e.to_detail_string() ) ); + wlog( "unexpected exception on close ${e}", ("e", e) ); } ilog( "done" ); } @@ -965,7 +966,7 @@ namespace graphene { namespace net { namespace detail { } catch (const fc::exception& e) { - elog("${e}", ("e", e.to_detail_string())); + elog("${e}", ("e", e)); } }// while(!canceled) } @@ -1293,10 +1294,21 @@ namespace graphene { namespace net { namespace detail { // timeout for any active peers is two block intervals uint32_t active_disconnect_timeout = 10 * current_block_interval_in_seconds; uint32_t active_send_keepalive_timeout = active_disconnect_timeout / 2; - uint32_t active_ignored_request_timeout = current_block_interval_in_seconds; + + // set the ignored request time out to 1 second. When we request a block + // or transaction from a peer, this timeout determines how long we wait for them + // to reply before we give up and ask another peer for the item. + // Ideally this should be significantly shorter than the block interval, because + // we'd like to realize the block isn't coming and fetch it from a different + // peer before the next block comes in. At the current target of 3 second blocks, + // 1 second seems reasonable. When we get closer to our eventual target of 1 second + // blocks, this will need to be re-evaluated (i.e., can we set the timeout to 500ms + // and still handle normal network & processing delays without excessive disconnects) + fc::microseconds active_ignored_request_timeout = fc::seconds(1); + fc::time_point active_disconnect_threshold = fc::time_point::now() - fc::seconds(active_disconnect_timeout); fc::time_point active_send_keepalive_threshold = fc::time_point::now() - fc::seconds(active_send_keepalive_timeout); - fc::time_point active_ignored_request_threshold = fc::time_point::now() - fc::seconds(active_ignored_request_timeout); + fc::time_point active_ignored_request_threshold = fc::time_point::now() - active_ignored_request_timeout; for( const peer_connection_ptr& active_peer : _active_connections ) { if( active_peer->connection_initiation_time < active_disconnect_threshold && @@ -1443,6 +1455,13 @@ namespace graphene { namespace net { namespace detail { } } + // this has nothing to do with updating the peer list, but we need to prune this list + // at regular intervals, this is a fine place to do it. + fc::time_point_sec oldest_failed_ids_to_keep(fc::time_point::now() - fc::minutes(15)); + auto oldest_failed_ids_to_keep_iter = _recently_failed_items.get().lower_bound(oldest_failed_ids_to_keep); + auto begin_iter = _recently_failed_items.get().begin(); + _recently_failed_items.get().erase(begin_iter, oldest_failed_ids_to_keep_iter); + if (!_node_is_shutting_down && !_fetch_updated_peer_lists_loop_done.canceled() ) _fetch_updated_peer_lists_loop_done = fc::schedule( [this](){ fetch_updated_peer_lists_loop(); }, fc::time_point::now() + fc::minutes(15), @@ -2276,14 +2295,14 @@ namespace graphene { namespace net { namespace detail { { VERIFY_CORRECT_THREAD(); item_hash_t reference_point = peer->last_block_delegate_has_seen; - uint32_t reference_point_block_num = peer->last_block_number_delegate_has_seen; - uint32_t number_of_blocks_after_reference_point = (uint32_t)peer->ids_of_items_to_get.size(); + uint32_t reference_point_block_num = _delegate->get_block_number(peer->last_block_delegate_has_seen); // when we call _delegate->get_blockchain_synopsis(), we may yield and there's a // chance this peer's state will change before we get control back. Save off // the stuff necessary for generating the synopsis. // This is pretty expensive, we should find a better way to do this - std::unique_ptr > original_ids_of_items_to_get(new std::vector(peer->ids_of_items_to_get.begin(), peer->ids_of_items_to_get.end())); + std::vector original_ids_of_items_to_get(peer->ids_of_items_to_get.begin(), peer->ids_of_items_to_get.end()); + uint32_t number_of_blocks_after_reference_point = original_ids_of_items_to_get.size(); std::vector synopsis = _delegate->get_blockchain_synopsis(reference_point, number_of_blocks_after_reference_point); @@ -2303,7 +2322,8 @@ namespace graphene { namespace net { namespace detail { if( number_of_blocks_after_reference_point ) { // then the synopsis is incomplete, add the missing elements from ids_of_items_to_get - uint32_t true_high_block_num = reference_point_block_num + number_of_blocks_after_reference_point; + uint32_t first_block_num_in_ids_to_get = _delegate->get_block_number(original_ids_of_items_to_get.front()); + uint32_t true_high_block_num = first_block_num_in_ids_to_get + original_ids_of_items_to_get.size() - 1; // in order to generate a seamless synopsis, we need to be using the same low_block_num as the // backend code; the first block in the synopsis will be the low block number it used @@ -2311,12 +2331,12 @@ namespace graphene { namespace net { namespace detail { do { - if( low_block_num > reference_point_block_num ) - synopsis.push_back((*original_ids_of_items_to_get)[low_block_num - reference_point_block_num - 1]); + if( low_block_num >= first_block_num_in_ids_to_get ) + synopsis.push_back(original_ids_of_items_to_get[low_block_num - first_block_num_in_ids_to_get]); low_block_num += (true_high_block_num - low_block_num + 2 ) / 2; } while ( low_block_num <= true_high_block_num ); - assert(synopsis.back() == original_ids_of_items_to_get->back()); + assert(synopsis.back() == original_ids_of_items_to_get.back()); } return synopsis; } @@ -2327,7 +2347,6 @@ namespace graphene { namespace net { namespace detail { if( reset_fork_tracking_data_for_peer ) { peer->last_block_delegate_has_seen = item_hash_t(); - peer->last_block_number_delegate_has_seen = 0; peer->last_block_time_delegate_has_seen = _delegate->get_block_time(item_hash_t()); } @@ -2364,6 +2383,35 @@ namespace graphene { namespace net { namespace detail { // the blocks in the synopsis we sent if (!blockchain_item_ids_inventory_message_received.item_hashes_available.empty()) { + // what's more, it should be a sequential list of blocks, verify that first + uint32_t first_block_number_in_reponse = _delegate->get_block_number(blockchain_item_ids_inventory_message_received.item_hashes_available.front()); + for (unsigned i = 1; i < blockchain_item_ids_inventory_message_received.item_hashes_available.size(); ++i) + { + uint32_t actual_num = _delegate->get_block_number(blockchain_item_ids_inventory_message_received.item_hashes_available[i]); + uint32_t expected_num = first_block_number_in_reponse + i; + if (actual_num != expected_num) + { + wlog("Invalid response from peer ${peer_endpoint}. The list of blocks they provided is not sequential, " + "the ${position}th block in their reply was block number ${actual_num}, " + "but it should have been number ${expected_num}", + ("peer_endpoint", originating_peer->get_remote_endpoint()) + ("position", i) + ("actual_num", actual_num) + ("expected_num", expected_num)); + fc::exception error_for_peer(FC_LOG_MESSAGE(error, + "You gave an invalid response to my request for sync blocks. The list of blocks you provided is not sequential, " + "the ${position}th block in their reply was block number ${actual_num}, " + "but it should have been number ${expected_num}", + ("position", i) + ("actual_num", actual_num) + ("expected_num", expected_num))); + disconnect_from_peer(originating_peer, + "You gave an invalid response to my request for sync blocks", + true, error_for_peer); + return; + } + } + const std::vector& synopsis_sent_in_request = originating_peer->item_ids_requested_from_peer->get<0>(); const item_hash_t& first_item_hash = blockchain_item_ids_inventory_message_received.item_hashes_available.front(); @@ -2376,15 +2424,12 @@ namespace graphene { namespace net { namespace detail { "but they provided a list of blocks starting with ${first_block}", ("peer_endpoint", originating_peer->get_remote_endpoint()) ("first_block", first_item_hash)); - // TODO: enable these once committed - //fc::exception error_for_peer(FC_LOG_MESSAGE(error, "You gave an invalid response for my request for sync blocks. I asked for blocks starting from the beginning of the chain, " - // "but you returned a list of blocks starting with ${first_block}", - // ("first_block", first_item_hash))); - //disconnect_from_peer(originating_peer, - // "You gave an invalid response to my request for sync blocks", - // true, error_for_peer); + fc::exception error_for_peer(FC_LOG_MESSAGE(error, "You gave an invalid response for my request for sync blocks. I asked for blocks starting from the beginning of the chain, " + "but you returned a list of blocks starting with ${first_block}", + ("first_block", first_item_hash))); disconnect_from_peer(originating_peer, - "You gave an invalid response to my request for sync blocks"); + "You gave an invalid response to my request for sync blocks", + true, error_for_peer); return; } } @@ -2397,16 +2442,13 @@ namespace graphene { namespace net { namespace detail { ("peer_endpoint", originating_peer->get_remote_endpoint()) ("synopsis", synopsis_sent_in_request) ("first_block", first_item_hash)); - // TODO: enable these once committed - //fc::exception error_for_peer(FC_LOG_MESSAGE(error, "You gave an invalid response for my request for sync blocks. I asked for blocks following something in " - // "${synopsis}, but you returned a list of blocks starting with ${first_block} which wasn't one of your choices", - // ("synopsis", synopsis_sent_in_request) - // ("first_block", first_item_hash))); - //disconnect_from_peer(originating_peer, - // "You gave an invalid response to my request for sync blocks", - // true, error_for_peer); + fc::exception error_for_peer(FC_LOG_MESSAGE(error, "You gave an invalid response for my request for sync blocks. I asked for blocks following something in " + "${synopsis}, but you returned a list of blocks starting with ${first_block} which wasn't one of your choices", + ("synopsis", synopsis_sent_in_request) + ("first_block", first_item_hash))); disconnect_from_peer(originating_peer, - "You gave an invalid response to my request for sync blocks"); + "You gave an invalid response to my request for sync blocks", + true, error_for_peer); return; } } @@ -2464,28 +2506,18 @@ namespace graphene { namespace net { namespace detail { ("is_first", is_first_item_for_other_peer)("size", item_hashes_received.size())); if (!is_first_item_for_other_peer) { - bool first = true; while (!item_hashes_received.empty() && _delegate->has_item(item_id(blockchain_item_ids_inventory_message_received.item_type, item_hashes_received.front()))) { assert(item_hashes_received.front() != item_hash_t()); originating_peer->last_block_delegate_has_seen = item_hashes_received.front(); - if (first) - { - // we don't yet know the block number of the first block they sent, so look it up - originating_peer->last_block_number_delegate_has_seen = _delegate->get_block_number(item_hashes_received.front()); - first = false; - } - else - ++originating_peer->last_block_number_delegate_has_seen; // subsequent blocks will follow in immediate sequence originating_peer->last_block_time_delegate_has_seen = _delegate->get_block_time(item_hashes_received.front()); - dlog("popping item because delegate has already seen it. peer ${peer}'s last block the delegate has seen is now ${block_id} (actual block #${actual_block_num}, tracked block #${tracked_block_num})", + dlog("popping item because delegate has already seen it. peer ${peer}'s last block the delegate has seen is now ${block_id} (actual block #${actual_block_num})", ("peer", originating_peer->get_remote_endpoint()) ("block_id", originating_peer->last_block_delegate_has_seen) - ("actual_block_num", _delegate->get_block_number(item_hashes_received.front())) - ("tracked_block_num", originating_peer->last_block_number_delegate_has_seen)); - assert(originating_peer->last_block_number_delegate_has_seen == _delegate->get_block_number(originating_peer->last_block_delegate_has_seen)); + ("actual_block_num", _delegate->get_block_number(item_hashes_received.front()))); + item_hashes_received.pop_front(); } dlog("after removing all items we have already seen, item_hashes_received.size() = ${size}", ("size", item_hashes_received.size())); @@ -2520,7 +2552,6 @@ namespace graphene { namespace net { namespace detail { // blocks we sent in the initial synopsis. assert(_delegate->has_item(item_id(_sync_item_type, item_hashes_received.front()))); originating_peer->last_block_delegate_has_seen = item_hashes_received.front(); - originating_peer->last_block_number_delegate_has_seen = _delegate->get_block_number(item_hashes_received.front()); originating_peer->last_block_time_delegate_has_seen = _delegate->get_block_time(item_hashes_received.front()); item_hashes_received.pop_front(); } @@ -2678,7 +2709,6 @@ namespace graphene { namespace net { namespace detail { { graphene::net::block_message block = last_block_message_sent->as(); originating_peer->last_block_delegate_has_seen = block.block_id; - originating_peer->last_block_number_delegate_has_seen = _delegate->get_block_number(block.block_id); originating_peer->last_block_time_delegate_has_seen = _delegate->get_block_time(block.block_id); } @@ -2764,12 +2794,20 @@ namespace graphene { namespace net { namespace detail { originating_peer->inventory_peer_advertised_to_us.insert(peer_connection::timestamped_item_id(advertised_item_id, fc::time_point::now())); if (!we_requested_this_item_from_a_peer) { - auto insert_result = _items_to_fetch.insert(prioritized_item_id(advertised_item_id, _items_to_fetch_sequence_counter++)); - if (insert_result.second) + if (_recently_failed_items.find(item_id(item_ids_inventory_message_received.item_type, item_hash)) != _recently_failed_items.end()) { - dlog("adding item ${item_hash} from inventory message to our list of items to fetch", + dlog("not adding ${item_hash} to our list of items to fetch because we've recently fetched a copy and it failed to push", ("item_hash", item_hash)); - trigger_fetch_items_loop(); + } + else + { + auto insert_result = _items_to_fetch.insert(prioritized_item_id(advertised_item_id, _items_to_fetch_sequence_counter++)); + if (insert_result.second) + { + dlog("adding item ${item_hash} from inventory message to our list of items to fetch", + ("item_hash", item_hash)); + trigger_fetch_items_loop(); + } } } } @@ -2921,7 +2959,7 @@ namespace graphene { namespace net { namespace detail { "allow us to switch to: ${e}", ("num", block_message_to_send.block.block_num()) ("id", block_message_to_send.block_id) - ("e", e.to_detail_string())); + ("e", (fc::exception)e)); handle_message_exception = e; discontinue_fetching_blocks_from_peer = true; } @@ -3000,7 +3038,6 @@ namespace graphene { namespace net { namespace detail { if (items_being_processed_iter != peer->ids_of_items_being_processed.end()) { peer->last_block_delegate_has_seen = block_message_to_send.block_id; - peer->last_block_number_delegate_has_seen = block_message_to_send.block.block_num(); peer->last_block_time_delegate_has_seen = block_message_to_send.block.timestamp; peer->ids_of_items_being_processed.erase(items_being_processed_iter); @@ -3209,10 +3246,10 @@ namespace graphene { namespace net { namespace detail { fc::time_point message_receive_time = fc::time_point::now(); dlog( "received a block from peer ${endpoint}, passing it to client", ("endpoint", originating_peer->get_remote_endpoint() ) ); - std::list peers_to_disconnect; + std::set peers_to_disconnect; std::string disconnect_reason; fc::oexception disconnect_exception; - + fc::oexception restart_sync_exception; try { // we can get into an intersting situation near the end of synchronization. We can be in @@ -3229,8 +3266,8 @@ namespace graphene { namespace net { namespace detail { _delegate->handle_block(block_message_to_process, false, contained_transaction_message_ids); message_validated_time = fc::time_point::now(); ilog("Successfully pushed block ${num} (id:${id})", - ("num", block_message_to_process.block.block_num()) - ("id", block_message_to_process.block_id)); + ("num", block_message_to_process.block.block_num()) + ("id", block_message_to_process.block_id)); _most_recent_blocks_accepted.push_back(block_message_to_process.block_id); bool new_transaction_discovered = false; @@ -3272,7 +3309,6 @@ namespace graphene { namespace net { namespace detail { // For now, it will remain there, which will prevent us from offering the peer this // block back when we rebroadcast the block below peer->last_block_delegate_has_seen = block_message_to_process.block_id; - peer->last_block_number_delegate_has_seen = block_number; peer->last_block_time_delegate_has_seen = block_time; } peer->clear_old_inventory(); @@ -3293,7 +3329,7 @@ namespace graphene { namespace net { namespace detail { if (next_fork_block_number != 0 && next_fork_block_number <= block_number) { - peers_to_disconnect.push_back(peer); + peers_to_disconnect.insert(peer); #ifdef ENABLE_DEBUG_ULOGS ulog("Disconnecting from peer because their version is too old. Their version date: ${date}", ("date", peer->graphene_git_revision_unix_timestamp)); #endif @@ -3314,7 +3350,11 @@ namespace graphene { namespace net { namespace detail { { throw; } - catch ( const fc::exception& e ) + catch (const unlinkable_block_exception& e) + { + restart_sync_exception = e; + } + catch (const fc::exception& e) { // client rejected the block. Disconnect the client and any other clients that offered us this block wlog("Failed to push block ${num} (id:${id}), client rejected block sent by peer", @@ -3323,11 +3363,22 @@ namespace graphene { namespace net { namespace detail { disconnect_exception = e; disconnect_reason = "You offered me a block that I have deemed to be invalid"; + + peers_to_disconnect.insert( originating_peer->shared_from_this() ); for (const peer_connection_ptr& peer : _active_connections) - if (!peer->ids_of_items_to_get.empty() && - peer->ids_of_items_to_get.front() == block_message_to_process.block_id) - peers_to_disconnect.push_back(peer); + if (!peer->ids_of_items_to_get.empty() && peer->ids_of_items_to_get.front() == block_message_to_process.block_id) + peers_to_disconnect.insert(peer); } + + if (restart_sync_exception) + { + wlog("Peer ${peer} sent me a block that didn't link to our blockchain. Restarting sync mode with them to get the missing block. " + "Error pushing block was: ${e}", + ("peer", originating_peer->get_remote_endpoint()) + ("e", *restart_sync_exception)); + start_synchronizing_with_peer(originating_peer->shared_from_this()); + } + for (const peer_connection_ptr& peer : peers_to_disconnect) { wlog("disconnecting client ${endpoint} because it offered us the rejected block", ("endpoint", peer->get_remote_endpoint())); @@ -3633,7 +3684,7 @@ namespace graphene { namespace net { namespace detail { user_data["user_agent"] = peer->user_agent; user_data["last_known_block_hash"] = peer->last_block_delegate_has_seen; - user_data["last_known_block_number"] = peer->last_block_number_delegate_has_seen; + user_data["last_known_block_number"] = _delegate->get_block_number(peer->last_block_delegate_has_seen); user_data["last_known_block_time"] = peer->last_block_time_delegate_has_seen; data_for_this_peer.user_data = user_data; @@ -3661,7 +3712,7 @@ namespace graphene { namespace net { namespace detail { fc::time_point message_receive_time = fc::time_point::now(); // only process it if we asked for it - auto iter = originating_peer->items_requested_from_peer.find( item_id(message_to_process.msg_type, message_hash ) ); + auto iter = originating_peer->items_requested_from_peer.find( item_id(message_to_process.msg_type, message_hash) ); if( iter == originating_peer->items_requested_from_peer.end() ) { wlog( "received a message I didn't ask for from peer ${endpoint}, disconnecting from peer", @@ -3682,7 +3733,11 @@ namespace graphene { namespace net { namespace detail { try { if (message_to_process.msg_type == trx_message_type) - _delegate->handle_transaction( message_to_process.as() ); + { + trx_message transaction_message_to_process = message_to_process.as(); + dlog("passing message containing transaction ${trx} to client", ("trx", transaction_message_to_process.trx.id())); + _delegate->handle_transaction(transaction_message_to_process); + } else _delegate->handle_message( message_to_process ); message_validated_time = fc::time_point::now(); @@ -3701,7 +3756,9 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "client rejected message sent by peer ${peer}, ${e}", ("peer", originating_peer->get_remote_endpoint() )("e", e.to_string() ) ); + wlog( "client rejected message sent by peer ${peer}, ${e}", ("peer", originating_peer->get_remote_endpoint() )("e", e) ); + // record it so we don't try to fetch this item again + _recently_failed_items.insert(peer_connection::timestamped_item_id(item_id(message_to_process.msg_type, message_hash ), fc::time_point::now())); return; } @@ -3718,7 +3775,6 @@ namespace graphene { namespace net { namespace detail { peer->number_of_unfetched_item_ids = 0; peer->we_need_sync_items_from_peer = true; peer->last_block_delegate_has_seen = item_hash_t(); - peer->last_block_number_delegate_has_seen = 0; peer->last_block_time_delegate_has_seen = _delegate->get_block_time(item_hash_t()); peer->inhibit_fetching_sync_blocks = false; fetch_next_batch_of_item_ids_from_peer( peer.get() ); @@ -3753,7 +3809,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while closing P2P peer database, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while closing P2P peer database, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3768,7 +3824,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while closing P2P TCP server, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while closing P2P TCP server, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3782,7 +3838,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating P2P accept loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating P2P accept loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3804,7 +3860,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating P2P connect loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating P2P connect loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3822,7 +3878,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Process backlog of sync items task, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Process backlog of sync items task, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3844,7 +3900,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog("Exception thrown while terminating handle_message call #${count} task, ignoring: ${e}", ("e",e)("count", handle_message_call_count)); + wlog("Exception thrown while terminating handle_message call #${count} task, ignoring: ${e}", ("e", e)("count", handle_message_call_count)); } catch (...) { @@ -3867,7 +3923,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Fetch sync items loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Fetch sync items loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3888,7 +3944,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Fetch items loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Fetch items loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3909,7 +3965,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Advertise inventory loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Advertise inventory loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3935,7 +3991,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while closing peer connection, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while closing peer connection, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3960,7 +4016,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Delayed peer deletion task, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Delayed peer deletion task, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3979,7 +4035,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Terminate inactive connections loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Terminate inactive connections loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -3993,7 +4049,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Fetch updated peer lists loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Fetch updated peer lists loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -4007,7 +4063,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Bandwidth monitor loop, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Bandwidth monitor loop, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -4021,7 +4077,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - wlog( "Exception thrown while terminating Dump node status task, ignoring: ${e}", ("e",e) ); + wlog( "Exception thrown while terminating Dump node status task, ignoring: ${e}", ("e", e) ); } catch (...) { @@ -4708,8 +4764,8 @@ namespace graphene { namespace net { namespace detail { // provide these for debugging // warning: these are just approximations, if the peer is "downstream" of us, they may // have received blocks from other peers that we are unaware of - peer_details["current_head_block_number"] = peer->last_block_number_delegate_has_seen; peer_details["current_head_block"] = peer->last_block_delegate_has_seen; + peer_details["current_head_block_number"] = _delegate->get_block_number(peer->last_block_delegate_has_seen); peer_details["current_head_block_time"] = peer->last_block_time_delegate_has_seen; this_peer_status.info = peer_details; @@ -5133,7 +5189,7 @@ namespace graphene { namespace net { namespace detail { } catch ( const fc::exception& e ) { - elog( "${r}", ("r",e.to_detail_string() ) ); + elog( "${r}", ("r",e) ); } destination_node->messages_to_deliver.pop(); } @@ -5308,8 +5364,11 @@ namespace graphene { namespace net { namespace detail { uint32_t statistics_gathering_node_delegate_wrapper::get_block_number(const item_hash_t& block_id) { - INVOKE_AND_COLLECT_STATISTICS(get_block_number, block_id); + // this function doesn't need to block, + ASSERT_TASK_NOT_PREEMPTED(); + return _node_delegate->get_block_number(block_id); } + fc::time_point_sec statistics_gathering_node_delegate_wrapper::get_block_time(const item_hash_t& block_id) { INVOKE_AND_COLLECT_STATISTICS(get_block_time, block_id); diff --git a/libraries/net/peer_connection.cpp b/libraries/net/peer_connection.cpp index b0df01b7..1b83bb6b 100644 --- a/libraries/net/peer_connection.cpp +++ b/libraries/net/peer_connection.cpp @@ -77,7 +77,6 @@ namespace graphene { namespace net number_of_unfetched_item_ids(0), peer_needs_sync_items_from_us(true), we_need_sync_items_from_peer(true), - last_block_number_delegate_has_seen(0), inhibit_fetching_sync_blocks(false), transaction_fetching_inhibited_until(fc::time_point::min()), last_known_fork_block_number(0), diff --git a/libraries/plugins/market_history/market_history_plugin.cpp b/libraries/plugins/market_history/market_history_plugin.cpp index d8e941d1..ec317d86 100644 --- a/libraries/plugins/market_history/market_history_plugin.cpp +++ b/libraries/plugins/market_history/market_history_plugin.cpp @@ -74,7 +74,7 @@ struct operation_process_fill_order void operator()( const fill_order_operation& o )const { - ilog( "processing ${o}", ("o",o) ); + //ilog( "processing ${o}", ("o",o) ); const auto& buckets = _plugin.tracked_buckets(); auto& db = _plugin.database(); const auto& bucket_idx = db.get_index_type(); @@ -94,7 +94,7 @@ struct operation_process_fill_order */ if( key.base > key.quote ) { - ilog( " skipping because base > quote" ); + //ilog( " skipping because base > quote" ); continue; } @@ -124,7 +124,7 @@ struct operation_process_fill_order } else { // update existing bucket - wlog( " before updating bucket ${b}", ("b",*itr) ); + //wlog( " before updating bucket ${b}", ("b",*itr) ); db.modify( *itr, [&]( bucket_object& b ){ b.base_volume += trade_price.base.amount; b.quote_volume += trade_price.quote.amount; @@ -141,7 +141,7 @@ struct operation_process_fill_order b.low_quote = b.close_quote; } }); - wlog( " after bucket bucket ${b}", ("b",*itr) ); + //wlog( " after bucket bucket ${b}", ("b",*itr) ); } if( max_history != 0 ) @@ -155,7 +155,7 @@ struct operation_process_fill_order itr->key.seconds == bucket && itr->key.open < cutoff ) { - elog( " removing old bucket ${b}", ("b", *itr) ); + // elog( " removing old bucket ${b}", ("b", *itr) ); auto old_itr = itr; ++itr; db.remove( *old_itr ); diff --git a/programs/full_web_node/CMakeLists.txt b/programs/full_web_node/CMakeLists.txt index 06b40919..4d73381d 100644 --- a/programs/full_web_node/CMakeLists.txt +++ b/programs/full_web_node/CMakeLists.txt @@ -1,6 +1,31 @@ -cmake_minimum_required(VERSION 2.8.11) +#cmake_minimum_required(VERSION 2.8.11) + +#project(full_web_node) + + + +# use, i.e. don't skip the full RPATH for the build tree +SET(CMAKE_SKIP_BUILD_RPATH FALSE) + +# when building, don't use the install RPATH already +# (but later on when installing) +SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + +# add the automatically determined parts of the RPATH +# which point to directories outside the build tree to the install RPATH +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + +# the RPATH to be used when installing, but only if it's not a system directory +LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) +IF("${isSystemDir}" STREQUAL "-1") + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + ENDIF("${isSystemDir}" STREQUAL "-1") + + -project(full_web_node) # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -16,14 +41,77 @@ file(GLOB WEB web/*) qt5_add_resources(QML_QRC qml/qml.qrc) qt5_add_resources(WEB_QRC web/web.qrc) -add_executable(full_web_node BlockChain.cpp main.cpp ${QML_QRC} ${WEB_QRC} ${QML}) -target_link_libraries(full_web_node PRIVATE Qt5::Core Qt5::Quick Qt5::WebEngine +set( APP_NAME "GrapheneTest3" ) + +set( CPACK_BUNDLE_NAME ${APP_NAME} ) +set( CPACK_PACKAGE_NAME ${CPACK_BUNDLE_NAME} ) +set( CPACK_PACKAGE_EXECUTABLES qt_wallet ${CPACK_BUNDLE_NAME} ) +set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "package description summary" ) +set( CPACK_PACKAGE_VENDOR "BitShares" ) +set( CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR} ) +set( CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR} ) +set( CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH} ) +set( CPACK_DMG_VOLUME_NAME ${CPACK_BUNDLE_NAME} ) +set( CPACK_PACKAGE_FILE_NAME ${CPACK_BUNDLE_NAME} ) +get_filename_component( QT_PATH ${Qt5Core_DIR}/../../../ ABSOLUTE ) + + + +IF( APPLE ) + set ( OSX_ICON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/images/bitshares.icns" ) + SET_SOURCE_FILES_PROPERTIES( "${OSX_ICON_FILE}" PROPERTIES MACOSX_PACKAGE_LOCATION Resources ) + SET( MACOSX_BUNDLE_BUNDLE_NAME ${CPACK_BUNDLE_NAME} ) + SET( MACOSX_BUNDLE_EXECUTABLE_NAME ${CPACK_BUNDLE_NAME} ) + SET( MACOSX_BUNDLE_GUI_IDENTIFIER "org.cryptonomex.${CPACK_BUNDLE_NAME}" ) + SET( MACOSX_BUNDLE_ICON_FILE "bitshares.icns" ) + SET( MACOSX_BUNDLE_INFO_STRING "Graphene v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) + SET( MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) + SET( MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) + SET( MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) + SET( MACOSX_BUNDLE_COPYRIGHT "(C) 2014 Cryptonomex" ) +# SET( MACOSX_BUNDLE_URL_HANDLER_NAME "${MACOSX_BUNDLE_GUI_IDENTIFIER}" ) +# SET( MACOSX_BUNDLE_URL_HANDLER_SCHEME "${CUSTOM_URL_SCHEME}" ) +# set_source_files_properties("images/bitshares.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +ENDIF() + + + + + + +add_executable( ${APP_NAME} WIN32 MACOSX_BUNDLE BlockChain.cpp main.cpp ${QML_QRC} ${WEB_QRC} ${QML}) + +target_link_libraries(${APP_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::WebEngine graphene_chain graphene_egenesis_full graphene_utilities fc graphene_account_history graphene_market_history graphene_app ) -install( TARGETS - full_web_node - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib + +#install( TARGETS +# ${APP_NAME} +# RUNTIME DESTINATION bin +# LIBRARY DESTINATION lib +# ARCHIVE DESTINATION lib +#) + + +ADD_CUSTOM_COMMAND(TARGET ${APP_NAME} POST_BUILD ${POST_BUILD_STEP_COMMANDS} + COMMENT "Copying binaries and other files into target directory." ) + +ADD_CUSTOM_COMMAND(TARGET ${APP_NAME} PRE_BUILD ${PRE_BUILD_STEP_COMMANDS} + COMMENT "Copying static resource files to build directory." +) + +include( DeployQt4 ) +include( InstallRequiredSystemLibraries ) +install( TARGETS ${APP_NAME} DESTINATION "." ) + +IF( APPLE ) + set( CPACK_GENERATOR "DragNDrop" ) + include( CPack ) + set( PLUGINS "") + list( APPEND PLUGINS "${QT_PATH}/plugins/platforms/libqcocoa.dylib" ) + list( APPEND PLUGINS "${QT_PATH}/plugins/imageformats/libqjpeg.dylib" ) + install_qt4_executable( ${APP_NAME}.app "${PLUGINS}" ) +ENDIF() + diff --git a/programs/full_web_node/web/1.app.js b/programs/full_web_node/web/1.app.js deleted file mode 100644 index 13db711c..00000000 --- a/programs/full_web_node/web/1.app.js +++ /dev/null @@ -1 +0,0 @@ -webpackJsonp([1],{847:function(e,t){e.exports={locale:"en",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:!0,hour12:!0,formats:{medium:"{1}, {0}",availableFormats:{E:"ccc",EHm:"E HH:mm",EHms:"E HH:mm:ss",Ed:"d E",Ehm:"E h:mm a",Ehms:"E h:mm:ss a",Gy:"y G",GyMMM:"MMM y G",GyMMMEd:"E, MMM d, y G",GyMMMd:"MMM d, y G",H:"HH",Hm:"HH:mm",Hms:"HH:mm:ss",Hmsv:"HH:mm:ss v",Hmv:"HH:mm v",M:"L",MEd:"E, M/d",MMM:"LLL",MMMEd:"E, MMM d",MMMd:"MMM d",Md:"M/d",d:"d",h:"h a",hm:"h:mm a",hms:"h:mm:ss a",hmsv:"h:mm:ss a v",hmv:"h:mm a v",ms:"mm:ss",y:"y",yM:"M/y",yMEd:"E, M/d/y",yMMM:"MMM y",yMMMEd:"E, MMM d, y",yMMMd:"MMM d, y",yMd:"M/d/y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{full:"EEEE, MMMM d, y","long":"MMMM d, y",medium:"MMM d, y","short":"M/d/yy"},timeFormats:{full:"h:mm:ss a zzzz","long":"h:mm:ss a z",medium:"h:mm:ss a","short":"h:mm a"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],"short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"long":["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["BE"],"short":["BE"],"long":["BE"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Mo1","Mo2","Mo3","Mo4","Mo5","Mo6","Mo7","Mo8","Mo9","Mo10","Mo11","Mo12"],"long":["Month1","Month2","Month3","Month4","Month5","Month6","Month7","Month8","Month9","Month10","Month11","Month12"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],"short":["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],"long":["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],"short":["ERA0","ERA1"],"long":["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Mo1","Mo2","Mo3","Mo4","Mo5","Mo6","Mo7","Mo8","Mo9","Mo10","Mo11","Mo12"],"long":["Month1","Month2","Month3","Month4","Month5","Month6","Month7","Month8","Month9","Month10","Month11","Month12"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],"short":["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],"long":["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],"short":["ERA0","ERA1"],"long":["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],"short":["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],"long":["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0"],"short":["ERA0"],"long":["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],"long":["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],"short":["ERA0","ERA1"],"long":["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],"short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"long":["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["B","A","BCE","CE"],"short":["BC","AD","BCE","CE"],"long":["Before Christ","Anno Domini","Before Common Era","Common Era"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],"short":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],"long":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AM"],"short":["AM"],"long":["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],"long":["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Saka"],"short":["Saka"],"long":["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"long":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AH"],"short":["AH"],"long":["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"long":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AH"],"short":["AH"],"long":["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],"short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"long":["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Taika (645-650)","Hakuchi (650-671)","Hakuhō (672-686)","Shuchō (686-701)","Taihō (701-704)","Keiun (704-708)","Wadō (708-715)","Reiki (715-717)","Yōrō (717-724)","Jinki (724-729)","Tempyō (729-749)","Tempyō-kampō (749-749)","Tempyō-shōhō (749-757)","Tempyō-hōji (757-765)","Temphō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770-780)","Ten-ō (781-782)","Enryaku (782-806)","Daidō (806-810)","Kōnin (810-824)","Tenchō (824-834)","Jōwa (834-848)","Kajō (848-851)","Ninju (851-854)","Saiko (854-857)","Tennan (857-859)","Jōgan (859-877)","Genkei (877-885)","Ninna (885-889)","Kampyō (889-898)","Shōtai (898-901)","Engi (901-923)","Enchō (923-931)","Shōhei (931-938)","Tengyō (938-947)","Tenryaku (947-957)","Tentoku (957-961)","Ōwa (961-964)","Kōhō (964-968)","Anna (968-970)","Tenroku (970-973)","Ten-en (973-976)","Jōgen (976-978)","Tengen (978-983)","Eikan (983-985)","Kanna (985-987)","Ei-en (987-989)","Eiso (989-990)","Shōryaku (990-995)","Chōtoku (995-999)","Chōhō (999-1004)","Kankō (1004-1012)","Chōwa (1012-1017)","Kannin (1017-1021)","Jian (1021-1024)","Manju (1024-1028)","Chōgen (1028-1037)","Chōryaku (1037-1040)","Chōkyū (1040-1044)","Kantoku (1044-1046)","Eishō (1046-1053)","Tengi (1053-1058)","Kōhei (1058-1065)","Jiryaku (1065-1069)","Enkyū (1069-1074)","Shōho (1074-1077)","Shōryaku (1077-1081)","Eiho (1081-1084)","Ōtoku (1084-1087)","Kanji (1087-1094)","Kaho (1094-1096)","Eichō (1096-1097)","Shōtoku (1097-1099)","Kōwa (1099-1104)","Chōji (1104-1106)","Kashō (1106-1108)","Tennin (1108-1110)","Ten-ei (1110-1113)","Eikyū (1113-1118)","Gen-ei (1118-1120)","Hoan (1120-1124)","Tenji (1124-1126)","Daiji (1126-1131)","Tenshō (1131-1132)","Chōshō (1132-1135)","Hoen (1135-1141)","Eiji (1141-1142)","Kōji (1142-1144)","Tenyō (1144-1145)","Kyūan (1145-1151)","Ninpei (1151-1154)","Kyūju (1154-1156)","Hogen (1156-1159)","Heiji (1159-1160)","Eiryaku (1160-1161)","Ōho (1161-1163)","Chōkan (1163-1165)","Eiman (1165-1166)","Nin-an (1166-1169)","Kaō (1169-1171)","Shōan (1171-1175)","Angen (1175-1177)","Jishō (1177-1181)","Yōwa (1181-1182)","Juei (1182-1184)","Genryuku (1184-1185)","Bunji (1185-1190)","Kenkyū (1190-1199)","Shōji (1199-1201)","Kennin (1201-1204)","Genkyū (1204-1206)","Ken-ei (1206-1207)","Shōgen (1207-1211)","Kenryaku (1211-1213)","Kenpō (1213-1219)","Shōkyū (1219-1222)","Jōō (1222-1224)","Gennin (1224-1225)","Karoku (1225-1227)","Antei (1227-1229)","Kanki (1229-1232)","Jōei (1232-1233)","Tempuku (1233-1234)","Bunryaku (1234-1235)","Katei (1235-1238)","Ryakunin (1238-1239)","En-ō (1239-1240)","Ninji (1240-1243)","Kangen (1243-1247)","Hōji (1247-1249)","Kenchō (1249-1256)","Kōgen (1256-1257)","Shōka (1257-1259)","Shōgen (1259-1260)","Bun-ō (1260-1261)","Kōchō (1261-1264)","Bun-ei (1264-1275)","Kenji (1275-1278)","Kōan (1278-1288)","Shōō (1288-1293)","Einin (1293-1299)","Shōan (1299-1302)","Kengen (1302-1303)","Kagen (1303-1306)","Tokuji (1306-1308)","Enkei (1308-1311)","Ōchō (1311-1312)","Shōwa (1312-1317)","Bunpō (1317-1319)","Genō (1319-1321)","Genkyō (1321-1324)","Shōchū (1324-1326)","Kareki (1326-1329)","Gentoku (1329-1331)","Genkō (1331-1334)","Kemmu (1334-1336)","Engen (1336-1340)","Kōkoku (1340-1346)","Shōhei (1346-1370)","Kentoku (1370-1372)","Bunchũ (1372-1375)","Tenju (1375-1379)","Kōryaku (1379-1381)","Kōwa (1381-1384)","Genchũ (1384-1392)","Meitoku (1384-1387)","Kakei (1387-1389)","Kōō (1389-1390)","Meitoku (1390-1394)","Ōei (1394-1428)","Shōchō (1428-1429)","Eikyō (1429-1441)","Kakitsu (1441-1444)","Bun-an (1444-1449)","Hōtoku (1449-1452)","Kyōtoku (1452-1455)","Kōshō (1455-1457)","Chōroku (1457-1460)","Kanshō (1460-1466)","Bunshō (1466-1467)","Ōnin (1467-1469)","Bunmei (1469-1487)","Chōkyō (1487-1489)","Entoku (1489-1492)","Meiō (1492-1501)","Bunki (1501-1504)","Eishō (1504-1521)","Taiei (1521-1528)","Kyōroku (1528-1532)","Tenmon (1532-1555)","Kōji (1555-1558)","Eiroku (1558-1570)","Genki (1570-1573)","Tenshō (1573-1592)","Bunroku (1592-1596)","Keichō (1596-1615)","Genwa (1615-1624)","Kan-ei (1624-1644)","Shōho (1644-1648)","Keian (1648-1652)","Shōō (1652-1655)","Meiryaku (1655-1658)","Manji (1658-1661)","Kanbun (1661-1673)","Enpō (1673-1681)","Tenwa (1681-1684)","Jōkyō (1684-1688)","Genroku (1688-1704)","Hōei (1704-1711)","Shōtoku (1711-1716)","Kyōhō (1716-1736)","Genbun (1736-1741)","Kanpō (1741-1744)","Enkyō (1744-1748)","Kan-en (1748-1751)","Hōryaku (1751-1764)","Meiwa (1764-1772)","An-ei (1772-1781)","Tenmei (1781-1789)","Kansei (1789-1801)","Kyōwa (1801-1804)","Bunka (1804-1818)","Bunsei (1818-1830)","Tenpō (1830-1844)","Kōka (1844-1848)","Kaei (1848-1854)","Ansei (1854-1860)","Man-en (1860-1861)","Bunkyū (1861-1864)","Genji (1864-1865)","Keiō (1865-1868)","M","T","S","H"],"short":["Taika (645-650)","Hakuchi (650-671)","Hakuhō (672-686)","Shuchō (686-701)","Taihō (701-704)","Keiun (704-708)","Wadō (708-715)","Reiki (715-717)","Yōrō (717-724)","Jinki (724-729)","Tempyō (729-749)","Tempyō-kampō (749-749)","Tempyō-shōhō (749-757)","Tempyō-hōji (757-765)","Temphō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770-780)","Ten-ō (781-782)","Enryaku (782-806)","Daidō (806-810)","Kōnin (810-824)","Tenchō (824-834)","Jōwa (834-848)","Kajō (848-851)","Ninju (851-854)","Saiko (854-857)","Tennan (857-859)","Jōgan (859-877)","Genkei (877-885)","Ninna (885-889)","Kampyō (889-898)","Shōtai (898-901)","Engi (901-923)","Enchō (923-931)","Shōhei (931-938)","Tengyō (938-947)","Tenryaku (947-957)","Tentoku (957-961)","Ōwa (961-964)","Kōhō (964-968)","Anna (968-970)","Tenroku (970-973)","Ten-en (973-976)","Jōgen (976-978)","Tengen (978-983)","Eikan (983-985)","Kanna (985-987)","Ei-en (987-989)","Eiso (989-990)","Shōryaku (990-995)","Chōtoku (995-999)","Chōhō (999-1004)","Kankō (1004-1012)","Chōwa (1012-1017)","Kannin (1017-1021)","Jian (1021-1024)","Manju (1024-1028)","Chōgen (1028-1037)","Chōryaku (1037-1040)","Chōkyū (1040-1044)","Kantoku (1044-1046)","Eishō (1046-1053)","Tengi (1053-1058)","Kōhei (1058-1065)","Jiryaku (1065-1069)","Enkyū (1069-1074)","Shōho (1074-1077)","Shōryaku (1077-1081)","Eiho (1081-1084)","Ōtoku (1084-1087)","Kanji (1087-1094)","Kaho (1094-1096)","Eichō (1096-1097)","Shōtoku (1097-1099)","Kōwa (1099-1104)","Chōji (1104-1106)","Kashō (1106-1108)","Tennin (1108-1110)","Ten-ei (1110-1113)","Eikyū (1113-1118)","Gen-ei (1118-1120)","Hoan (1120-1124)","Tenji (1124-1126)","Daiji (1126-1131)","Tenshō (1131-1132)","Chōshō (1132-1135)","Hoen (1135-1141)","Eiji (1141-1142)","Kōji (1142-1144)","Tenyō (1144-1145)","Kyūan (1145-1151)","Ninpei (1151-1154)","Kyūju (1154-1156)","Hogen (1156-1159)","Heiji (1159-1160)","Eiryaku (1160-1161)","Ōho (1161-1163)","Chōkan (1163-1165)","Eiman (1165-1166)","Nin-an (1166-1169)","Kaō (1169-1171)","Shōan (1171-1175)","Angen (1175-1177)","Jishō (1177-1181)","Yōwa (1181-1182)","Juei (1182-1184)","Genryuku (1184-1185)","Bunji (1185-1190)","Kenkyū (1190-1199)","Shōji (1199-1201)","Kennin (1201-1204)","Genkyū (1204-1206)","Ken-ei (1206-1207)","Shōgen (1207-1211)","Kenryaku (1211-1213)","Kenpō (1213-1219)","Shōkyū (1219-1222)","Jōō (1222-1224)","Gennin (1224-1225)","Karoku (1225-1227)","Antei (1227-1229)","Kanki (1229-1232)","Jōei (1232-1233)","Tempuku (1233-1234)","Bunryaku (1234-1235)","Katei (1235-1238)","Ryakunin (1238-1239)","En-ō (1239-1240)","Ninji (1240-1243)","Kangen (1243-1247)","Hōji (1247-1249)","Kenchō (1249-1256)","Kōgen (1256-1257)","Shōka (1257-1259)","Shōgen (1259-1260)","Bun-ō (1260-1261)","Kōchō (1261-1264)","Bun-ei (1264-1275)","Kenji (1275-1278)","Kōan (1278-1288)","Shōō (1288-1293)","Einin (1293-1299)","Shōan (1299-1302)","Kengen (1302-1303)","Kagen (1303-1306)","Tokuji (1306-1308)","Enkei (1308-1311)","Ōchō (1311-1312)","Shōwa (1312-1317)","Bunpō (1317-1319)","Genō (1319-1321)","Genkyō (1321-1324)","Shōchū (1324-1326)","Kareki (1326-1329)","Gentoku (1329-1331)","Genkō (1331-1334)","Kemmu (1334-1336)","Engen (1336-1340)","Kōkoku (1340-1346)","Shōhei (1346-1370)","Kentoku (1370-1372)","Bunchū (1372-1375)","Tenju (1375-1379)","Kōryaku (1379-1381)","Kōwa (1381-1384)","Genchū (1384-1392)","Meitoku (1384-1387)","Kakei (1387-1389)","Kōō (1389-1390)","Meitoku (1390-1394)","Ōei (1394-1428)","Shōchō (1428-1429)","Eikyō (1429-1441)","Kakitsu (1441-1444)","Bun-an (1444-1449)","Hōtoku (1449-1452)","Kyōtoku (1452-1455)","Kōshō (1455-1457)","Chōroku (1457-1460)","Kanshō (1460-1466)","Bunshō (1466-1467)","Ōnin (1467-1469)","Bunmei (1469-1487)","Chōkyō (1487-1489)","Entoku (1489-1492)","Meiō (1492-1501)","Bunki (1501-1504)","Eishō (1504-1521)","Taiei (1521-1528)","Kyōroku (1528-1532)","Tenmon (1532-1555)","Kōji (1555-1558)","Eiroku (1558-1570)","Genki (1570-1573)","Tenshō (1573-1592)","Bunroku (1592-1596)","Keichō (1596-1615)","Genwa (1615-1624)","Kan-ei (1624-1644)","Shōho (1644-1648)","Keian (1648-1652)","Shōō (1652-1655)","Meiryaku (1655-1658)","Manji (1658-1661)","Kanbun (1661-1673)","Enpō (1673-1681)","Tenwa (1681-1684)","Jōkyō (1684-1688)","Genroku (1688-1704)","Hōei (1704-1711)","Shōtoku (1711-1716)","Kyōhō (1716-1736)","Genbun (1736-1741)","Kanpō (1741-1744)","Enkyō (1744-1748)","Kan-en (1748-1751)","Hōryaku (1751-1764)","Meiwa (1764-1772)","An-ei (1772-1781)","Tenmei (1781-1789)","Kansei (1789-1801)","Kyōwa (1801-1804)","Bunka (1804-1818)","Bunsei (1818-1830)","Tenpō (1830-1844)","Kōka (1844-1848)","Kaei (1848-1854)","Ansei (1854-1860)","Man-en (1860-1861)","Bunkyū (1861-1864)","Genji (1864-1865)","Keiō (1865-1868)","Meiji","Taishō","Shōwa","Heisei"],"long":["Taika (645-650)","Hakuchi (650-671)","Hakuhō (672-686)","Shuchō (686-701)","Taihō (701-704)","Keiun (704-708)","Wadō (708-715)","Reiki (715-717)","Yōrō (717-724)","Jinki (724-729)","Tempyō (729-749)","Tempyō-kampō (749-749)","Tempyō-shōhō (749-757)","Tempyō-hōji (757-765)","Temphō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770-780)","Ten-ō (781-782)","Enryaku (782-806)","Daidō (806-810)","Kōnin (810-824)","Tenchō (824-834)","Jōwa (834-848)","Kajō (848-851)","Ninju (851-854)","Saiko (854-857)","Tennan (857-859)","Jōgan (859-877)","Genkei (877-885)","Ninna (885-889)","Kampyō (889-898)","Shōtai (898-901)","Engi (901-923)","Enchō (923-931)","Shōhei (931-938)","Tengyō (938-947)","Tenryaku (947-957)","Tentoku (957-961)","Ōwa (961-964)","Kōhō (964-968)","Anna (968-970)","Tenroku (970-973)","Ten-en (973-976)","Jōgen (976-978)","Tengen (978-983)","Eikan (983-985)","Kanna (985-987)","Ei-en (987-989)","Eiso (989-990)","Shōryaku (990-995)","Chōtoku (995-999)","Chōhō (999-1004)","Kankō (1004-1012)","Chōwa (1012-1017)","Kannin (1017-1021)","Jian (1021-1024)","Manju (1024-1028)","Chōgen (1028-1037)","Chōryaku (1037-1040)","Chōkyū (1040-1044)","Kantoku (1044-1046)","Eishō (1046-1053)","Tengi (1053-1058)","Kōhei (1058-1065)","Jiryaku (1065-1069)","Enkyū (1069-1074)","Shōho (1074-1077)","Shōryaku (1077-1081)","Eiho (1081-1084)","Ōtoku (1084-1087)","Kanji (1087-1094)","Kaho (1094-1096)","Eichō (1096-1097)","Shōtoku (1097-1099)","Kōwa (1099-1104)","Chōji (1104-1106)","Kashō (1106-1108)","Tennin (1108-1110)","Ten-ei (1110-1113)","Eikyū (1113-1118)","Gen-ei (1118-1120)","Hoan (1120-1124)","Tenji (1124-1126)","Daiji (1126-1131)","Tenshō (1131-1132)","Chōshō (1132-1135)","Hoen (1135-1141)","Eiji (1141-1142)","Kōji (1142-1144)","Tenyō (1144-1145)","Kyūan (1145-1151)","Ninpei (1151-1154)","Kyūju (1154-1156)","Hogen (1156-1159)","Heiji (1159-1160)","Eiryaku (1160-1161)","Ōho (1161-1163)","Chōkan (1163-1165)","Eiman (1165-1166)","Nin-an (1166-1169)","Kaō (1169-1171)","Shōan (1171-1175)","Angen (1175-1177)","Jishō (1177-1181)","Yōwa (1181-1182)","Juei (1182-1184)","Genryuku (1184-1185)","Bunji (1185-1190)","Kenkyū (1190-1199)","Shōji (1199-1201)","Kennin (1201-1204)","Genkyū (1204-1206)","Ken-ei (1206-1207)","Shōgen (1207-1211)","Kenryaku (1211-1213)","Kenpō (1213-1219)","Shōkyū (1219-1222)","Jōō (1222-1224)","Gennin (1224-1225)","Karoku (1225-1227)","Antei (1227-1229)","Kanki (1229-1232)","Jōei (1232-1233)","Tempuku (1233-1234)","Bunryaku (1234-1235)","Katei (1235-1238)","Ryakunin (1238-1239)","En-ō (1239-1240)","Ninji (1240-1243)","Kangen (1243-1247)","Hōji (1247-1249)","Kenchō (1249-1256)","Kōgen (1256-1257)","Shōka (1257-1259)","Shōgen (1259-1260)","Bun-ō (1260-1261)","Kōchō (1261-1264)","Bun-ei (1264-1275)","Kenji (1275-1278)","Kōan (1278-1288)","Shōō (1288-1293)","Einin (1293-1299)","Shōan (1299-1302)","Kengen (1302-1303)","Kagen (1303-1306)","Tokuji (1306-1308)","Enkei (1308-1311)","Ōchō (1311-1312)","Shōwa (1312-1317)","Bunpō (1317-1319)","Genō (1319-1321)","Genkyō (1321-1324)","Shōchū (1324-1326)","Kareki (1326-1329)","Gentoku (1329-1331)","Genkō (1331-1334)","Kemmu (1334-1336)","Engen (1336-1340)","Kōkoku (1340-1346)","Shōhei (1346-1370)","Kentoku (1370-1372)","Bunchū (1372-1375)","Tenju (1375-1379)","Kōryaku (1379-1381)","Kōwa (1381-1384)","Genchū (1384-1392)","Meitoku (1384-1387)","Kakei (1387-1389)","Kōō (1389-1390)","Meitoku (1390-1394)","Ōei (1394-1428)","Shōchō (1428-1429)","Eikyō (1429-1441)","Kakitsu (1441-1444)","Bun-an (1444-1449)","Hōtoku (1449-1452)","Kyōtoku (1452-1455)","Kōshō (1455-1457)","Chōroku (1457-1460)","Kanshō (1460-1466)","Bunshō (1466-1467)","Ōnin (1467-1469)","Bunmei (1469-1487)","Chōkyō (1487-1489)","Entoku (1489-1492)","Meiō (1492-1501)","Bunki (1501-1504)","Eishō (1504-1521)","Taiei (1521-1528)","Kyōroku (1528-1532)","Tenmon (1532-1555)","Kōji (1555-1558)","Eiroku (1558-1570)","Genki (1570-1573)","Tenshō (1573-1592)","Bunroku (1592-1596)","Keichō (1596-1615)","Genwa (1615-1624)","Kan-ei (1624-1644)","Shōho (1644-1648)","Keian (1648-1652)","Shōō (1652-1655)","Meiryaku (1655-1658)","Manji (1658-1661)","Kanbun (1661-1673)","Enpō (1673-1681)","Tenwa (1681-1684)","Jōkyō (1684-1688)","Genroku (1688-1704)","Hōei (1704-1711)","Shōtoku (1711-1716)","Kyōhō (1716-1736)","Genbun (1736-1741)","Kanpō (1741-1744)","Enkyō (1744-1748)","Kan-en (1748-1751)","Hōryaku (1751-1764)","Meiwa (1764-1772)","An-ei (1772-1781)","Tenmei (1781-1789)","Kansei (1789-1801)","Kyōwa (1801-1804)","Bunka (1804-1818)","Bunsei (1818-1830)","Tenpō (1830-1844)","Kōka (1844-1848)","Kaei (1848-1854)","Ansei (1854-1860)","Man-en (1860-1861)","Bunkyū (1861-1864)","Genji (1864-1865)","Keiō (1865-1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],"short":["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],"long":["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AP"],"short":["AP"],"long":["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],"short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"long":["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"long":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Before R.O.C.","Minguo"],"short":["Before R.O.C.","Minguo"],"long":["Before R.O.C.","Minguo"]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"-{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"-{currency}{number}"},percent:{positivePattern:"{number}%",negativePattern:"-{number}%"}},symbols:{latn:{decimal:".",group:",",nan:"NaN",percent:"%",infinity:"∞"}},currencies:{AUD:"A$",BRL:"R$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",TWD:"NT$",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}}}); \ No newline at end of file diff --git a/programs/full_web_node/web/app.css b/programs/full_web_node/web/app.css deleted file mode 100644 index e6e70fdf..00000000 --- a/programs/full_web_node/web/app.css +++ /dev/null @@ -1,2 +0,0 @@ -body,p{font-weight:400}body,sub,sup{position:relative}.action-sheet ul,.action-sheet.primary ul{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;list-style-type:none}.block-list .with-dropdown select,select{-moz-appearance:none;-webkit-appearance:none}h1,h2,h3,h4,h5,h6,p{text-rendering:optimizeLegibility}dfn,em,i,p aside{font-style:italic}.action-sheet ul,.action-sheet.dark ul,.action-sheet.primary ul,.block-list,.block-list ul,.button-group,.inline-list,.menu-bar,.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-6,.small-up-7,.small-up-8,.small-up-9,ul.no-bullet,ul.no-bullet li ol,ul.no-bullet li ul{list-style-type:none}.clearfix:after,hr{clear:both}@font-face{font-family:Roboto-Bold;src:url("/fonts/Roboto-Bold.eot");src:url("/fonts/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("/fonts/Roboto-Bold.woff") format("woff"),url("/fonts/Roboto-Bold.ttf") format("truetype"),url("/fonts/Roboto-Bold.svg#Roboto-Bold") format("svg");font-weight:300;font-style:normal}@font-face{font-family:Roboto-Light;src:url("/fonts/Roboto-Light.eot");src:url("/fonts/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("/fonts/Roboto-Light.woff") format("woff"),url("/fonts/Roboto-Light.ttf") format("truetype"),url("/fonts/Roboto-Light.svg#Roboto-Light") format("svg");font-weight:300;font-style:normal}@font-face{font-family:Roboto-Regular;src:url("/fonts/Roboto-Regular.eot");src:url("/fonts/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("/fonts/Roboto-Regular.woff") format("woff"),url("/fonts/Roboto-Regular.ttf") format("truetype"),url("/fonts/Roboto-Regular.svg#Roboto-Regular") format("svg");font-weight:400;font-style:normal}@font-face{font-family:RobotoCondensed-Regular;src:url("/fonts/RobotoCondensed-Regular.eot");src:url("/fonts/RobotoCondensed-Regular.eot?#iefix") format("embedded-opentype"),url("/fonts/RobotoCondensed-Regular.woff") format("woff"),url("/fonts/RobotoCondensed-Regular.ttf") format("truetype"),url("/fonts/RobotoCondensed-Regular.svg#RobotoCondensed-Regular") format("svg");font-weight:400;font-style:normal}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0;max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block;vertical-align:middle}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}table{border-collapse:collapse;border-spacing:0}meta.foundation-version{font-family:"1.1.0"}meta.foundation-mq{font-family:"small=0&medium=40rem&large=75rem&xlarge=90rem&xxlarge=120rem"}body,h1,h2,h3,h4,h5,h6{font-family:Roboto-Regular,Helvetica,Arial,sans-serif}dl,ol,p,ul{font-family:inherit}body,html{height:100%;font-size:100%}*,:after,:before{box-sizing:inherit}body{background:#fff;padding:0;margin:0;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[ui-sref],[zf-close],[zf-open],[zf-toggle],a{cursor:pointer}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object{max-width:none!important}.padding{padding:1rem}.iconic{width:1rem;height:1rem;vertical-align:middle}a>.iconic{margin-top:-2px;margin-right:.25rem}.iconic *,.iconic .iconic-property-accent,.iconic-color-primary *,.iconic-color-primary .iconic-property-accent,a>.iconic *,a>.iconic .iconic-property-accent{fill:#3f3f3f;stroke:#3f3f3f}.iconic-color-success *,.iconic-color-success .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.iconic-color-warning *,.iconic-color-warning .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.iconic-color-alert *,.iconic-color-alert .iconic-property-accent{fill:#F04124;stroke:#F04124}.iconic-color-dark *,.iconic-color-dark .iconic-property-accent{fill:#232323;stroke:#232323}.iconic-color-secondary *,.iconic-color-secondary .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.action-sheet-container{position:relative;display:inline-block}.action-sheet-container .button{margin-left:0;margin-right:0}.action-sheet{position:fixed;left:0;z-index:1000;padding:1rem;background:#fff;text-align:center;-webkit-transition-property:-webkit-transform opacity;transition-property:transform opacity;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;box-shadow:0 -3px 10px rgba(0,0,0,.25);bottom:0;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.action-sheet.is-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.action-sheet ul{margin:0 -1rem -1rem;user-select:none}.action-sheet ul:first-child{margin-top:-1rem}.action-sheet ul:first-child li:first-child{border-top:0}.action-sheet ul a{display:block;padding:.8rem;line-height:1;color:#000;border-top:1px solid #ccc}.action-sheet ul a:hover{color:#000;background:#f2f2f2}.action-sheet ul .alert>a{color:#F04124}.action-sheet ul .disabled>a{pointer-events:none;color:#999}@media only screen and (min-width:40em){.action-sheet,.action-sheet.top{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.25)}.action-sheet.top::after,.action-sheet.top::before,.action-sheet::after,.action-sheet::before{content:'';position:absolute;left:50%;display:block;height:0;border-left:10px solid transparent;border-right:10px solid transparent;margin-left:-10px}.action-sheet{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:auto;bottom:0;-webkit-transform:translateX(-50%) translateY(110%);-ms-transform:translateX(-50%) translateY(110%);transform:translateX(-50%) translateY(110%)}.action-sheet.is-active{opacity:1;pointer-events:auto;-webkit-transform:translateX(-50%) translateY(100%);-ms-transform:translateX(-50%) translateY(100%);transform:translateX(-50%) translateY(100%)}.action-sheet::after,.action-sheet::before{width:0;top:-10px;bottom:auto;border-top:0;border-bottom:10px solid #fff}.action-sheet::before{top:-12px;border-bottom-color:rgba(0,0,0,.15)}.action-sheet.top{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:0;bottom:auto;-webkit-transform:translateX(-50%) translateY(-120%);-ms-transform:translateX(-50%) translateY(-120%);transform:translateX(-50%) translateY(-120%)}.action-sheet.top.is-active{opacity:1;pointer-events:auto;-webkit-transform:translateX(-50%) translateY(-110%);-ms-transform:translateX(-50%) translateY(-110%);transform:translateX(-50%) translateY(-110%)}.action-sheet.top::after,.action-sheet.top::before{width:0;top:auto;bottom:-10px;border-top:10px solid #fff;border-bottom:0}.action-sheet.top::before{bottom:-12px;border-top-color:rgba(0,0,0,.15)}}.card,.card.primary{box-shadow:0 1px 2px rgba(0,0,0,.2)}.action-sheet.primary{background:#3f3f3f;color:#fff;border:0}.action-sheet.primary::before{display:none}.action-sheet.primary::after,.action-sheet.primary::before{border-top-color:#3f3f3f}.action-sheet.primary.top::after,.action-sheet.primary.top::before{border-bottom-color:#3f3f3f}.action-sheet.primary ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.dark ul,.block-list{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.action-sheet.primary ul:first-child{margin-top:-1rem}.action-sheet.primary ul:first-child li:first-child{border-top:0}.action-sheet.primary ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #525252}.action-sheet.primary ul a:hover{color:#fff;background:#494949}.action-sheet.primary ul .alert>a{color:#F04124}.action-sheet.primary ul .disabled>a{pointer-events:none;color:#999}.action-sheet.dark{background:#232323;color:#fff;border:0}.action-sheet.dark::before{display:none}.action-sheet.dark::after,.action-sheet.dark::before{border-top-color:#232323}.action-sheet.dark.top::after,.action-sheet.dark.top::before{border-bottom-color:#232323}.action-sheet.dark ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.dark ul:first-child{margin-top:-1rem}.action-sheet.dark ul:first-child li:first-child{border-top:0}.action-sheet.dark ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #393939}.action-sheet.dark ul a:hover{color:#fff;background:#2e2e2e}.action-sheet.dark ul .alert>a{color:#F04124}.action-sheet.dark ul .disabled>a{pointer-events:none;color:#999}.block-list ul{margin-left:0}.block-list{margin-bottom:1rem;line-height:1;user-select:none;font-size:1rem;margin-left:-1rem;margin-right:-1rem}.block-list input[type=search],.block-list input[type=text],.block-list input[type=password],.block-list input[type=date],.block-list input[type=datetime],.block-list input[type=datetime-local],.block-list input[type=month],.block-list input[type=week],.block-list input[type=email],.block-list input[type=tel],.block-list input[type=time],.block-list input[type=url],.block-list input[type=color],.block-list input[type=number],.block-list textarea{overflow:visible;box-sizing:border-box;margin:0;border:0;height:2.6rem;padding:.6rem 1rem;color:inherit;font-size:1rem;-webkit-font-smoothing:antialiased;vertical-align:middle}.block-list input[type=search]:focus,.block-list input[type=search]:hover,.block-list input[type=text]:focus,.block-list input[type=text]:hover,.block-list input[type=password]:focus,.block-list input[type=password]:hover,.block-list input[type=date]:focus,.block-list input[type=date]:hover,.block-list input[type=datetime]:focus,.block-list input[type=datetime]:hover,.block-list input[type=datetime-local]:focus,.block-list input[type=datetime-local]:hover,.block-list input[type=month]:focus,.block-list input[type=month]:hover,.block-list input[type=week]:focus,.block-list input[type=week]:hover,.block-list input[type=email]:focus,.block-list input[type=email]:hover,.block-list input[type=tel]:focus,.block-list input[type=tel]:hover,.block-list input[type=time]:focus,.block-list input[type=time]:hover,.block-list input[type=url]:focus,.block-list input[type=url]:hover,.block-list input[type=color]:focus,.block-list input[type=color]:hover,.block-list input[type=number]:focus,.block-list input[type=number]:hover,.block-list textarea:focus,.block-list textarea:hover{border:0}.block-list li>input[type=checkbox],.block-list li>input[type=radio]{position:absolute;left:-9999px}.block-list li>input[type=checkbox]+label,.block-list li>input[type=radio]+label{display:block;font-size:1rem;margin:0}.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url('data:image/svg+xml;utf8,');content:'';background-size:100% 100%;width:1.5em;height:1.5em;color:#3f3f3f;float:right;pointer-events:none;margin-top:-.25em}@media screen and (min-width:0 \0){.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNrMl0FugzAQRY3TRZeoFyhVL0BOkGTXJezaHZwguUnECaCrdFd6gqQnCN11Uyk5QekNOlONJWMVGMCgfGlkEIY3HnsG2xFM3d96PjQB2AJsWdPtAPYOln+dTwXnuw4DHEGzBvNFN6EDCTiS9XIAwB40acNoucKoxODIie0AwAOCu8KOSnIiNx/MakK+A7sW9oTferxx3fP3T1nURoBG/irGVahHwjHm/Ggx7E3TMVdrQmoP0gngghhpZQ3QvG/EdPLUelARWI8Aycjq9Md0qMIdbcNhjmOKLoY7quk3l1Rebeqg4AwFkmq7LWGOh1pmNY0etZAWSq0OX8HoS4JvWuCopbSY26EGR/CW86K0BF+pwkLwlPuyHJhOCl5oe4ZtF++vOqST+GdOYwO+71pN2VNAjmQGPCe42weuHDg0PI8olUwnYrXTGQJH9gxq8l1LKvrQx4O6/YY32Kp/ugb3ey7gZ4xAzuhYiYTxB/UHZFAuaREVXZ2g6yFlvEC2yoKEmbsRZYNgVLk2JeaOaG+xLHN+WCszDWMqLGOrJFa1DlApjSdwoHJGqGzLIb0+cas0wh5Bh780ngswx8GJD7h8sHg2wLA/mfDLPZpdxOF0quP5rwADAAFIzSRvu1m5AAAAAElFTkSuQmCC")}}.block-list .with-dropdown{color:inherit}.block-list .with-dropdown select{outline:0;background:0;border:0;height:auto;padding:.8rem 1rem;margin:0;font-size:1em;line-height:1;color:inherit}.block-list .switch{position:absolute;top:50%;right:1rem;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.block-list.with-icons li>a,.block-list.with-icons li>label,.block-list.with-icons li>span{padding-left:2.8rem}.block-list.with-icons li .iconic,.block-list.with-icons li img{position:absolute;top:.26rem;left:.26rem;width:2.08rem;height:2.08rem;border-radius:8px;pointer-events:none}.block-list header{margin-top:1em;font-weight:700;margin-bottom:.5em;margin-left:1rem;font-size:.8em;cursor:default;text-transform:uppercase}.block-list li{position:relative}.block-list li>a,.block-list li>label,.block-list li>span{display:block;padding:.8rem 1rem;color:#000;line-height:1}.block-list li>span{cursor:default}.block-list li>a,.block-list li>label{cursor:pointer}.block-list li select:hover,.block-list li>a:hover,.block-list li>label:hover{background:#f4f4f4}.block-list li.caution>a,.block-list li.caution>a:hover{color:#F04124}.block-list li.disabled>a{cursor:default}.block-list li.disabled>a,.block-list li.disabled>a:hover{color:#999}.block-list li.disabled>a:hover{background:0 0}.block-list li.with-chevron::after{content:'\203A';display:block;position:absolute;right:1rem;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-weight:700;color:#666;font-size:2em}.block-list li.with-chevron .block-list-label{padding-right:1.5rem}.block-list li .block-list-label{display:inline-block;float:right;padding:0;color:#999;pointer-events:none}.block-list li .block-list-label.left{margin-left:.8rem;float:none}.button,.button-group>li>a,.button-group>li>button,.button-group>li>label{display:inline-block;border:0;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;-webkit-font-smoothing:antialiased;-webkit-transition:background .25s ease-out;transition:background .25s ease-out;vertical-align:middle;padding:.85em 1em;margin:0 1rem 1rem 0;font-size:.9rem;border-radius:0}.button-group li.disabled>a,.button-group li.disabled>button,.button-group li.disabled>label,.button.disabled{opacity:.5;cursor:default;pointer-events:none}.button{font-size:.9rem;display:inline-block;width:auto;background:#3f3f3f;color:#fff}.button .iconic,.button.large .iconic,.button.small .iconic,.button.tiny .iconic{width:1em;margin-right:.25em;margin-top:-2px;height:1em;vertical-align:middle}.button:focus,.button:hover{background:#363636;color:#fff}.button .iconic *,.button .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.tiny{font-size:.63rem}.button.small{font-size:.72rem}.button.large{font-size:1.17rem}.button.expand{display:block;width:100%;margin-left:0;margin-right:0}.button.secondary{background:#f1f1f1}.button.secondary:focus,.button.secondary:hover{background:#cdcdcd}.button.secondary .iconic *,.button.secondary .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.alert .iconic *,.button.alert .iconic .iconic-property-accent,.button.success .iconic *,.button.success .iconic .iconic-property-accent,.button.warning .iconic *,.button.warning .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.success{background:#43AC6A;color:#fff}.button.success:focus,.button.success:hover{background:#39925a;color:#fff}.button.warning{background:#F08A24;color:#fff}.button.warning:focus,.button.warning:hover{background:#dc750f;color:#fff}.button.alert{background:#F04124;color:#fff}.button.alert:focus,.button.alert:hover{background:#dc2c0f;color:#fff}.button.info{background:#A0D3E8;color:#000}.button.info:focus,.button.info:hover{background:#71bddd;color:#000}.button.info .iconic *,.button.info .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.dark{background:#232323;color:#fff}.button.dark:focus,.button.dark:hover{background:#1e1e1e;color:#fff}.button.dark .iconic *,.button.dark .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.hollow{border:1px solid #3f3f3f;background:0 0;color:#3f3f3f}.button.hollow:focus,.button.hollow:hover{border-color:#6f6f6f;background:0 0;color:#6f6f6f}.button.hollow .iconic *,.button.hollow .iconic .iconic-property-accent{fill:#3f3f3f;stroke:#3f3f3f}.button.hollow:hover .iconic *,.button.hollow:hover .iconic .iconic-property-accent{fill:#6f6f6f;stroke:#6f6f6f}.button.hollow.secondary{border:1px solid #f1f1f1;background:0 0;color:#f1f1f1}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#f4f4f4;background:0 0;color:#f4f4f4}.button.hollow.secondary .iconic *,.button.hollow.secondary .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button.hollow.secondary:hover .iconic *,.button.hollow.secondary:hover .iconic .iconic-property-accent{fill:#f4f4f4;stroke:#f4f4f4}.button.hollow.success{border:1px solid #43AC6A;background:0 0;color:#43AC6A}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#6dc68e;background:0 0;color:#6dc68e}.button.hollow.success .iconic *,.button.hollow.success .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button.hollow.success:hover .iconic *,.button.hollow.success:hover .iconic .iconic-property-accent{fill:#6dc68e;stroke:#6dc68e}.button.hollow.warning{border:1px solid #F08A24;background:0 0;color:#F08A24}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#f4a75b;background:0 0;color:#f4a75b}.button.hollow.warning .iconic *,.button.hollow.warning .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button.hollow.warning:hover .iconic *,.button.hollow.warning:hover .iconic .iconic-property-accent{fill:#f4a75b;stroke:#f4a75b}.button.hollow.alert{border:1px solid #F04124;background:0 0;color:#F04124}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#f4715b;background:0 0;color:#f4715b}.button.hollow.alert .iconic *,.button.hollow.alert .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button.hollow.alert:hover .iconic *,.button.hollow.alert:hover .iconic .iconic-property-accent{fill:#f4715b;stroke:#f4715b}.button.hollow.info{border:1px solid #A0D3E8;background:0 0;color:#A0D3E8}.button.hollow.info:focus,.button.hollow.info:hover{border-color:#b8deee;background:0 0;color:#b8deee}.button.hollow.info .iconic *,.button.hollow.info .iconic .iconic-property-accent{fill:#A0D3E8;stroke:#A0D3E8}.button.hollow.info:hover .iconic *,.button.hollow.info:hover .iconic .iconic-property-accent{fill:#b8deee;stroke:#b8deee}.button.hollow.dark{border:1px solid #232323;background:0 0;color:#232323}.button.hollow.dark:focus,.button.hollow.dark:hover{border-color:#5a5a5a;background:0 0;color:#5a5a5a}.button.hollow.dark .iconic *,.button.hollow.dark .iconic .iconic-property-accent{fill:#232323;stroke:#232323}.button.hollow.dark:hover .iconic *,.button.hollow.dark:hover .iconic .iconic-property-accent{fill:#5a5a5a;stroke:#5a5a5a}.button-group{margin:0 0 1rem;overflow:hidden;font-size:.9rem}.button-group>li>a,.button-group>li>button,.button-group>li>label{border-radius:0;font-size:inherit;display:block;margin:0}.button-group>li>input+label{margin-left:0}.button-group>li:not(:last-child)>a,.button-group>li:not(:last-child)>button,.button-group>li:not(:last-child)>label{border-right:1px solid #2f2f2f}.button-group .iconic{width:1em;height:1em;vertical-align:middle;margin-right:.25em;margin-top:-2px}.button-group.segmented,.button-group.segmented.alert,.button-group.segmented.secondary,.button-group.segmented.success,.button-group.segmented.warning{border:1px solid #3f3f3f;-webkit-transition-property:background color;transition-property:background color}.button-group.segmented>li>input[type=radio]{position:absolute;left:-9999px}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label,.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label,.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label,.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label,.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{margin-right:0;background:0 0}.button-group{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:0}.button-group>li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group>li>a,.button-group>li>button,.button-group>li>label{background:#3f3f3f;color:#fff;border-color:#363636}.button-group>li>a:focus,.button-group>li>a:hover,.button-group>li>button:focus,.button-group>li>button:hover,.button-group>li>label:focus,.button-group>li>label:hover{background:#363636;color:#fff}.button-group>li>a .iconic *,.button-group>li>a .iconic .iconic-property-accent,.button-group>li>button .iconic *,.button-group>li>button .iconic .iconic-property-accent,.button-group>li>label .iconic *,.button-group>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.is-active>a,.button-group>li.is-active>button,.button-group>li.is-active>label{background:#363636}.button-group.secondary>li>a,.button-group.secondary>li>button,.button-group.secondary>li>label{background:#f1f1f1;color:#000;border-color:#cdcdcd}.button-group.secondary>li>a:focus,.button-group.secondary>li>a:hover,.button-group.secondary>li>button:focus,.button-group.secondary>li>button:hover,.button-group.secondary>li>label:focus,.button-group.secondary>li>label:hover{background:#cdcdcd;color:#000}.button-group.secondary>li>a .iconic *,.button-group.secondary>li>a .iconic .iconic-property-accent,.button-group.secondary>li>button .iconic *,.button-group.secondary>li>button .iconic .iconic-property-accent,.button-group.secondary>li>label .iconic *,.button-group.secondary>li>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.alert>li>a .iconic *,.button-group.alert>li>a .iconic .iconic-property-accent,.button-group.alert>li>button .iconic *,.button-group.alert>li>button .iconic .iconic-property-accent,.button-group.alert>li>label .iconic *,.button-group.alert>li>label .iconic .iconic-property-accent,.button-group.success>li>a .iconic *,.button-group.success>li>a .iconic .iconic-property-accent,.button-group.success>li>button .iconic *,.button-group.success>li>button .iconic .iconic-property-accent,.button-group.success>li>label .iconic *,.button-group.success>li>label .iconic .iconic-property-accent,.button-group.warning>li>a .iconic *,.button-group.warning>li>a .iconic .iconic-property-accent,.button-group.warning>li>button .iconic *,.button-group.warning>li>button .iconic .iconic-property-accent,.button-group.warning>li>label .iconic *,.button-group.warning>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.secondary>li.is-active>a,.button-group.secondary>li.is-active>button,.button-group.secondary>li.is-active>label{background:#cdcdcd}.button-group.success>li>a,.button-group.success>li>button,.button-group.success>li>label{background:#43AC6A;color:#fff;border-color:#39925a}.button-group.success>li>a:focus,.button-group.success>li>a:hover,.button-group.success>li>button:focus,.button-group.success>li>button:hover,.button-group.success>li>label:focus,.button-group.success>li>label:hover{background:#39925a;color:#fff}.button-group.success>li.is-active>a,.button-group.success>li.is-active>button,.button-group.success>li.is-active>label{background:#39925a}.button-group.warning>li>a,.button-group.warning>li>button,.button-group.warning>li>label{background:#F08A24;color:#fff;border-color:#dc750f}.button-group.warning>li>a:focus,.button-group.warning>li>a:hover,.button-group.warning>li>button:focus,.button-group.warning>li>button:hover,.button-group.warning>li>label:focus,.button-group.warning>li>label:hover{background:#dc750f;color:#fff}.button-group.warning>li.is-active>a,.button-group.warning>li.is-active>button,.button-group.warning>li.is-active>label{background:#dc750f}.button-group.alert>li>a,.button-group.alert>li>button,.button-group.alert>li>label{background:#F04124;color:#fff;border-color:#dc2c0f}.button-group.alert>li>a:focus,.button-group.alert>li>a:hover,.button-group.alert>li>button:focus,.button-group.alert>li>button:hover,.button-group.alert>li>label:focus,.button-group.alert>li>label:hover{background:#dc2c0f;color:#fff}.button-group.alert>li.is-active>a,.button-group.alert>li.is-active>button,.button-group.alert>li.is-active>label{background:#dc2c0f}.button-group>li.secondary>a,.button-group>li.secondary>button,.button-group>li.secondary>label{background:#f1f1f1;color:#000;border-color:#f1f1f1}.button-group>li.secondary>a:focus,.button-group>li.secondary>a:hover,.button-group>li.secondary>button:focus,.button-group>li.secondary>button:hover,.button-group>li.secondary>label:focus,.button-group>li.secondary>label:hover{background:#cdcdcd;color:#000;border-color:#b5b5b5}.button-group>li.secondary>a .iconic *,.button-group>li.secondary>a .iconic .iconic-property-accent,.button-group>li.secondary>button .iconic *,.button-group>li.secondary>button .iconic .iconic-property-accent,.button-group>li.secondary>label .iconic *,.button-group>li.secondary>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group>li.alert>a .iconic *,.button-group>li.alert>a .iconic .iconic-property-accent,.button-group>li.alert>button .iconic *,.button-group>li.alert>button .iconic .iconic-property-accent,.button-group>li.alert>label .iconic *,.button-group>li.alert>label .iconic .iconic-property-accent,.button-group>li.success>a .iconic *,.button-group>li.success>a .iconic .iconic-property-accent,.button-group>li.success>button .iconic *,.button-group>li.success>button .iconic .iconic-property-accent,.button-group>li.success>label .iconic *,.button-group>li.success>label .iconic .iconic-property-accent,.button-group>li.warning>a .iconic *,.button-group>li.warning>a .iconic .iconic-property-accent,.button-group>li.warning>button .iconic *,.button-group>li.warning>button .iconic .iconic-property-accent,.button-group>li.warning>label .iconic *,.button-group>li.warning>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.success>a,.button-group>li.success>button,.button-group>li.success>label{background:#43AC6A;color:#fff;border-color:#43AC6A}.button-group>li.success>a:focus,.button-group>li.success>a:hover,.button-group>li.success>button:focus,.button-group>li.success>button:hover,.button-group>li.success>label:focus,.button-group>li.success>label:hover{background:#39925a;color:#fff;border-color:#32814f}.button-group>li.warning>a,.button-group>li.warning>button,.button-group>li.warning>label{background:#F08A24;color:#fff;border-color:#F08A24}.button-group>li.warning>a:focus,.button-group>li.warning>a:hover,.button-group>li.warning>button:focus,.button-group>li.warning>button:hover,.button-group>li.warning>label:focus,.button-group>li.warning>label:hover{background:#dc750f;color:#fff;border-color:#c2680d}.button-group>li.alert>a,.button-group>li.alert>button,.button-group>li.alert>label{background:#F04124;color:#fff;border-color:#F04124}.button-group>li.alert>a:focus,.button-group>li.alert>a:hover,.button-group>li.alert>button:focus,.button-group>li.alert>button:hover,.button-group>li.alert>label:focus,.button-group>li.alert>label:hover{background:#dc2c0f;color:#fff;border-color:#c2270d}.button-group.segmented{border-color:#3f3f3f}.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{border-color:#3f3f3f;color:#3f3f3f}.button-group.segmented>li>a:hover,.button-group.segmented>li>button:hover,.button-group.segmented>li>label:hover{background:rgba(63,63,63,.25);color:#3f3f3f}.button-group.segmented>li>a .iconic *,.button-group.segmented>li>a .iconic .iconic-property-accent,.button-group.segmented>li>button .iconic *,.button-group.segmented>li>button .iconic .iconic-property-accent,.button-group.segmented>li>label .iconic *,.button-group.segmented>li>label .iconic .iconic-property-accent{fill:#3f3f3f;stroke:#3f3f3f}.button-group.segmented>li.is-active>a,.button-group.segmented>li.is-active>a:hover,.button-group.segmented>li>input:checked+label,.button-group.segmented>li>input:checked+label:hover{background:#3f3f3f;color:#fff}.button-group.segmented>li.is-active>a .iconic *,.button-group.segmented>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented>li>input:checked+label .iconic *,.button-group.segmented>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.secondary{border-color:#f1f1f1}.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label{border-color:#f1f1f1;color:#f1f1f1}.button-group.segmented.secondary>li>a:hover,.button-group.segmented.secondary>li>button:hover,.button-group.segmented.secondary>li>label:hover{background:rgba(241,241,241,.25);color:#f1f1f1}.button-group.segmented.secondary>li>a .iconic *,.button-group.segmented.secondary>li>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>button .iconic *,.button-group.segmented.secondary>li>button .iconic .iconic-property-accent,.button-group.segmented.secondary>li>label .iconic *,.button-group.segmented.secondary>li>label .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button-group.segmented.secondary>li.is-active>a,.button-group.segmented.secondary>li.is-active>a:hover,.button-group.segmented.secondary>li>input:checked+label,.button-group.segmented.secondary>li>input:checked+label:hover{background:#f1f1f1;color:#000}.button-group.segmented.secondary>li.is-active>a .iconic *,.button-group.segmented.secondary>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>input:checked+label .iconic *,.button-group.segmented.secondary>li>input:checked+label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.segmented.success{border-color:#43AC6A}.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label{border-color:#43AC6A;color:#43AC6A}.button-group.segmented.success>li>a:hover,.button-group.segmented.success>li>button:hover,.button-group.segmented.success>li>label:hover{background:rgba(67,172,106,.25);color:#43AC6A}.button-group.segmented.success>li>a .iconic *,.button-group.segmented.success>li>a .iconic .iconic-property-accent,.button-group.segmented.success>li>button .iconic *,.button-group.segmented.success>li>button .iconic .iconic-property-accent,.button-group.segmented.success>li>label .iconic *,.button-group.segmented.success>li>label .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button-group.segmented.success>li.is-active>a,.button-group.segmented.success>li.is-active>a:hover,.button-group.segmented.success>li>input:checked+label,.button-group.segmented.success>li>input:checked+label:hover{background:#43AC6A;color:#fff}.button-group.segmented.success>li.is-active>a .iconic *,.button-group.segmented.success>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.success>li>input:checked+label .iconic *,.button-group.segmented.success>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.warning{border-color:#F08A24}.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label{border-color:#F08A24;color:#F08A24}.button-group.segmented.warning>li>a:hover,.button-group.segmented.warning>li>button:hover,.button-group.segmented.warning>li>label:hover{background:rgba(240,138,36,.25);color:#F08A24}.button-group.segmented.warning>li>a .iconic *,.button-group.segmented.warning>li>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>button .iconic *,.button-group.segmented.warning>li>button .iconic .iconic-property-accent,.button-group.segmented.warning>li>label .iconic *,.button-group.segmented.warning>li>label .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button-group.segmented.warning>li.is-active>a,.button-group.segmented.warning>li.is-active>a:hover,.button-group.segmented.warning>li>input:checked+label,.button-group.segmented.warning>li>input:checked+label:hover{background:#F08A24;color:#fff}.button-group.segmented.warning>li.is-active>a .iconic *,.button-group.segmented.warning>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>input:checked+label .iconic *,.button-group.segmented.warning>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.alert{border-color:#F04124}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label{border-color:#F04124;color:#F04124}.button-group.segmented.alert>li>a:hover,.button-group.segmented.alert>li>button:hover,.button-group.segmented.alert>li>label:hover{background:rgba(240,65,36,.25);color:#F04124}.button-group.segmented.alert>li>a .iconic *,.button-group.segmented.alert>li>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>button .iconic *,.button-group.segmented.alert>li>button .iconic .iconic-property-accent,.button-group.segmented.alert>li>label .iconic *,.button-group.segmented.alert>li>label .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button-group.segmented.alert>li.is-active>a .iconic *,.button-group.segmented.alert>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>input:checked+label .iconic *,.button-group.segmented.alert>li>input:checked+label .iconic .iconic-property-accent,.menu-bar.dark .iconic *,.menu-bar.dark .iconic .iconic-property-accent,.menu-bar.primary .iconic *,.menu-bar.primary .iconic .iconic-property-accent,.menu-group.dark .menu-bar .iconic *,.menu-group.dark .menu-bar .iconic .iconic-property-accent,.menu-group.primary .menu-bar .iconic *,.menu-group.primary .menu-bar .iconic .iconic-property-accent,.title-bar.dark .iconic *,.title-bar.dark .iconic .iconic-property-accent,.title-bar.primary .iconic *,.title-bar.primary .iconic .iconic-property-accent{stroke:#fff;fill:#fff}.button-group.segmented.alert>li.is-active>a,.button-group.segmented.alert>li.is-active>a:hover,.button-group.segmented.alert>li>input:checked+label,.button-group.segmented.alert>li>input:checked+label:hover{background:#F04124;color:#fff}.button-group.tiny{font-size:.63rem}.button-group.small{font-size:.72rem}.button-group.large{font-size:1.17rem}.button-group.expand{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.button-group.expand>li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.button-group.expand>li>a,.button-group.expand>li>button,.button-group.expand>li>label{display:block;width:100%;margin-left:0;margin-right:0}.card{margin-bottom:.5rem;background:#fff;overflow:hidden}.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:inherit}.card ul{margin-bottom:0}.card img{width:100%}.card.primary{border:0;margin-bottom:.5rem;background:#3f3f3f;color:#fff;border-radius:4px;overflow:hidden}.card.primary h1,.card.primary h2,.card.primary h3,.card.primary h4,.card.primary h5,.card.primary h6{color:inherit}.card.primary ul{margin-bottom:0}.card.primary img{width:100%}.card.primary .card-divider{background:#4c4c4c;padding:1rem}.card.success{border:0;margin-bottom:.5rem;background:#43AC6A;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.alert,.card.warning{border:0;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.success h1,.card.success h2,.card.success h3,.card.success h4,.card.success h5,.card.success h6{color:inherit}.card.success ul{margin-bottom:0}.card.success img{width:100%}.card.success .card-divider{background:#4ab873;padding:1rem}.card.warning{margin-bottom:.5rem;background:#F08A24;color:#fff;border-radius:4px}.card.warning h1,.card.warning h2,.card.warning h3,.card.warning h4,.card.warning h5,.card.warning h6{color:inherit}.card.warning ul{margin-bottom:0}.card.warning img{width:100%}.card.warning .card-divider{background:#f19233;padding:1rem}.card.alert{margin-bottom:.5rem;background:#F04124;color:#fff;border-radius:4px}.card.alert h1,.card.alert h2,.card.alert h3,.card.alert h4,.card.alert h5,.card.alert h6{color:inherit}.card.alert ul{margin-bottom:0}.card.alert img{width:100%}.card.alert .card-divider{background:#f14e33;padding:1rem}.card.dark{border:0;margin-bottom:.5rem;background:#232323;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.dark h1,.card.dark h2,.card.dark h3,.card.dark h4,.card.dark h5,.card.dark h6{color:inherit}.card.dark ul{margin-bottom:0}.card.dark img{width:100%}.card.dark .card-divider{background:#323232;padding:1rem}.card-divider{background:#ededed;padding:1rem}.card-section{padding:1rem}.close-button{position:absolute;color:#999;top:1rem;right:1rem;font-size:2em;line-height:.5;cursor:pointer}.close-button:hover{color:#333}.thumbnail,ul.thumbnails>li img{padding:.5rem;box-shadow:0 3px 15px rgba(0,0,0,.25)}ul.thumbnails>li{margin-bottom:1rem}ul.thumbnails>li a{display:block}input[type=search],input[type=text],input[type=password],input[type=date],input[type=datetime],input[type=datetime-local],input[type=month],input[type=week],input[type=email],input[type=tel],input[type=time],input[type=url],input[type=color],input[type=number],textarea{-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;height:2.4rem;padding:.5rem;margin:0 0 1rem;border:1px solid #ccc;border-radius:0;background:#fff;color:#000;font-size:1rem;-webkit-font-smoothing:antialiased;vertical-align:middle}label>.inline-label,label>input,label>input[type=search],label>input[type=text],label>input[type=password],label>input[type=date],label>input[type=datetime],label>input[type=datetime-local],label>input[type=month],label>input[type=week],label>input[type=email],label>input[type=tel],label>input[type=time],label>input[type=url],label>input[type=color],label>input[type=number],label>textarea{margin-top:.5rem}input[type=search]:hover,input[type=text]:hover,input[type=password]:hover,input[type=date]:hover,input[type=datetime]:hover,input[type=datetime-local]:hover,input[type=month]:hover,input[type=week]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=time]:hover,input[type=url]:hover,input[type=color]:hover,input[type=number]:hover,textarea:hover{border:1px solid #bbb;background:#fff;color:#000}input[type=search]:focus,input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=month]:focus,input[type=week]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=color]:focus,input[type=number]:focus,textarea:focus{outline:0;border:1px solid #999;background:#fff;color:#000}input[type=search]{box-sizing:border-box}fieldset[disabled] input,fieldset[disabled] textarea,input.disabled,input[disabled],input[readonly],textarea.disabled,textarea[disabled],textarea[readonly]{cursor:not-allowed}fieldset[disabled] input,fieldset[disabled] input:hover,fieldset[disabled] textarea,fieldset[disabled] textarea:hover,input.disabled,input.disabled:hover,input[disabled],input[disabled]:hover,input[readonly],input[readonly]:hover,textarea.disabled,textarea.disabled:hover,textarea[disabled],textarea[disabled]:hover,textarea[readonly],textarea[readonly]:hover{background-color:#f2f2f2}label{display:block;font-size:.9rem;margin-bottom:.5rem}input[type=checkbox],input[type=radio]{width:1rem;height:1rem}label>input[type=checkbox],label>input[type=radio]{margin-right:.25rem}input[type=checkbox]+label,input[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}.inline-label,.inline-label>.form-label{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.footer,.footer .logo,.footer .logo svg,.footer .logo>span,.progress-indicator,.progress-indicator>span,output{vertical-align:middle}.inline-label{display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.inline-label>input,.inline-label>select{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0}.inline-label>.form-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background:#eee;color:#333;border:1px solid #ccc;padding:0 .5rem;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.inline-label>.form-label:first-child{border-right:0}.inline-label>.form-label:last-child{border-left:0}.inline-label>a,.inline-label>button,.inline-label>input[type=button],.inline-label>input[type=submit]{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-top:0;padding-bottom:0;margin:0;border-radius:0}textarea{height:auto;width:100%;min-height:50px}select{display:block;width:100%;height:2.4rem;padding:.5rem 1.625rem .5rem .5rem;margin:0 0 1rem;font-size:1rem;color:#000;border-radius:0;border:1px solid #ccc;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%2232%22%20height%3D%2224%22%20viewBox%3D%220%200%2032%2024%22%3E%3Cpolygon%20points%3D%220%2C0%2032%2C0%2016%2C24%22%20style%3D%22fill%3A%20black%22%3E%3C/polygon%3E%3C/svg%3E") right 10px center no-repeat #fafafa;background-size:8px 8px}input[type=range],meter,progress{-webkit-appearance:none;-moz-appearance:none;display:block;border:0}input[type=range]:focus,select:focus{outline:0}select::-ms-expand{display:none}input[type=range]{width:100%;height:auto;cursor:pointer;margin-top:.25rem;margin-bottom:.25rem;line-height:1}input[type=range]::-webkit-slider-runnable-track{height:1rem;background:#ddd}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#3f3f3f;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-moz-range-track{-moz-appearance:none;height:1rem;background:#ccc}input[type=range]::-moz-range-thumb{-moz-appearance:none;background:#3f3f3f;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-ms-track{height:1rem;background:#ddd;color:transparent;border:0;overflow:visible;border-top:.25rem solid #fff;border-bottom:.25rem solid #fff}input[type=range]::-ms-thumb{background:#3f3f3f;width:1.5rem;height:1.5rem;border:0}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd}output{line-height:1.5rem;margin-left:.5em}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;background:#3f3f3f}meter,progress{width:100%;height:1.5rem;margin-bottom:1rem;background:#ccc}.label.dark,.label.primary{border-radius:0}progress::-webkit-progress-bar{background:#ccc}progress::-webkit-progress-value{background:#3f3f3f}progress::-moz-progress-bar{background:#3f3f3f}progress.high::-webkit-progress-value{background:#43AC6A}progress.high::-moz-progress-bar{background:#43AC6A}progress.medium::-webkit-progress-value{background:#e7cf00}progress.medium::-moz-progress-bar{background:#e7cf00}progress.low::-webkit-progress-value{background:#F04124}progress.low::-moz-progress-bar{background:#F04124}meter{background:#ccc}meter::-webkit-meter-bar{background:#ccc}meter::-webkit-meter-optimum-value{background:#43AC6A}meter::-webkit-meter-suboptimum-value{background:#e7cf00}meter::-webkit-meter-even-less-good-value{background:#F04124}meter::-moz-meter-bar{background:#3f3f3f}meter:-moz-meter-optimum::-moz-meter-bar{background:#43AC6A}meter:-moz-meter-sub-optimum::-moz-meter-bar{background:#e7cf00}meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:#F04124}.panel{position:absolute;z-index:100;overflow-y:auto;display:none;padding:0;background:#fff}.is-active.panel{display:block}.panel-top{top:0;left:0;width:100%;height:300px}.panel-top.is-active{box-shadow:0 3px 10px rgba(0,0,0,.25)}.panel-right{top:0;right:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-right{width:300px}}.panel-right.is-active{box-shadow:-3px 0 10px rgba(0,0,0,.25)}.panel-bottom{bottom:0;left:0;width:100%;height:300px}.panel-bottom.is-active{box-shadow:2px -3px 10px rgba(0,0,0,.25)}.panel-left{top:0;left:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-left{width:300px}}.panel-left.is-active{box-shadow:3px 0 10px rgba(0,0,0,.25)}.small-grid-block.panel,.small-grid-content.panel{width:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.panel-fixed{position:fixed}.small-vertical.grid-block,.small-vertical.grid-frame,.small-vertical.large-grid-block,.small-vertical.medium-grid-block,.small-vertical.small-grid-block,.vertical.grid-block,.vertical.grid-frame,.vertical.large-grid-block,.vertical.medium-grid-block,.vertical.small-grid-block{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.small-horizontal.grid-block,.small-horizontal.grid-frame,.small-horizontal.large-grid-block,.small-horizontal.medium-grid-block,.small-horizontal.small-grid-block{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}@media only screen and (min-width:40em){.medium-vertical.grid-block,.medium-vertical.grid-frame,.medium-vertical.large-grid-block,.medium-vertical.medium-grid-block,.medium-vertical.small-grid-block{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.medium-horizontal.grid-block,.medium-horizontal.grid-frame,.medium-horizontal.large-grid-block,.medium-horizontal.medium-grid-block,.medium-horizontal.small-grid-block{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}@media only screen and (min-width:75em){.large-vertical.grid-block,.large-vertical.grid-frame,.large-vertical.large-grid-block,.large-vertical.medium-grid-block,.large-vertical.small-grid-block{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.large-horizontal.grid-block,.large-horizontal.grid-frame,.large-horizontal.large-grid-block,.large-horizontal.medium-grid-block,.large-horizontal.small-grid-block{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}.align-right.grid-block,.align-right.grid-frame,.align-right.large-grid-block,.align-right.medium-grid-block,.align-right.small-grid-block{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.grid-block,.align-center.grid-frame,.align-center.large-grid-block,.align-center.medium-grid-block,.align-center.small-grid-block{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify.grid-block,.align-justify.grid-frame,.align-justify.large-grid-block,.align-justify.medium-grid-block,.align-justify.small-grid-block{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced.grid-block,.align-spaced.grid-frame,.align-spaced.large-grid-block,.align-spaced.medium-grid-block,.align-spaced.small-grid-block{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.wrap.grid-block,.wrap.grid-frame,.wrap.large-grid-block,.wrap.medium-grid-block,.wrap.small-grid-block{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.shrink.grid-block,.shrink.grid-content,.shrink.large-grid-block,.shrink.large-grid-content,.shrink.medium-grid-block,.shrink.medium-grid-content,.shrink.small-grid-block,.shrink.small-grid-content{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;overflow:visible}.noscroll.grid-block,.noscroll.grid-content,.noscroll.large-grid-block,.noscroll.large-grid-content,.noscroll.medium-grid-block,.noscroll.medium-grid-content,.noscroll.small-grid-block,.noscroll.small-grid-content{overflow:visible}.grid-block,.grid-frame{overflow:hidden;-webkit-backface-visibility:hidden;-webkit-box-flex:1;-webkit-order:0;-webkit-box-ordinal-group:1}.grid-frame{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100vh;position:relative;backface-visibility:hidden;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-order:0;order:0}.grid-block,.small-grid-block,.small-grid-block.panel,.small-grid-content.panel{height:auto;position:relative}.grid-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;backface-visibility:hidden;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-order:0;order:0;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.grid-content.collapse{padding:0}.grid-content .grid-block{margin-left:-1rem;margin-right:-1rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible}.grid-content .grid-block.nowrap{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.grid-content .grid-block .grid-content{overflow:visible}.grid-container{max-width:56.25rem;margin:0 auto}.grid-container.contain-left{max-width:56.25rem;margin:0 auto 0 0}.grid-container.contain-right{max-width:56.25rem;margin:0 0 0 auto}.small-grid-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.small-grid-block.panel{-webkit-transform:none;-ms-transform:none;transform:none}.small-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.small-grid-content.panel{-webkit-transform:none;-ms-transform:none;transform:none}@media only screen and (min-width:40em){.medium-grid-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-grid-block.panel{-webkit-transform:none;-ms-transform:none;transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.medium-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-grid-content.panel{-webkit-transform:none;-ms-transform:none;transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}@media only screen and (min-width:75em){.large-grid-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-grid-block.panel{-webkit-transform:none;-ms-transform:none;transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.large-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-grid-content.panel{-webkit-transform:none;-ms-transform:none;transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-5,.small-up-6,.small-up-8,.small-up-9,.title-bar,.title-bar .center,.title-bar .left,.title-bar .right{overflow:visible}.order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.small-1{-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-offset-1{margin-left:8.33333%}.small-up-1{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-1>div,.small-up-1>li,.small-up-1>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-2{-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-offset-2{margin-left:16.66667%}.small-up-2{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-2>div,.small-up-2>li,.small-up-2>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-offset-3{margin-left:25%}.small-up-3{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-3>div,.small-up-3>li,.small-up-3>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-4{-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-offset-4{margin-left:33.33333%}.small-up-4{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-4>div,.small-up-4>li,.small-up-4>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-5{-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-offset-5{margin-left:41.66667%}.small-up-5{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;list-style-type:none}.small-up-5>div,.small-up-5>li,.small-up-5>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.small-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.small-offset-6{margin-left:50%}.small-up-6{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-6>div,.small-up-6>li,.small-up-6>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-7{-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.small-order-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.small-offset-7{margin-left:58.33333%}.small-up-7{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible}.small-up-7>div,.small-up-7>li,.small-up-7>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.small-8{-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.small-order-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.small-offset-8{margin-left:66.66667%}.small-up-8{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-8>div,.small-up-8>li,.small-up-8>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.small-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.small-order-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.small-offset-9{margin-left:75%}.small-up-9{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-9>div,.small-up-9>li,.small-up-9>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 11.11111%;-ms-flex:0 0 11.11111%;flex:0 0 11.11111%;max-width:11.11111%}.small-10{-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.small-order-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.small-offset-10{margin-left:83.33333%}.small-up-10{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-10>div,.small-up-10>li,.small-up-10>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.small-11{-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.small-order-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.small-offset-11{margin-left:91.66667%}.small-up-11{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-11>div,.small-up-11>li,.small-up-11>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 9.09091%;-ms-flex:0 0 9.09091%;flex:0 0 9.09091%;max-width:9.09091%}.small-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-order-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.small-offset-12{margin-left:100%}.small-up-12{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.small-up-12>div,.small-up-12>li,.small-up-12>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}@media only screen and (min-width:40em){.medium-1{-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-offset-1{margin-left:8.33333%}.medium-up-1{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-1>div,.medium-up-1>li,.medium-up-1>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-2{-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-offset-2{margin-left:16.66667%}.medium-up-2{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-2>div,.medium-up-2>li,.medium-up-2>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-offset-3{margin-left:25%}.medium-up-3{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-3>div,.medium-up-3>li,.medium-up-3>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-4{-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-offset-4{margin-left:33.33333%}.medium-up-4{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-4>div,.medium-up-4>li,.medium-up-4>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-5{-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-offset-5{margin-left:41.66667%}.medium-up-5{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-5>div,.medium-up-5>li,.medium-up-5>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.medium-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.medium-offset-6{margin-left:50%}.medium-up-6{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-6>div,.medium-up-6>li,.medium-up-6>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-7{-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.medium-order-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.medium-offset-7{margin-left:58.33333%}.medium-up-7{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-7>div,.medium-up-7>li,.medium-up-7>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.medium-8{-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.medium-order-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.medium-offset-8{margin-left:66.66667%}.medium-up-8{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-8>div,.medium-up-8>li,.medium-up-8>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.medium-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.medium-order-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.medium-offset-9{margin-left:75%}.medium-up-9{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-9>div,.medium-up-9>li,.medium-up-9>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 11.11111%;-ms-flex:0 0 11.11111%;flex:0 0 11.11111%;max-width:11.11111%}.medium-10{-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.medium-order-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.medium-offset-10{margin-left:83.33333%}.medium-up-10{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-10>div,.medium-up-10>li,.medium-up-10>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.medium-11{-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.medium-order-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.medium-offset-11{margin-left:91.66667%}.medium-up-11{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-11>div,.medium-up-11>li,.medium-up-11>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 9.09091%;-ms-flex:0 0 9.09091%;flex:0 0 9.09091%;max-width:9.09091%}.medium-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-order-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.medium-offset-12{margin-left:100%}.medium-up-12{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-12>div,.medium-up-12>li,.medium-up-12>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}}@media only screen and (min-width:75em){.large-1{-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-offset-1{margin-left:8.33333%}.large-up-1{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-1>div,.large-up-1>li,.large-up-1>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-2{-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-offset-2{margin-left:16.66667%}.large-up-2{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-2>div,.large-up-2>li,.large-up-2>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-offset-3{margin-left:25%}.large-up-3{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-3>div,.large-up-3>li,.large-up-3>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-4{-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-offset-4{margin-left:33.33333%}.large-up-4{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-4>div,.large-up-4>li,.large-up-4>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-5{-webkit-box-flex:0;-webkit-flex:0 0 41.66667%;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-offset-5{margin-left:41.66667%}.large-up-5{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-5>div,.large-up-5>li,.large-up-5>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.large-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.large-offset-6{margin-left:50%}.large-up-6{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-6>div,.large-up-6>li,.large-up-6>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-7{-webkit-box-flex:0;-webkit-flex:0 0 58.33333%;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.large-order-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.large-offset-7{margin-left:58.33333%}.large-up-7{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-7>div,.large-up-7>li,.large-up-7>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 14.28571%;-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.large-8{-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.large-order-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.large-offset-8{margin-left:66.66667%}.large-up-8{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-8>div,.large-up-8>li,.large-up-8>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.large-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.large-order-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.large-offset-9{margin-left:75%}.large-up-9{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-9>div,.large-up-9>li,.large-up-9>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 11.11111%;-ms-flex:0 0 11.11111%;flex:0 0 11.11111%;max-width:11.11111%}.large-10{-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.large-order-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.large-offset-10{margin-left:83.33333%}.large-up-10{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-10>div,.large-up-10>li,.large-up-10>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.large-11{-webkit-box-flex:0;-webkit-flex:0 0 91.66667%;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.large-order-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.large-offset-11{margin-left:91.66667%}.large-up-11{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-11>div,.large-up-11>li,.large-up-11>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 9.09091%;-ms-flex:0 0 9.09091%;flex:0 0 9.09091%;max-width:9.09091%}.large-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-order-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.large-offset-12{margin-left:100%}.large-up-12{-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-12>div,.large-up-12>li,.large-up-12>section{padding:0 1rem 1rem;-webkit-box-flex:0;-webkit-flex:0 0 8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}}.title-bar,.title-bar.dark{padding:1rem;border-bottom:1px solid #ccc}.grid-content .modal .grid-block{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.title-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;background:#eee;color:#000}.title-bar .title{font-weight:700}.title-bar .center,.title-bar .left,.title-bar .right{display:block;white-space:nowrap}.title-bar .center:first-child:last-child,.title-bar .left:first-child:last-child,.title-bar .right:first-child:last-child{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0}.title-bar .left{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%}.title-bar .center{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;text-align:center}.title-bar .right{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;text-align:right}.title-bar .left:first-child,.title-bar .left:first-child+.right:last-child{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.title-bar .center:first-child:not(:last-child){margin-left:25%}.title-bar .center+.left{margin-right:-25%}.title-bar.primary{background:#3f3f3f;color:#fff;border-bottom:1px solid #ccc}.title-bar.primary a,.title-bar.primary a:hover{color:#fff}.title-bar.dark{background:#232323;color:#fff}.label,.label.primary{background:#3f3f3f;color:#fff}.title-bar.dark a,.title-bar.dark a:hover{color:#fff}.title-bar-bottom{border-bottom:0;border-top:1px solid #ccc}.label{line-height:1;white-space:nowrap;display:inline-block;cursor:default;font-size:.8rem;padding:.33333rem .5rem}.label.success{background:#43AC6A}.label.warning{background:#F08A24}.label.alert{background:#F04124}.label.dark{background:#232323;color:#fff}.badge{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:1000px;font-size:.8em;width:1.5rem;height:1.5rem;background:#3f3f3f;color:#fff}.badge.secondary{background:#f1f1f1;color:#000}.badge.primary{background:#3f3f3f;color:#fff}.badge.success{background:#43AC6A;color:#fff}.badge.warning{background:#F08A24;color:#fff}.badge.alert{background:#F04124;color:#fff}.badge.dark{background:#232323;color:#fff}.inline-list{text-align:left}.inline-list dd,.inline-list dt,.inline-list li{display:inline-block;margin-left:-2px;margin-right:-2px}.menu-bar,.menu-bar>li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.inline-list li{margin-right:1rem;margin-left:0}.menu-bar{display:flex;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;margin:0;overflow-y:visible;background:#fff}.menu-bar>li{-webkit-box-flex:1;-webkit-flex:1 0 0;-ms-flex:1 0 0;flex:1 0 0;display:flex;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.menu-bar>li>a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:1rem;font-size:1rem;line-height:1;color:#000}.menu-bar.label-corner>li>a,.menu-bar.label-side>li>a{padding-right:3.2rem}.menu-bar .is-active>a,.menu-bar>li>a:hover{background:#ededed;color:#000}.menu-bar .iconic *,.menu-bar .iconic .iconic-property-accent{fill:#000;stroke:#000}.menu-bar,.menu-bar.horizontal{overflow-x:hidden;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu-bar.horizontal>li>a,.menu-bar>li>a{-webkit-box-flex:1;-webkit-flex:1 0 0;-ms-flex:1 0 0;flex:1 0 0;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.vertical{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.vertical>li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.vertical>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu-bar.condense>li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.menu-bar.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu-bar.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-bar.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.menu-bar.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.menu-bar.small-condense li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.menu-bar.small-expand li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.small-align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu-bar.small-align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu-bar.small-align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-bar.small-align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.menu-bar.small-align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}@media only screen and (min-width:40em){.menu-bar.medium-condense li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.menu-bar.medium-expand li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.medium-align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu-bar.medium-align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu-bar.medium-align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-bar.medium-align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.menu-bar.medium-align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}}@media only screen and (min-width:75em){.menu-bar.large-condense li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.menu-bar.large-expand li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.large-align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu-bar.large-align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu-bar.large-align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-bar.large-align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.menu-bar.large-align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}}.menu-bar.small-horizontal{overflow-x:hidden;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu-bar.small-horizontal>li>a{-webkit-box-flex:1;-webkit-flex:1 0 0;-ms-flex:1 0 0;flex:1 0 0;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.small-vertical{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.small-vertical>li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.small-vertical>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}@media only screen and (min-width:40em){.menu-bar.medium-horizontal{overflow-x:hidden;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu-bar.medium-horizontal>li>a{-webkit-box-flex:1;-webkit-flex:1 0 0;-ms-flex:1 0 0;flex:1 0 0;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.medium-vertical{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.medium-vertical>li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.medium-vertical>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}}@media only screen and (min-width:75em){.menu-bar.large-horizontal{overflow-x:hidden;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu-bar.large-horizontal>li>a{-webkit-box-flex:1;-webkit-flex:1 0 0;-ms-flex:1 0 0;flex:1 0 0;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.large-vertical{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.large-vertical>li{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.menu-bar.large-vertical>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}}.menu-bar.icon-top>li>.iconic,.menu-bar.icon-top>li>img,.menu-bar>li>.iconic,.menu-bar>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-top>li>.iconic:first-child:last-child,.menu-bar.icon-top>li>img:first-child:last-child,.menu-bar>li>.iconic:first-child:last-child,.menu-bar>li>img:first-child:last-child{margin:0}.menu-bar.icon-top>li>a,.menu-bar>li>a{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.icon-top>li>a>.iconic,.menu-bar.icon-top>li>a>img,.menu-bar>li>a>.iconic,.menu-bar>li>a>img{margin:0 0 1rem}.menu-bar.icon-right>li>.iconic,.menu-bar.icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-right>li>.iconic:first-child:last-child,.menu-bar.icon-right>li>img:first-child:last-child{margin:0}.menu-bar.icon-right>li>a{-webkit-flex-flow:row-reverse nowrap;-ms-flex-flow:row-reverse nowrap;flex-flow:row-reverse nowrap}.menu-bar.icon-right>li>a>.iconic,.menu-bar.icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.icon-bottom>li>.iconic,.menu-bar.icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-bottom>li>.iconic:first-child:last-child,.menu-bar.icon-bottom>li>img:first-child:last-child{margin:0}.menu-bar.icon-bottom>li>a{-webkit-flex-flow:column-reverse nowrap;-ms-flex-flow:column-reverse nowrap;flex-flow:column-reverse nowrap}.menu-bar.icon-bottom>li>a>.iconic,.menu-bar.icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.icon-left>li>.iconic,.menu-bar.icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-left>li>.iconic:first-child:last-child,.menu-bar.icon-left>li>img:first-child:last-child{margin:0}.menu-bar.icon-left>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu-bar.icon-left>li>a>.iconic,.menu-bar.icon-left>li>a>img{margin:0 1rem 0 0}.menu-bar.small-icon-top>li>.iconic,.menu-bar.small-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-top>li>.iconic:first-child:last-child,.menu-bar.small-icon-top>li>img:first-child:last-child{margin:0}.menu-bar.small-icon-top>li>a{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.small-icon-top>li>a>.iconic,.menu-bar.small-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.small-icon-right>li>.iconic,.menu-bar.small-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-right>li>.iconic:first-child:last-child,.menu-bar.small-icon-right>li>img:first-child:last-child{margin:0}.menu-bar.small-icon-right>li>a{-webkit-flex-flow:row-reverse nowrap;-ms-flex-flow:row-reverse nowrap;flex-flow:row-reverse nowrap}.menu-bar.small-icon-right>li>a>.iconic,.menu-bar.small-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.small-icon-bottom>li>.iconic,.menu-bar.small-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-bottom>li>.iconic:first-child:last-child,.menu-bar.small-icon-bottom>li>img:first-child:last-child{margin:0}.menu-bar.small-icon-bottom>li>a{-webkit-flex-flow:column-reverse nowrap;-ms-flex-flow:column-reverse nowrap;flex-flow:column-reverse nowrap}.menu-bar.small-icon-bottom>li>a>.iconic,.menu-bar.small-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.small-icon-left>li>.iconic,.menu-bar.small-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-left>li>.iconic:first-child:last-child,.menu-bar.small-icon-left>li>img:first-child:last-child{margin:0}.menu-bar.small-icon-left>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu-bar.small-icon-left>li>a>.iconic,.menu-bar.small-icon-left>li>a>img{margin:0 1rem 0 0}@media only screen and (min-width:40em){.menu-bar.medium-icon-top>li>.iconic,.menu-bar.medium-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-top>li>.iconic:first-child:last-child,.menu-bar.medium-icon-top>li>img:first-child:last-child{margin:0}.menu-bar.medium-icon-top>li>a{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.medium-icon-top>li>a>.iconic,.menu-bar.medium-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.medium-icon-right>li>.iconic,.menu-bar.medium-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-right>li>.iconic:first-child:last-child,.menu-bar.medium-icon-right>li>img:first-child:last-child{margin:0}.menu-bar.medium-icon-right>li>a{-webkit-flex-flow:row-reverse nowrap;-ms-flex-flow:row-reverse nowrap;flex-flow:row-reverse nowrap}.menu-bar.medium-icon-right>li>a>.iconic,.menu-bar.medium-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.medium-icon-bottom>li>.iconic,.menu-bar.medium-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-bottom>li>.iconic:first-child:last-child,.menu-bar.medium-icon-bottom>li>img:first-child:last-child{margin:0}.menu-bar.medium-icon-bottom>li>a{-webkit-flex-flow:column-reverse nowrap;-ms-flex-flow:column-reverse nowrap;flex-flow:column-reverse nowrap}.menu-bar.medium-icon-bottom>li>a>.iconic,.menu-bar.medium-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.medium-icon-left>li>.iconic,.menu-bar.medium-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-left>li>.iconic:first-child:last-child,.menu-bar.medium-icon-left>li>img:first-child:last-child{margin:0}.menu-bar.medium-icon-left>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu-bar.medium-icon-left>li>a>.iconic,.menu-bar.medium-icon-left>li>a>img{margin:0 1rem 0 0}}@media only screen and (min-width:75em){.menu-bar.large-icon-top>li>.iconic,.menu-bar.large-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-top>li>.iconic:first-child:last-child,.menu-bar.large-icon-top>li>img:first-child:last-child{margin:0}.menu-bar.large-icon-top>li>a{-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu-bar.large-icon-top>li>a>.iconic,.menu-bar.large-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.large-icon-right>li>.iconic,.menu-bar.large-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-right>li>.iconic:first-child:last-child,.menu-bar.large-icon-right>li>img:first-child:last-child{margin:0}.menu-bar.large-icon-right>li>a{-webkit-flex-flow:row-reverse nowrap;-ms-flex-flow:row-reverse nowrap;flex-flow:row-reverse nowrap}.menu-bar.large-icon-right>li>a>.iconic,.menu-bar.large-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.large-icon-bottom>li>.iconic,.menu-bar.large-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-bottom>li>.iconic:first-child:last-child,.menu-bar.large-icon-bottom>li>img:first-child:last-child{margin:0}.menu-bar.large-icon-bottom>li>a{-webkit-flex-flow:column-reverse nowrap;-ms-flex-flow:column-reverse nowrap;flex-flow:column-reverse nowrap}.menu-bar.large-icon-bottom>li>a>.iconic,.menu-bar.large-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.large-icon-left>li>.iconic,.menu-bar.large-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-left>li>.iconic:first-child:last-child,.menu-bar.large-icon-left>li>img:first-child:last-child{margin:0}.menu-bar.large-icon-left>li>a{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu-bar.large-icon-left>li>a>.iconic,.menu-bar.large-icon-left>li>a>img{margin:0 1rem 0 0}}.menu-bar.label-corner .menu-bar-label,.menu-bar.label-side .menu-bar-label{display:block;font-size:.9rem;width:1.2rem;height:1.2rem;line-height:1.2rem;text-align:center;border-radius:1000px;background:red;right:1rem;color:#fff;pointer-events:none}.menu-group .menu-bar,.modal .grid-block,.modal .grid-content{margin:0}.menu-bar.label-side>li{position:relative}.menu-bar.label-side .menu-bar-label{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.modal-overlay,.shake{-webkit-transform:translate3d(0,0,0)}.menu-bar.label-corner>li{position:relative}.menu-bar.label-corner .menu-bar-label{position:absolute;top:1rem}.menu-bar.primary{background:#3f3f3f}.menu-bar.primary>li>a{color:#fff}.menu-bar.primary .is-active>a,.menu-bar.primary>li>a:hover{background:#4c4c4c;color:#fff}.menu-bar.dark{background:#232323}.menu-bar.dark>li>a{color:#fff}.menu-bar.dark .is-active>a,.menu-bar.dark>li>a:hover{background:#323232;color:#fff}.menu-bar>li.title{padding:1rem;cursor:default;font-weight:700}.switch>label,.tabs .tab-item,a,a[ui-sref]{cursor:pointer}.menu-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media only screen and (min-width:40em){.menu-group{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.menu-group>.menu-group-left,.menu-group>.menu-group-right{-webkit-box-flex:1;-webkit-flex:1 1 100%;-ms-flex:1 1 100%;flex:1 1 100%}@media only screen and (min-width:40em){.menu-group>.menu-group-left,.menu-group>.menu-group-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}}.menu-group .menu-bar>li{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.menu-group.primary{background-color:#3f3f3f}.menu-group.primary .menu-bar{background:#3f3f3f}.menu-group.primary .menu-bar>li>a{color:#fff}.menu-group.primary .menu-bar .is-active>a,.menu-group.primary .menu-bar>li>a:hover{background:#4c4c4c;color:#fff}.menu-group.dark{background-color:#232323}.menu-group.dark .menu-bar{background:#232323}.menu-group.dark .menu-bar>li>a{color:#fff}.menu-group.dark .menu-bar .is-active>a,.menu-group.dark .menu-bar>li>a:hover{background:#323232;color:#fff}.modal{position:relative;z-index:1001;background:#fff;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:100%;height:100vh;max-height:100%;overflow:hidden}@media only screen and (min-width:40em){.modal{height:auto;max-width:600px}}.modal .close-button,.modal [fa-close]{z-index:1001}.tiny>.modal{max-width:300px}.small>.modal{max-width:500px}.large>.modal{max-width:800px}.dialog>.modal{height:auto}.collapse>.modal{padding:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:none;background-color:rgba(51,51,51,.7);-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.modal-overlay.is-active{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}@-webkit-keyframes shake{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes shake{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes spin-cw{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin-cw{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spin-ccw{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@keyframes spin-ccw{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@-webkit-keyframes wiggle{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes wiggle{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}.slideInUp.ng-enter,.slideInUp.ng-hide-remove{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:0;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.slideInDown.ng-enter,.slideInDown.ng-hide-remove,.slideInRight.ng-enter,.slideInRight.ng-hide-remove{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;-webkit-backface-visibility:hidden}.slideInUp.ng-enter.ng-enter-active,.slideInUp.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideInRight.ng-enter,.slideInRight.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.slideInRight.ng-enter.ng-enter-active,.slideInRight.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideInDown.ng-enter,.slideInDown.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove,.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;-webkit-backface-visibility:hidden}.slideInDown.ng-enter.ng-enter-active,.slideInDown.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.slideInLeft.ng-enter.ng-enter-active,.slideInLeft.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideOutDown.ng-hide-add,.slideOutDown.ng-leave,.slideOutRight.ng-hide-add,.slideOutRight.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;-webkit-backface-visibility:hidden}.slideOutUp.ng-hide-add.ng-hide-add-active,.slideOutUp.ng-leave.ng-leave-active{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.slideOutRight.ng-hide-add,.slideOutRight.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideOutRight.ng-hide-add.ng-hide-add-active,.slideOutRight.ng-leave.ng-leave-active{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.slideOutDown.ng-hide-add,.slideOutDown.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;backface-visibility:hidden;-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove,.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0}.slideOutDown.ng-hide-add.ng-hide-add-active,.slideOutDown.ng-leave.ng-leave-active{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.slideOutLeft.ng-hide-add.ng-hide-add-active,.slideOutLeft.ng-leave.ng-leave-active{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:opacity;transition-property:opacity;opacity:0}.fadeOut.ng-hide-add,.fadeOut.ng-leave,.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0}.fadeIn.ng-enter.ng-enter-active,.fadeIn.ng-hide-remove.ng-hide-remove-active{opacity:1}.fadeOut.ng-hide-add,.fadeOut.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:opacity;transition-property:opacity;opacity:1}.fadeOut.ng-hide-add.ng-hide-add-active,.fadeOut.ng-leave.ng-leave-active{opacity:0}.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;opacity:0}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove,.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.hingeInFromTop.ng-enter.ng-enter-active,.hingeInFromTop.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;opacity:0}.hingeInFromRight.ng-enter.ng-enter-active,.hingeInFromRight.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;opacity:0}.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove,.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.hingeInFromBottom.ng-enter.ng-enter-active,.hingeInFromBottom.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;opacity:0}.hingeInFromLeft.ng-enter.ng-enter-active,.hingeInFromLeft.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:0}.hingeInFromMiddleY.ng-enter,.hingeInFromMiddleY.ng-hide-remove,.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.hingeInFromMiddleX.ng-enter.ng-enter-active,.hingeInFromMiddleX.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeInFromMiddleY.ng-enter,.hingeInFromMiddleY.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:0}.hingeInFromMiddleY.ng-enter.ng-enter-active,.hingeInFromMiddleY.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;opacity:1}.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave,.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.hingeOutFromTop.ng-hide-add.ng-hide-add-active,.hingeOutFromTop.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;opacity:1}.hingeOutFromRight.ng-hide-add.ng-hide-add-active,.hingeOutFromRight.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;opacity:1}.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave,.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.hingeOutFromBottom.ng-hide-add.ng-hide-add-active,.hingeOutFromBottom.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);opacity:0}.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;opacity:1}.hingeOutFromLeft.ng-hide-add.ng-hide-add-active,.hingeOutFromLeft.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}.hingeOutFromMiddleX.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleX.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromMiddleY.ng-hide-add,.hingeOutFromMiddleY.ng-leave{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:0;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}.hingeOutFromMiddleY.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleY.ng-leave.ng-leave-active{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}.zoomIn.ng-enter,.zoomIn.ng-hide-remove{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:0;transition-delay:0;-webkit-transition-property:-webkit-transform,property;transition-property:transform,property;-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5);opacity:0}.spinIn.ng-enter,.spinIn.ng-hide-remove,.zoomOut.ng-hide-add,.zoomOut.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0}.zoomIn.ng-enter.ng-enter-active,.zoomIn.ng-hide-remove.ng-hide-remove-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.zoomOut.ng-hide-add,.zoomOut.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:-webkit-transform,property;transition-property:transform,property;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:1}.zoomOut.ng-hide-add.ng-hide-add-active,.zoomOut.ng-leave.ng-leave-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:0}.spinIn.ng-enter,.spinIn.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg);opacity:0}.spinInCCW.ng-enter,.spinInCCW.ng-hide-remove,.spinOut.ng-hide-add,.spinOut.ng-leave{-webkit-transition-duration:500ms;-webkit-transition-timing-function:ease;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform,opacity}.spinIn.ng-enter.ng-enter-active,.spinIn.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spinOut.ng-hide-add,.spinOut.ng-leave{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spinOut.ng-hide-add.ng-hide-add-active,.spinOut.ng-leave.ng-leave-active{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter,.spinInCCW.ng-hide-remove{transition-duration:500ms;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter.ng-enter-active,.spinInCCW.ng-hide-remove.ng-hide-remove-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add,.spinOutCCW.ng-leave{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:0;transition-delay:0;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add.ng-hide-add-active,.spinOutCCW.ng-leave.ng-leave-active{-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg);opacity:0}.slow{-webkit-transition-duration:750ms!important;transition-duration:750ms!important}.fast{-webkit-transition-duration:250ms!important;transition-duration:250ms!important}.linear{-webkit-transition-timing-function:linear!important;transition-timing-function:linear!important}.ease{-webkit-transition-timing-function:ease!important;transition-timing-function:ease!important}.easeIn{-webkit-transition-timing-function:ease-in!important;transition-timing-function:ease-in!important}.easeOut{-webkit-transition-timing-function:ease-out!important;transition-timing-function:ease-out!important}.easeInOut{-webkit-transition-timing-function:ease-in-out!important;transition-timing-function:ease-in-out!important}.bounceIn{-webkit-transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounceOut{-webkit-transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important;transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounceInOut{-webkit-transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.delay{-webkit-transition-delay:300ms!important;transition-delay:300ms!important}.long-delay{-webkit-transition-delay:700ms!important;transition-delay:700ms!important}.shake{-webkit-animation-name:shake;animation-name:shake;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate3d(0,0,0);-webkit-animation-delay:0;animation-delay:0}.spin-ccw,.spin-cw{-webkit-animation-duration:500ms;-webkit-animation-timing-function:ease;-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-webkit-animation-delay:0}.spin-cw{-webkit-animation-name:spin-cw;animation-name:spin-cw;animation-duration:500ms;animation-timing-function:ease;backface-visibility:hidden;transform:translate3d(0,0,0);animation-delay:0}.spin-ccw{-webkit-animation-name:spin-ccw;animation-name:spin-ccw;animation-duration:500ms;animation-timing-function:ease;backface-visibility:hidden;transform:translate3d(0,0,0);animation-delay:0}.wiggle{-webkit-animation-name:wiggle;animation-name:wiggle;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-delay:0;animation-delay:0}.shake.infinite,.spin-ccw.infinite,.spin-cw.infinite,.wiggle.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.shake.linear,.spin-ccw.linear,.spin-cw.linear,.wiggle.linear{-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.shake.ease,.spin-ccw.ease,.spin-cw.ease,.wiggle.ease{-webkit-animation-timing-function:ease!important;animation-timing-function:ease!important}.shake.easeIn,.spin-ccw.easeIn,.spin-cw.easeIn,.wiggle.easeIn{-webkit-animation-timing-function:ease-in!important;animation-timing-function:ease-in!important}.shake.easeOut,.spin-ccw.easeOut,.spin-cw.easeOut,.wiggle.easeOut{-webkit-animation-timing-function:ease-out!important;animation-timing-function:ease-out!important}.shake.easeInOut,.spin-ccw.easeInOut,.spin-cw.easeInOut,.wiggle.easeInOut{-webkit-animation-timing-function:ease-in-out!important;animation-timing-function:ease-in-out!important}.shake.bounceIn,.spin-ccw.bounceIn,.spin-cw.bounceIn,.wiggle.bounceIn{-webkit-animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.shake.bounceOut,.spin-ccw.bounceOut,.spin-cw.bounceOut,.wiggle.bounceOut{-webkit-animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important;animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.shake.bounceInOut,.spin-ccw.bounceInOut,.spin-cw.bounceInOut,.wiggle.bounceInOut{-webkit-animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.shake.slow,.spin-ccw.slow,.spin-cw.slow,.wiggle.slow{-webkit-animation-duration:750ms!important;animation-duration:750ms!important}.shake.fast,.spin-ccw.fast,.spin-cw.fast,.wiggle.fast{-webkit-animation-duration:250ms!important;animation-duration:250ms!important}.shake.delay,.spin-ccw.delay,.spin-cw.delay,.wiggle.delay{-webkit-animation-delay:300ms!important;animation-delay:300ms!important}.shake.long-delay,.spin-ccw.long-delay,.spin-cw.long-delay,.wiggle.long-delay{-webkit-animation-delay:700ms!important;animation-delay:700ms!important}.long-stagger,.stagger,.stort-stagger{-webkit-transition-delay:150ms;transition-delay:150ms;-webkit-transition-duration:0;transition-duration:0}.position-absolute{overflow:hidden;position:relative}[ui-view].ng-enter-active,[ui-view].ng-leave-active{position:absolute!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;top:0;right:0;bottom:0;left:0}.notification,.static-notification{z-index:1000;position:relative;margin-top:.5rem;margin-bottom:.5rem;display:none}.notification h1,.static-notification h1{font-size:1.25em;margin:0}.notification p,.static-notification p{margin:0}.is-active.notification,.is-active.static-notification{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.notification-container,.tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.notification .close-button,.static-notification .close-button{color:#fff}.notification-container{z-index:3000;position:fixed;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.notification{background:#3f3f3f}.notification,.notification h1,.notification h2,.notification h3,.notification h4,.notification h5,.notification h6{color:#fff}.notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.notification.success,.notification.success h1,.notification.success h2,.notification.success h3,.notification.success h4,.notification.success h5,.notification.success h6{color:#fff}.notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.notification.warning,.notification.warning h1,.notification.warning h2,.notification.warning h3,.notification.warning h4,.notification.warning h5,.notification.warning h6{color:#fff}.notification.alert{background:#F04124;padding:1rem;border-radius:4px}.notification.alert,.notification.alert h1,.notification.alert h2,.notification.alert h3,.notification.alert h4,.notification.alert h5,.notification.alert h6{color:#fff}.notification.dark{background:#232323;padding:1rem;border-radius:4px}.notification.dark,.notification.dark h1,.notification.dark h2,.notification.dark h3,.notification.dark h4,.notification.dark h5,.notification.dark h6{color:#fff}.static-notification{background:#3f3f3f;padding:1rem;border-radius:4px;position:fixed!important}.static-notification,.static-notification h1,.static-notification h2,.static-notification h3,.static-notification h4,.static-notification h5,.static-notification h6{color:#fff}.static-notification.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.static-notification.success,.static-notification.success h1,.static-notification.success h2,.static-notification.success h3,.static-notification.success h4,.static-notification.success h5,.static-notification.success h6{color:#fff}.static-notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.static-notification.warning,.static-notification.warning h1,.static-notification.warning h2,.static-notification.warning h3,.static-notification.warning h4,.static-notification.warning h5,.static-notification.warning h6{color:#fff}.static-notification.alert{background:#F04124;padding:1rem;border-radius:4px}.static-notification.alert,.static-notification.alert h1,.static-notification.alert h2,.static-notification.alert h3,.static-notification.alert h4,.static-notification.alert h5,.static-notification.alert h6{color:#fff}.static-notification.dark{background:#232323;padding:1rem;border-radius:4px}.static-notification.dark,.static-notification.dark h1,.static-notification.dark h2,.static-notification.dark h3,.static-notification.dark h4,.static-notification.dark h5,.static-notification.dark h6{color:#fff}.notification-container{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-icon{-webkit-box-flex:0;-webkit-flex:0 0 60px;-ms-flex:0 0 60px;flex:0 0 60px;margin-right:1rem;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.notification-icon img{width:100%;height:auto}.notification-content{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.off-canvas{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;z-index:2}.popup,.switch{overflow:hidden}.is-active.off-canvas{-webkit-transform:translate(0,0)!important;-ms-transform:translate(0,0)!important;transform:translate(0,0)!important}.off-canvas~.grid-frame{-webkit-transform:translate(0,0,0);-ms-transform:translate(0,0,0);transform:translate(0,0,0);-webkit-transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff}.off-canvas{width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);background:#fff;color:#000}.off-canvas.is-active~.grid-frame{-webkit-transform:translateX(250px)!important;-ms-transform:translateX(250px)!important;transform:translateX(250px)!important}.off-canvas.top{height:250px;width:100%;top:0;left:0;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);box-shadow:inset 0 -3px 10px rgba(0,0,0,.25)}.off-canvas.top.is-active~.grid-frame{-webkit-transform:translateY(250px)!important;-ms-transform:translateY(250px)!important;transform:translateY(250px)!important}.off-canvas.right{width:250px;height:100%;left:auto;top:0;right:0;box-shadow:inset 3px 0 10px rgba(0,0,0,.25);-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.off-canvas.right.is-active~.grid-frame{-webkit-transform:translateX(-250px)!important;-ms-transform:translateX(-250px)!important;transform:translateX(-250px)!important}.off-canvas.bottom{height:250px;width:100%;top:auto;bottom:0;left:0;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);box-shadow:inset 0 3px 10px rgba(0,0,0,.25)}.off-canvas.bottom.is-active~.grid-frame{-webkit-transform:translateY(-250px)!important;-ms-transform:translateY(-250px)!important;transform:translateY(-250px)!important}.off-canvas.left{width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.off-canvas.left.is-active~.grid-frame{-webkit-transform:translateX(250px)!important;-ms-transform:translateX(250px)!important;transform:translateX(250px)!important}.off-canvas.detached{z-index:0;box-shadow:none}.off-canvas.detached,.off-canvas.detached.is-active{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.detached~.grid-frame{z-index:1;box-shadow:0 0 15px rgba(0,0,0,.5)}.popup,.popup.dark,.popup.primary{box-shadow:0 0 10px rgba(0,0,0,.25)}.off-canvas.primary{background:#3f3f3f;color:#fff}.off-canvas.dark{background:#232323;color:#fff}.popup{position:absolute;z-index:1000;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;pointer-events:none;width:18.75rem;background:#fff;border-radius:0;border:0}.tether-enabled.popup{opacity:1;pointer-events:auto}.ps-container.ps-in-scrolling,.ps-container:hover.ps-in-scrolling,.reactTooltip{pointer-events:none}.popup.dark{background:#232323;border-radius:0;border:0}.popup.primary{background:#3f3f3f;border-radius:0;border:0}.switch{position:relative;display:inline-block}.switch>input{position:absolute;left:-9999px;outline:0}.switch>label{-ms-touch-action:manipulation;touch-action:manipulation;display:block;width:100%;height:100%;margin:0;background:#ccc}.switch,.switch>label::after{height:2rem;border-radius:9999px}.switch input+label{margin-left:0}.switch{width:3.125rem}.switch>label::after{content:'';display:block;position:absolute;top:0;left:0;width:2rem;background:#fff;-webkit-transition:left .15s ease-out;transition:left .15s ease-out;border:4px solid #ccc}.switch input:checked+label::after{left:1.125rem;border-color:#3f3f3f}.switch input:checked+label{background:#3f3f3f;margin:0}.switch.small{width:2.5rem;height:1.625rem}.switch.small>label::after{width:1.625rem;height:1.625rem}.switch.small input:checked+label::after{left:.875rem}.switch.large{width:3.75rem;height:2.375rem}.switch.large>label::after{width:2.375rem;height:2.375rem}.switch.large input:checked+label::after{left:1.375rem}.tabs{display:flex;background:0 0;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.tabs.vertical{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background:0 0;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.tabs .tab-item{background:#f3f3f3;padding:1rem;line-height:1;margin:0;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;color:#000}.tabs .tab-item.is-active{background:#ececec;color:#000}.tabs .tab-item.is-active:hover,.tabs .tab-item:hover{background:#e7e7e7}.tab-contents{padding:1rem}.tab-contents .tab-content{display:none}.tab-contents .tab-content.is-active{display:block}.accordion{border:1px solid #cbcbcb}.accordion-title{padding:1rem;background:#f3f3f3;color:#000;line-height:1;cursor:pointer}.accordion-title:hover{background:#e7e7e7}.is-active>.accordion-title{background:#ececec;color:#000}.accordion-content{padding:1rem;display:none}.is-active>.accordion-content{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}a{text-decoration:none;line-height:inherit}p,p.lead{line-height:1.6}a img{border:none}p{font-size:1rem;margin-bottom:1.25rem}.subheader,h1,h2,h3,h4,h5,h6{margin-top:.2rem;margin-bottom:.5rem;font-weight:400}p.lead{font-size:1.21875rem}p aside{font-size:.875rem;line-height:1.35}h1,h2,h3,h4,h5,h6{font-style:normal;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}dl,h6,ol,ul{font-size:1rem}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4,h5{font-size:1.125rem}.subheader{line-height:1.4;color:#6f6f6f}b,em,i,small,strong{line-height:inherit}hr{border:solid #ddd;border-width:1px 0 0;margin:1.25rem 0 1.1875rem;height:0}small{font-size:60%;color:#6f6f6f}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#3f3f3f;background-color:#fbfbfb;border-width:1px;border-style:solid;border-color:#e2e2e2;padding:.125rem .3125rem .0625rem}dl,ol,ul{line-height:1.6;margin-bottom:1.25rem;list-style-position:outside}ol,ul{margin-left:1.1rem}ol li ol,ol li ul,ul li ol,ul li ul{margin-left:1.25rem;margin-bottom:0}ul.no-bullet{margin-left:0}dl dt{margin-bottom:.3rem;font-weight:700}dl dd{margin-bottom:.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px dotted #ddd;cursor:help}abbr{text-transform:none}blockquote{margin:0 0 1.25rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.v-align{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.v-align .align-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.v-align .align-center{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.v-align .align-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.v-align .small-align-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.v-align .small-align-center{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.v-align .small-align-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.hide{display:none!important}.invisible{visibility:hidden}.hide-for-small:not(.ng-hide){display:block!important;display:none!important}.hide-for-small[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;display:none!important}.show-for-small:not(.ng-hide){display:none!important;display:block!important}.show-for-small[class*=grid-block]:not(.ng-hide){display:none!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.hide-for-small-only:not(.ng-hide){display:block!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only:not(.ng-hide){display:none!important}}.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.show-for-small-only:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-small-only:not(.ng-hide){display:block!important}}.show-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.show-for-small-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.hide-for-medium:not(.ng-hide){display:block!important}@media only screen and (min-width:40em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}.v-align .medium-align-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.v-align .medium-align-center{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.v-align .medium-align-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.hide-for-medium:not(.ng-hide){display:none!important}}.hide-for-medium[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.show-for-medium:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.hide-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium:not(.ng-hide){display:block!important}}.show-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.show-for-medium[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.hide-for-medium-only:not(.ng-hide){display:block!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only:not(.ng-hide){display:none!important}}.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.show-for-medium-only:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium-only:not(.ng-hide){display:block!important}}.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.hide-for-large:not(.ng-hide){display:block!important}@media only screen and (min-width:75em){.v-align .large-align-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.v-align .large-align-center{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.v-align .large-align-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.hide-for-large:not(.ng-hide){display:none!important}}.hide-for-large[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.show-for-large:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.hide-for-large[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large:not(.ng-hide){display:block!important}}.show-for-large[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.show-for-large[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.hide-for-large-only:not(.ng-hide){display:block!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only:not(.ng-hide){display:none!important}}.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.show-for-large-only:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large-only:not(.ng-hide){display:block!important}}.show-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.show-for-large-only[class*=grid-block]:not(.ng-hide){display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}@media only screen and (orientation:portrait){.hide-for-portrait{display:none!important}.hide-for-portrait[class*=grid-block]{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.show-for-portrait{display:none!important}@media only screen and (orientation:portrait){.show-for-portrait{display:block!important}.show-for-portrait[class*=grid-block]{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}@media only screen and (orientation:landscape){.hide-for-landscape{display:none!important}.hide-for-landscape[class*=grid-block]{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.show-for-landscape{display:none!important}@media only screen and (orientation:landscape){.show-for-landscape{display:block!important}.show-for-landscape[class*=grid-block]{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}}.small-text-left,.text-left{text-align:left}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-left{text-align:left}}@media only screen and (min-width:40em){.medium-text-left{text-align:left}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-left{text-align:left}}@media only screen and (min-width:75em){.large-text-left{text-align:left}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-left{text-align:left}}.small-text-right,.text-right{text-align:right}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-right{text-align:right}}@media only screen and (min-width:40em){.medium-text-right{text-align:right}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-right{text-align:right}}@media only screen and (min-width:75em){.large-text-right{text-align:right}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-right{text-align:right}}.small-text-center,.text-center{text-align:center}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-center{text-align:center}}@media only screen and (min-width:40em){.medium-text-center{text-align:center}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-center{text-align:center}}@media only screen and (min-width:75em){.large-text-center{text-align:center}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-center{text-align:center}}.small-text-justify,.text-justify{text-align:justify}@media only screen and (min-width:40em){.medium-text-justify{text-align:justify}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-justify{text-align:justify}}@media only screen and (min-width:75em){.large-text-justify{text-align:justify}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-justify{text-align:justify}}.clearfix:after,.clearfix:before{content:" ";display:table}.inline,.reactTooltip{display:inline-block}.float-left{float:left}.float-right{float:right}.float-none{float:none}.title-bar.primary{padding:0}.title-bar.primary .title{font-size:1.0625rem}.button{margin-bottom:0}.modal h3,.tabs{margin-bottom:1rem}.title-bar.primary .action-sheet a{color:#222}.action-sheet{width:auto;min-width:12em}.action-sheet .no-first-element-top-border>:first-child>a{border-top:none;border-top-left-radius:4px;border-top-right-radius:4px}.action-sheet ul>:last-child>a{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.has-error,div.has-error>input,div.has-error>input:focus,div.has-error>input:hover,div.has-error>label{border-color:#a94442;color:#a94442}.menu-bar.primary>li>a.active{background:#414141;color:#fff}.menu-bar.secondary>li>a.active{background:#ededed;color:#000}.tabs{border-bottom:1px solid #444}.tabs>.tab-item{background:0 0;font-family:RobotoCondensed-Regular,arial,sans-serif;text-transform:uppercase;-webkit-transition:all .3s ease 0s;transition:all .3s ease 0s;border-bottom:2px solid transparent;padding-bottom:.8rem}.tabs>.tab-item.is-active{background:0 0;border-bottom:2px solid red}.tabs>.tab-item.is-active:active,.tabs>.tab-item.is-active:focus,.tabs>.tab-item.is-active:hover,.tabs>.tab-item:active,.tabs>.tab-item:focus,.tabs>.tab-item:hover{background:0 0}.label,.label.alert,.label.cancel,.label.info,.label.success,.label.warning{background-color:transparent;border:1px solid #444;border-radius:1rem}.notification{width:25rem;right:1rem;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-justify{text-align:justify}.notification{width:auto;left:1rem;right:1rem;margin-left:0}}.modal{padding:1rem 1.75rem}.inline-label,.modal .button-group{margin-bottom:0}.reactTooltip{border-radius:3px;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;-webkit-transition:opacity .3s ease-out,margin-top .3s ease-out,margin-left .3s ease-out;transition:opacity .3s ease-out,margin-top .3s ease-out,margin-left .3s ease-out;top:-999em}.autocomplete>.action-sheet-container,.grp-menu-items-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.reactTooltip:after{content:"";width:0;height:0;position:absolute}.reactTooltip.show{opacity:.9!important;margin-top:0!important;margin-left:0!important}.reactTooltip.type-dark.place-top:after{border-top:8px solid #222}.reactTooltip.type-dark.place-bottom:after{border-bottom:8px solid #222}.reactTooltip.type-dark.place-left:after{border-left:6px solid #222}.reactTooltip.type-dark.place-right:after{border-right:6px solid #222}.reactTooltip.type-success{color:#fff;background-color:#8DC572}.reactTooltip.type-success.place-top:after{border-top:8px solid #8DC572}.reactTooltip.type-success.place-bottom:after{border-bottom:8px solid #8DC572}.reactTooltip.type-success.place-left:after{border-left:6px solid #8DC572}.reactTooltip.type-success.place-right:after{border-right:6px solid #8DC572}.reactTooltip.type-warning{color:#fff;background-color:#F0AD4E}.reactTooltip.type-warning.place-top:after{border-top:8px solid #F0AD4E}.reactTooltip.type-warning.place-bottom:after{border-bottom:8px solid #F0AD4E}.reactTooltip.type-warning.place-left:after{border-left:6px solid #F0AD4E}.reactTooltip.type-warning.place-right:after{border-right:6px solid #F0AD4E}.reactTooltip.type-error{color:#fff;background-color:#BE6464}.reactTooltip.type-error.place-top:after{border-top:8px solid #BE6464}.reactTooltip.type-error.place-bottom:after{border-bottom:8px solid #BE6464}.reactTooltip.type-error.place-left:after{border-left:6px solid #BE6464}.reactTooltip.type-error.place-right:after{border-right:6px solid #BE6464}.reactTooltip.type-info{color:#fff;background-color:#337AB7}.reactTooltip.type-info.place-top:after{border-top:8px solid #337AB7}.reactTooltip.type-info.place-bottom:after{border-bottom:8px solid #337AB7}.reactTooltip.type-info.place-left:after{border-left:6px solid #337AB7}.reactTooltip.type-info.place-right:after{border-right:6px solid #337AB7}.reactTooltip.type-light{color:#222;background-color:#fff}.reactTooltip.type-light.place-top:after{border-top:8px solid #fff}.reactTooltip.type-light.place-bottom:after{border-bottom:8px solid #fff}.reactTooltip.type-light.place-left:after{border-left:6px solid #fff}.reactTooltip.type-light.place-right:after{border-right:6px solid #fff}.reactTooltip.place-bottom:after,.reactTooltip.place-top:after{border-left:10px solid transparent;border-right:10px solid transparent;left:50%;margin-left:-10px}.reactTooltip.place-top{margin-top:-10px}.reactTooltip.place-top:after{bottom:-8px}.reactTooltip.place-bottom{margin-top:10px}.reactTooltip.place-bottom:after{top:-8px}.reactTooltip.place-left:after,.reactTooltip.place-right:after{border-top:6px solid transparent;border-bottom:6px solid transparent;top:50%;margin-top:-5px}.reactTooltip.place-left{margin-left:-10px}.reactTooltip.place-left:after{right:-6px}.reactTooltip.place-right{margin-left:10px}.reactTooltip.place-right:after{left:-6px}.form-label.select{padding:0;border:none}.form-label.select select{margin:0;border:none;padding-top:.2rem;padding-bottom:.2rem;font-size:.9rem}.autocomplete>.action-sheet-container{display:flex}.autocomplete>.action-sheet-container>.action-sheet{left:6em}td>.autocomplete input,td>input{margin:0!important}.form-group{margin-bottom:2rem}.account-select{width:auto}.account-selector>.account-image{float:left;width:80px}.account-selector>.content-area{margin-left:80px;padding-left:1rem}.account-selector .error-area{padding-top:.5rem;height:1.5rem;font-size:1rem}.page-layout>.grid-block{padding:1rem 1.75rem;border-top:1px solid transparent;border-bottom:1px solid transparent}.page-layout .grid-content{padding:0}.page-layout .regular-padding{padding:1rem 1.75rem}#account-notify{position:absolute;top:auto!important;right:.5em;width:30em}.loading-overlay,.loading-panel,.spinner{position:absolute;bottom:0;right:0}.loading-overlay{height:100%;width:100%;top:0;left:95px;z-index:1!important;-webkit-transition:opacity linear .5s;transition:opacity linear .5s}.loading-overlay.ng-hide{opacity:0}.loading-panel{max-height:110px;width:340px;background-color:#999;opacity:.4;border-radius:5px;margin:auto;top:15%;left:-190px}.splash .loading-panel{left:-380px}.progress-indicator{height:50px;margin:46px 20px 20px;text-align:center;color:#000;display:none}.card-section .text-group,.transfer-bottom .account-info{text-align:left}.progress-indicator>span{display:table-cell}.with-progress .progress-indicator{display:table}.spinner{width:64px;height:18px;margin:auto;top:0;left:0}.with-progress .spinner{margin:20px auto 0}.spinner>div{width:18px;height:18px;background-color:#333;border-radius:100%;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.circle:before,.three-bounce>div{background-color:#777;border-radius:100%}.spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}.circle-wrapper{width:22px;height:22px;position:relative}.circle{width:100%;height:100%;position:absolute;left:0;top:0}.circle:before{content:'';display:block;margin:0 auto;width:20%;height:20%;-webkit-animation:bouncedelay 1.2s infinite ease-in-out;animation:bouncedelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@keyframes bouncedelay{0%,100%,80%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.three-bounce>div{width:18px;height:18px;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.three-bounce .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.three-bounce .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.header.menu-group{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.icon>svg{position:relative;top:3px}.icon>svg>path{fill:#fff}.header{padding-left:0!important;padding-right:1rem;min-height:48px}.header .menu-bar>li{padding:0}.header .menu-bar>li>a{padding-left:.5rem;padding-right:.5rem}@media only screen and (min-width:75em){.header .menu-bar>li>a{padding-left:1.75rem;padding-right:1.75rem}}.grp-menu-items-group{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.grp-menu-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.grp-menu-item .button:hover{background:#414141!important}.grp-menu-item .button,.grp-menu-item>a{color:#fff!important;padding:1rem .4rem;font-size:1rem}@media only screen and (min-width:75em){.grp-menu-item .button,.grp-menu-item>a{padding-left:.75rem;padding-right:.75rem}}.grp-menu-item .button:hover,.grp-menu-item>a:hover{background:#414141;color:#fff}#account_drop_down a.button{padding-left:0;text-transform:none;font-family:Roboto-Regular,arial,sans-serif}.footer .logo,.table>thead>tr>th{font-family:RobotoCondensed-Regular,arial,sans-serif}.user-icon>a{padding-left:.3rem;padding-right:.3rem}.footer{height:36px;line-height:36px;padding-left:1.75rem;padding-right:1.75rem}.footer a{text-decoration:underline}.footer .logo{font-size:1.1rem;line-height:2rem}.footer .logo>.icon{position:relative;top:-6px;left:-4px}.transfer-bottom{background-color:#f3f3f3}.invoice .item-name{padding:.2rem 0}.invoice .item-description{padding:.2rem 0;font-size:90%}.table{width:100%}.table>thead>tr>th{padding:12px 5px;text-transform:uppercase;font-weight:400;font-size:.9rem;text-align:left}.table>tbody>tr>td{padding:5px}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5;cursor:pointer}.card{border-radius:0;border:none}.card>h4{margin:0;padding-top:.2rem;padding-bottom:.2rem}.card>.card-content{margin:1rem}.account-info,.center-content{text-align:center}.account-card{padding:0 1rem 0 0!important;cursor:hand}.account-card .balances{margin:0;padding:0;list-style:none}.account-card .account-image{padding-right:.5rem}.card:hover{border:none}.action-sheet::after,.reactTooltip.type-dark.place-bottom:after{border-bottom-color:#7e7e7e}.card a>div:first-child{text-align:center;padding:5px}.account-left-panel .account-buttons-row .button{min-width:4.5rem}.account-info .my-account-label{font-size:90%}.account-left-menu{margin-left:1.1rem!important}.account-left-menu>li>a{padding-left:1.75rem!important;border-left:2px solid transparent}body{color:#e0e0e0;background-color:#2a2a2a}hr{border-color:#6a6a6a}a{color:#aeabff}a:active,a:focus,a:hover{color:#c2bfff}label,label>span{color:#adadad}.label.success{color:#50D2C2;border-color:#50D2C2}.label.info{color:#A0D3E8;border-color:#A0D3E8}.label.warning{color:#FCAB53;border-color:#FCAB53}.label.alert,.label.cancel{color:#E3745B;border-color:#E3745B}.notification,.notification-dismiss{color:#e0e0e0!important;background-color:#7e7e7e!important}.notification-success{border-left-color:#50D2C2!important}.action-sheet{color:#fff;background-color:#7e7e7e}.action-sheet>ul>li>a{color:#fff;border-top-color:#3f3f3f}.action-sheet>ul>li>a:hover{color:#fff;background-color:#898989}.reactTooltip.type-dark{color:#fff;background-color:#7e7e7e}.reactTooltip.type-dark.place-top:after{border-top-color:#7e7e7e}.page-layout .left-column,.page-layout .left-column-2,.page-layout .right-column{border-top-color:#2a2a2a;border-bottom-color:#2a2a2a}.reactTooltip.type-dark.place-right:after{border-right-color:#7e7e7e}.reactTooltip.type-dark.place-left:after{border-left-color:#7e7e7e}.json-inspector__key{color:#adadad!important}h1,h2,h3,h4,h5,h6{color:#e0e0e0}.modal{color:#fff;background-color:#6a6a6a}.footer{color:#adadad;background-color:#3f3f3f}.panel-left{color:#fff;background-color:#6a6a6a}.panel-left .block-list li>a{color:#fff}.panel-left .block-list li>a:hover{background-color:#606060}.page-layout,.tabs{background-color:#2a2a2a}.tabs{color:#adadad}.page-layout .left-column{background-color:#3f3f3f}.page-layout .left-column-2{background-color:#202020}.page-layout .main-content{background-color:#2a2a2a}.page-layout .right-column{background-color:#202020}.transfer-top{background-color:#6a6a6a}.transfer-top label,.transfer-top label>span{color:#fff}.button{background-color:#8c88ff}.button:active,.button:focus,.button:hover{background-color:#a09cff!important}.button.outline{color:#adadad}.button.outline:hover{color:#fff;border-color:#fff}.button.secondary{color:#444;background-color:#999}.button.secondary:active,.button.secondary:focus,.button.secondary:hover{color:#4e4e4e!important;background-color:#a3a3a3!important}.header .button{background-color:#3f3f3f}.grp-menu-item button:active,.grp-menu-item button:focus,.grp-menu-item button:hover{background-color:#4c4c4c!important}.header .logo{color:#adadad}.card,.card .card-divider,.card a{color:#e0e0e0}.card{background-color:#3f3f3f}.card:hover{background-color:#494949}.card:hover>h4{background-color:#747474}.card .card-divider,.card>h4{background-color:#6a6a6a}.table>thead>tr>th{border-bottom:2px solid #444;color:#adadad}.block-list li,.table>tbody>tr>td{border-bottom:1px solid #444}.table .table-hover>tbody>tr:hover>th,.table.table-hover>tbody>tr:hover>td{background-color:#343434}.block-list{color:#e0e0e0}.block-list li>a{color:#adadad}.block-list li select:hover,.block-list li.active>a,.block-list li>a:hover,.block-list li>label:hover{color:#fff;background-color:#343434}.block-list li:first-child{border-top:1px solid #444}.block-list header{color:#adadad}.has-error,div.has-error>label,div.has-error>label>span{color:#E3745B}.has-error input,.has-error select,.has-error textarea,div.has-error>input,div.has-error>input:focus,div.has-error>input:hover{border-color:#E3745B}input[type=search],input[type=search]:active,input[type=search]:focus,input[type=search]:hover,input[type=text],input[type=text]:active,input[type=text]:focus,input[type=text]:hover,input[type=password],input[type=password]:active,input[type=password]:focus,input[type=password]:hover,input[type=email],input[type=email]:active,input[type=email]:focus,input[type=email]:hover,input[type=number],input[type=number]:active,input[type=number]:focus,input[type=number]:hover,select,select:active,select:focus,select:hover,textarea,textarea:active,textarea:focus,textarea:hover{background-color:#e0e0e0}input[type=search]:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#fff}.tabs{border-bottom-color:#444}.tabs>.tab-item{color:#adadad}.tabs>.tab-item.is-active{color:#e0e0e0;border-bottom-color:#8c88ff}.tabs>.tab-item:active,.tabs>.tab-item:focus,.tabs>.tab-item:hover{color:#e0e0e0}.depthchart,.depthchart:hover{background-color:#2a2a2a}.depthchart.area{color:#FFF}td.orderHistoryAsk{color:#E3745B;font-weight:700}td.orderHistoryBid{color:#50D2C2;font-weight:700}.account-left-panel h5{color:#e0e0e0}.account-left-panel h6{color:#adadad}.account-left-panel .my-account h5{color:#A0D3E8}.account-left-menu>li select:hover,.account-left-menu>li>a:hover,.account-left-menu>li>label:hover{color:#fff;background-color:#3f3f3f}.account-left-menu>li>a.active{color:#fff;background-color:#494949;border-left-color:#7874ff}.pagination{background-color:#3f3f3f}.invoice .item-description{color:#adadad}.facolor-success{color:#50D2C2}.facolor-alert{color:#E3745B}.facolor-warning{color:#FCAB53}.facolor-info{color:#A0D3E8}.facolor-error{color:#E3745B}.facolor-fee{color:#deb869}.account-selector .error-area{color:#E3745B}.account-selector .right-label{float:right;color:#adadad}.ps-container{overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;border-radius:4px;-webkit-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0;height:8px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;border-radius:4px;-webkit-transition:background-color .2s linear;transition:background-color .2s linear;right:0;width:8px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}textarea#console_input{width:100%;color:#fff;background-color:#000;border-color:#000;min-height:35px;height:35px}.console_div,code{margin-right:10px}.pagination{display:inline-block;padding:1rem;margin:20px 0}.pagination>li{padding:1rem;display:inline;border:0 solid #ddd;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pagination>li:first-child{margin-left:.2rem;cursor:pointer}.pagination>li:nth-child(2){margin-right:0}.pagination>li:last-child{margin-right:.2rem;margin-left:0;cursor:pointer}.pagination>li>input{display:inline;width:4rem;margin:0;border:none}.existing-accounts-select{height:150px}#unclaimed_balance_rows{max-height:400px;overflow-y:auto}a{-webkit-transition:all .3s ease 0s;transition:all .3s ease 0s}.error{color:red}.reactTooltip{z-index:10000}.no-overflow{overflow:hidden}.no-padding{padding:0!important}.no-margin{margin:0!important}.center-content>*{margin-left:auto;margin-right:auto}.monospace{font-family:"Courier New",Courier,monospace}label,label>span{font-family:RobotoCondensed-Regular,arial,sans-serif;text-transform:uppercase}.json-inspector__key,.json-inspector__value{font-family:"Lucida Console",Monaco,monospace!important;text-transform:none}.block-button{display:block}.button,button{font-family:RobotoCondensed-Regular,arial,sans-serif;text-transform:uppercase;-webkit-transition:all .3s ease 0s!important;transition:all .3s ease 0s!important;margin:0}.button.outline,button.outline{padding-top:.5rem;padding-bottom:.5rem;background:0 0;border:1px solid #555}.button.outline:active,.button.outline:focus,.button.outline:hover,button.outline:active,button.outline:focus,button.outline:hover{background:0 0!important}.notification{border-radius:0!important;top:50px!important;border-top:none!important;border-right:none!important;border-bottom:none!important;border-left-width:4px!important;border-left-style:solid!important;padding:1rem!important;font-size:100%!important}.content-block>h3,.page-header h3{font-family:Roboto-Light,arial,sans-serif;font-size:2rem}.notification>.notification-message{word-break:break-all}.content-block{margin-bottom:2rem}.content-block>h3{border-bottom:1px solid #444;margin-top:0;padding-bottom:.5rem;margin-bottom:.5rem}.content-block .actions{padding:1rem 0}.no-border-bottom{border-bottom:none!important}.page-header{margin-bottom:2rem;border-bottom:1px solid #444}.page-header h1,.page-header h3{margin:0;padding:1rem 0}.page-header h1+h3{padding-top:0}table>tbody>tr.control-row>td{padding-top:1rem;border-bottom:none;vertical-align:middle}table>tbody>tr.control-row>td input{display:inline-block;padding-top:0;padding-bottom:0;margin-right:8px!important}table>tbody>tr.control-row>td>label{margin:0}table>tbody>tr.control-row>td>input{margin-right:2rem!important}.modal{max-width:700px;border-radius:0}div.modal{overflow:visible!important}.overflow-visible{overflow:visible}.full-width-content>*{width:100%}.op-table>tbody>tr>td:first-child{min-width:12rem}.button-group>.button{margin:0 1rem 1rem 0}.empty-identicon{border:1px solid #008CBA}div.disabled *{opacity:.9!important;cursor:default!important;pointer-events:none!important}.icon>svg,span.icon{width:1rem;height:1rem}.icon-2x>svg,span.icon-2x{width:2rem;height:2rem}.icon-3x>svg,span.icon-3x{width:3rem;height:3rem}.icon-4x>svg,span.icon-4x{width:4rem;height:4rem}.icon-5x>svg,span.icon-5x{width:5rem;height:5rem;margin:24px 0}.icon-10x>svg,span.icon-10x{width:10rem;height:10rem;margin:24px 0}.icon.fill-black>svg>path{fill:#000}@charset "UTF-8";.json-inspector,.json-inspector__selection{font:14px/1.4 Consolas,monospace}.json-inspector__leaf{padding-left:10px}.json-inspector__line{display:block;position:relative;cursor:default}.json-inspector__line:after{content:'';position:absolute;top:0;left:-200px;right:-50px;bottom:0;z-index:-1;pointer-events:none}.json-inspector__line:hover:after{background:rgba(0,0,0,.06)}.json-inspector__leaf_composite>.json-inspector__line{cursor:pointer}.json-inspector__flatpath,.json-inspector__radio{display:none}.json-inspector__value{margin-left:5px}.json-inspector__search{min-width:300px;margin:0 10px 10px 0;padding:2px}.json-inspector__key{color:#505050}.json-inspector__not-found,.json-inspector__value_helper,.json-inspector__value_null{color:#b0b0b0}.json-inspector__value_string{color:#798953}.json-inspector__value_boolean{color:#75b5aa}.json-inspector__value_number{color:#d28445}.json-inspector__hl{background:#ff0;box-shadow:0 -1px 0 2px #ff0;border-radius:2px}.json-inspector__show-original{display:inline-block;padding:0 6px;color:#666;cursor:pointer}.json-inspector__show-original:hover{color:#111}.json-inspector__show-original:before{content:'⥂'}.json-inspector__show-original:hover:after{content:' expand'}.left-td,.right-td{text-align:left}.left-td{min-width:7em;padding-right:1em}.market-layout>.grid-block{padding:.25rem!important}.market-content{padding-left:5px!important;padding-right:5px!important}[class*=block-grid-]>li{height:auto;padding:0 .625em 1.25em}td.orderHistoryBid>span.price-integer{font-weight:700;color:#50D2C2}td.orderHistoryBid>span.price-decimal{color:#e0e0e0;font-size:90%;opacity:.6}td.orderHistoryAsk>span.price-integer{font-weight:700;color:#E3745B}td.orderHistoryAsk>span.price-decimal{color:#e0e0e0;font-size:90%;opacity:.6}.order-table{width:100%}.order-table>caption{padding-bottom:1.25rem}.order-table>thead>tr>th{font-size:.9rem}.order-table>tbody>tr>td{font-size:.75rem;border:none}.my-orders{width:48%!important;display:inline-table}p.order-table-title{display:none}.notification,.notification.alert,.notification.cancel,.notification.info,.notification.success,.notification.warning{font-size:.75rem}.ask-total,.bid-total{font-size:90%;position:absolute}.backingWarning{color:#ff0}.backingError{color:red}.buy-form,.sell-form{padding-top:.25rem!important;padding-left:1rem!important;padding-right:1rem!important}.buySellButton{float:right}.buy{background-color:#50D2C2!important}.sell{background-color:#E3745B!important}#market-charts>div>div.tabs{margin-bottom:.25rem}#market-charts>div>div.tabs .tab-item{padding-top:.1rem}.left-order-book{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.left-order-book table{width:100%}.left-order-book table th{padding-top:4px!important;padding-bottom:4px!important}.left-order-book>.table-container{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:100%}.left-order-book>.spread{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;width:100%;padding:.25rem 0;border-top:1px solid #777;border-bottom:1px solid #777}.bid-total{top:41px;left:25px;color:#50D2C2}.ask-total{top:40px;right:25px;color:#E3745B}.chart-label{z-index:5;position:absolute;right:0;font-size:15px;border:1px solid #000;vertical-align:middle}.buy-sell-info{font-size:90%;margin-bottom:5px}a.order-cancel{font-size:80%;letter-spacing:2px;padding-top:.01rem;padding-bottom:.01rem;margin:0}.market-stats>li{display:inline-block;padding-right:.5rem}.market-stats .stat{text-align:left;font-size:12px;overflow:hidden;padding:5px 0}.market-stats .stat .value{font-size:12px;color:#000;letter-spacing:normal}.stats{list-style:none;overflow:hidden;text-align:right;margin:0;padding:0;min-height:63px}.stats .stat{padding:0 10px;height:100%}.stats .stat:first-child{border-left:none}.stats .stat .value{font-size:120%;color:#FFF;letter-spacing:1px}.stats .stat em{color:#888;display:block}.market-symbol{font-weight:700;font-size:110%;padding-left:1rem;padding-right:1.1rem;padding-top:1.3rem}.bucket-button{text-transform:none!important;background-color:#616161!important;font-size:.75rem!important}ol.prog-tracker{margin:0;padding:0}ol.prog-tracker li{display:inline-block;text-align:center;line-height:2rem;padding-left:.75rem;padding-right:.75rem}ol.prog-tracker li.prog-tracker-current,ol.prog-tracker li.prog-tracker-done{color:#000;border-bottom:4px solid #9acd32}ol.prog-tracker li.prog-tracker-todo{color:silver;border-bottom:4px solid silver}.prog-tracker-current{font-weight:700}.prog-tracker-todo{color:#8B8B8B}div>div.asset-list:first-child{padding-top:.25rem}div>div.asset-list{padding-bottom:.25rem} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlUm9vdCI6IiJ9*/ \ No newline at end of file diff --git a/programs/full_web_node/web/app.js b/programs/full_web_node/web/app.js deleted file mode 100644 index 882831d7..00000000 --- a/programs/full_web_node/web/app.js +++ /dev/null @@ -1,64 +0,0 @@ -webpackJsonp([0],[function(e,t,a){"use strict";a(1),window.Intl?a(195):a.e(1,function(e){var t=[e(842)];(function(t){t.__addLocaleData(e(847)),window.Intl=t,e(195)}).apply(null,t)})},function(e,t,a){"use strict";a(2),a(6),a(7),a(8),a(176),a(177);var r=["Roboto-Bold","Roboto-Light","Roboto-Regular","RobotoCondensed-Regular"],n=["eot","svg","ttf","woff"],o=!0,i=!1,s=void 0;try{for(var l,u=r[Symbol.iterator]();!(o=(l=u.next()).done);o=!0){var c=l.value,d=!0,f=!1,p=void 0;try{for(var m,h=n[Symbol.iterator]();!(d=(m=h.next()).done);d=!0){var y=m.value;a(178)("./"+c+"."+y)}}catch(g){f=!0,p=g}finally{try{!d&&h["return"]&&h["return"]()}finally{if(f)throw p}}}}catch(g){i=!0,s=g}finally{try{!o&&u["return"]&&u["return"]()}finally{if(i)throw s}}},function(e,t){},,function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;to;)p(n,r=e[o++])&&(~D(i,r)||i.push(r));return i}}function n(){}function o(e,t,a){if(!(t in F)){for(var r=[],n=0;t>n;n++)r[n]="a["+n+"]";F[t]=Function("F,a","return new F("+r.join(",")+")")}return F[t](e,a)}function i(e){return function(t,a){_(t);var r=k(this),n=j(r.length),o=e?n-1:0,i=e?-1:1;if(arguments.length<2)for(;;){if(o in r){a=r[o],o+=i;break}if(o+=i,e?0>o:o>=n)throw TypeError("Reduce of empty array with no initial value")}for(;e?o>=0:n>o;o+=i)o in r&&(a=t(a,r[o],o,this));return a}}function s(e){return e>9?e:"0"+e}var l=a(13),u=a(14),c=a(15),d=a(16),f=a(18),p=a(20),m=a(21),h=a(22),y=a(27),g=a(28),b=a(26)("__proto__"),v=a(19),w=a(36),_=a(33),k=a(29),E=a(35),x=a(37),j=a(34),O=a(30),z=Object.prototype,S=[],A=S.slice,P=S.join,C=l.setDesc,B=l.getDesc,T=l.setDescs,q=!1,D=a(38)(!1),N=g(0),M=g(1),I=g(2),R=g(3),L=g(4),F={},U=a(39)(/^\s*([\s\S]*\S)?\s*$/,"$1");if(!u){try{q=8==C(f("div"),"x",{get:function(){return 8}}).x}catch(H){}l.setDesc=function(e,t,a){if(q)try{return C(e,t,a)}catch(r){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(w(e)[t]=a.value),e},l.getDesc=function(e,t){if(q)try{return B(e,t)}catch(a){}return p(e,t)?c(!z.propertyIsEnumerable.call(e,t),e[t]):void 0},l.setDescs=T=function(e,t){w(e);for(var a,r=l.getKeys(t),n=r.length,o=0;n>o;)l.setDesc(e,a=r[o++],t[a]);return e}}h(h.S+h.F*!u,"Object",{getOwnPropertyDescriptor:l.getDesc,defineProperty:l.setDesc,defineProperties:T});var W="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),K=W.concat("length","prototype"),V=W.length,G=function(){var e,t=f("iframe"),a=V,r=">";for(t.style.display="none",d.appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("