has finished.
  ASIO_CHECK(ioc.stopped());
  ASIO_CHECK(count == 1);
}

ASIO_TEST_SUITE
(
  "strand",
  ASIO_TEST_CASE(strand_test)
  ASIO_COMPILE_TEST_CASE(strand_conversion_test)
  ASIO_TEST_CASE(strand_query_test)
  ASIO_TEST_CASE(strand_execute_test)
)
//
// serial_port.cpp
// ~~~~~~~~~~~~~~~
//
// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//

// Disable autolinking for unit tests.
#if !defined(BOOST_ALL_NO_LIB)
#define BOOST_ALL_NO_LIB 1
#endif // !defined(BOOST_ALL_NO_LIB)

// Test that header file is self-contained.
#include "asio/serial_port.hpp"

#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
#include "unit_test.hpp"

//------------------------------------------------------------------------------

// serial_port_compile test
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
// The following test checks that all public member functions on the class
// serial_port compile and link correctly. Runtime failures are ignored.

namespace serial_port_compile {

struct write_some_handler
{
  write_some_handler() {}
  void operator()(const asio::error_code&, std::size_t) {}
#if defined(ASIO_HAS_MOVE)
  write_some_handler(write_some_handler&&) {}
private:
  write_some_handler(const write_some_handler&);
#endif // defined(ASIO_HAS_MOVE)
};

struct read_some_handler
{
  read_some_handler() {}
  void operator()(const asio::error_code&, std::size_t) {}
#if defined(ASIO_HAS_MOVE)
  read_some_handler(read_some_handler&&) {}
private:
  read_some_handler(const read_some_handler&);
#endif // defined(ASIO_HAS_MOVE)
};

void test()
{
#if defined(ASIO_HAS_SERIAL_PORT)
  using namespace asio;

  try
  {
    io_context ioc;
    const io_context::executor_type ioc_ex = ioc.get_executor();
    char mutable_char_buffer[128] = "";
    const char const_char_buffer[128] = "";
    serial_port::baud_rate serial_port_option;
    archetypes::lazy_handler lazy;
    asio::error_code ec;

    // basic_serial_port constructors.

    serial_port port1(ioc);
    serial_port port2(ioc, "null");
    serial_port::native_handle_type native_port1 = port1.native_handle();
#if defined(ASIO_MSVC) && (_MSC_VER < 1910)
    // Skip this on older MSVC due to mysterious ambiguous overload errors.
#else
    serial_port port3(ioc, native_port1);
#endif

    serial_port port4(ioc_ex);
    serial_port port5(ioc_ex, "null");
    serial_port::native_handle_type native_port2 = port1.native_handle();
    serial_port port6(ioc_ex, native_port2);

#if defined(ASIO_HAS_MOVE)
    serial_port port7(std::move(port6));
#endif // defined(ASIO_HAS_MOVE)

    // basic_serial_port operators.

#if defined(ASIO_HAS_MOVE)
    port1 = serial_port(ioc);
    port1 = std::move(port2);
#endif // defined(ASIO_HAS_MOVE)

    // basic_io_object functions.

    serial_


f)
                horizontalLineToRelative(1.25f)
                curveToRelative(1.14f, 0.0f, 2.08f, 0.84f, 2.23f, 1.94f)
                lineToRelative(0.01f, 0.16f)
                lineToRelative(0.01f, 0.15f)
                verticalLineToRelative(9.0f)
                curveToRelative(0.0f, 1.2f, -0.93f, 2.17f, -2.1f, 2.24f)
                lineToRelative(-0.15f, 0.01f)
                lineTo(17.0f, 20.0f)
                verticalLineToRelative(-2.0f)
                horizontalLineToRelative(0.25f)
                arcToRelative(0.75f, 0.75f, 0.0f, false, false, 0.0f, -1.5f)
                lineTo(17.0f, 16.5f)
                lineTo(17.0f, 15.0f)
                horizontalLineToRelative(0.25f)
                arcToRelative(0.75f, 0.75f, 0.0f, false, false, 0.0f, -1.5f)
                lineTo(17.0f, 13.5f)
                lineTo(17.0f, 11.0f)
                horizontalLineToRelative(0.75f)
                curveToRelative(0.41f, 0.0f, 0.75f, -0.34f, 0.75f, -0.75f)
                lineTo(18.5f, 6.5f)
                close()
                moveTo(9.5f, 4.4f)
                curveToRelative(-0.38f, -0.26f, -0.83f, -0.4f, -1.3f, -0.4f)
                lineTo(4.1f, 4.0f)
                arcTo(2.25f, 2.25f, 0.0f, false, false, 2.0f, 6.26f)
                lineTo(2.0f, 9.0f)
                lineTo(8.31f, 9.0f)
                curveToRelative(0.1f, -0.02f, 0.2f, -0.06f, 0.3f, -0.11f)
                lineToRelative(0.08f, -0.06f)
                lineToRelative(3.06f, -2.56f)
                lineToRelative(-2.1f, -1.75f)
                lineToRelative(-0.16f, -0.12f)
                close()
            }
        }
        return _folderZip!!
    }

private var _folderZip: ImageVector? = null
package io.github.composegears.valkyrie.parser.unified

import io.github.composegears.valkyrie.parser.kmp.svg.SVGParser
import io.github.composegears.valkyrie.parser.kmp.xml.XmlToImageVectorParser
import io.github.composegears.valkyrie.parser.unified.ext.readText
import io.github.composegears.valkyrie.parser.unified.model.IconParserOutput
import io.github.composegears.valkyrie.parser.unified.model.IconType
import io.github.composegears.valkyrie.parser.unified.model.IconType.SVG
import io.github.composegears.valkyrie.parser.unified.model.IconType.XML
import io.github.composegears.valkyrie.parser.unified.util.IconNameFormatter
import kotlinx.io.files.Path

actual object SvgXmlParser {

    actual val availableParsers: List<ParserType> = listOf(ParserType.Kmp)

    actual fun toIrImageVector(
        parser: ParserType,
        path: Path,
    ): IconParserOutput {
        val iconType = IconType.from(path) ?: error("$path must be an SVG or XML file.")
        val fileName = IconNameFormatter.format(name = path.name)

        val irImageVector = when (parser) {
            ParserType.Jvm -> error("Jvm parser not supported on WASM")


쉬르카 울프러너","야수 관리인"},
[9987] = {"쇼자미","야수 관리인"},
[9988] = {"손차","야수 관리인"},
[9989] = {"리나 하스토브","야수 관리인"},
[9990] = {"란티가",nil},
[9996] = {"위나 해저드",nil},
[9997] = {"스프래글 프록",nil},
[9998] = {"쉬즐",nil},
[9999] = {"링고 스타",nil},
[10000] = {"아루갈",nil},
[10016] = {"오염된 쥐",nil},
[10017] = {"오염된 바퀴벌레",nil},
[10036] = {"담쟁이 마을 집행자",nil},
[10037] = {"레이크샤이어 경비병",nil},
[10038] = {"어둠의순찰대 경비병","어둠의 순찰대"},
[10040] = {"파수꾼 고리쉬",nil},
[10041] = {"여왕 고리쉬",nil},
[10042] = {"오염된 호랑이",nil},
[10043] = {"리블리의 친구",nil},
[10045] = {"커크 맥스웰","야수 관리인"},
[10046] = {"비세인 플린트해머","야수 관리인"},
[10047] = {"마이클","야수 관리인"},
[10048] = {"게렉","야수 관리인"},
[10049] = {"헥크루","야수 관리인"},
[10050] = {"세이크와","야수 관리인"},
[10051] = {"세리아드네","야수 관리인"},
[10052] = {"말루레시안","야수 관리인"},
[10053] = {"안야 마울레이","야수 관리인"},
[10054] = {"불루그","야수 관리인"},
[10055] = {"모르가누스","야수 관리인"},
[10056] = {"알랏신","야수 관리인"},
[10057] = {"시어도어 몽클레어","야수 관리인"},
[10058] = {"그레스","야수 관리인"},
[10059] = {"안타리우스","야수 관리인"},
[10060] = {"그림스탁","야수 관리인"},
[10061] = {"킬리움 바울더토","야수 관리인"},
[10062] = {"스티븐 블랙","야


d in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

namespace Mono.Cecil {

	public enum AssemblyKind {
		Dll,
		Console,
		Windows
	}
}


pub const PERF_FILTER: u32 = 9u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub struct PERF_INSTANCE_DEFINITION {
    pub ByteLength: u32,
    pub ParentObjectTitleIndex: u32,
    pub ParentObjectInstance: u32,
    pub UniqueID: i32,
    pub NameOffset: u32,
    pub NameLength: u32,
}
impl ::core::marker::Copy for PERF_INSTANCE_DEFINITION {}
impl ::core::clone::Clone for PERF_INSTANCE_DEFINITION {
    fn clone(&self) -> Self {
        *self
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub struct PERF_INSTANCE_HEADER {
    pub Size: u32,
    pub InstanceId: u32,
}
impl ::core::marker::Copy for PERF_INSTANCE_HEADER {}
impl ::core::clone::Clone for PERF_INSTANCE_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_INVERSE_COUNTER: u32 = 16777216u32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_MAX_INSTANCE_NAME: u32 = 1024u32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub type PERF_MEM_ALLOC = ::core::option::Option<unsafe extern "system" fn(allocsize: usize, pcontext: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub type PERF_MEM_FREE = ::core::option::Option<unsafe extern "system" fn(pbuffer: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void)>;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_METADATA_MULTIPLE_INSTANCES: i32 = -2i32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_METADATA_NO_INSTANCES: i32 = -3i32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_MULTI_COUNTER: u32 = 33554432u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub struct PERF_MULTI_COUNTERS {
    pub dwSize: u32,
    pub dwCounters: u32,
}
impl ::core::marker::Copy for PERF_MULTI_COUNTERS {}
impl ::core::clone::Clone for PERF_MULTI_COUNTERS {
    fn clone(&self) -> Self {
        *self
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub struct PERF_MULTI_INSTANCES {
    pub dwTotalSize: u32,
    pub dwInstances: u32,
}
impl ::core::marker::Copy for PERF_MULTI_INSTANCES {}
impl ::core::clone::Clone for PERF_MULTI_INSTANCES {
    fn clone(&self) -> Self {
        *self
    }
}
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_NO_INSTANCES: i32 = -1i32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_NO_UNIQUE_ID: i32 = -1i32;
#[doc = "*Required features: 'Win32_System_Performance'*"]
pub const PERF_NUMBER_DECIMAL: u32 = 65536u32;
#[


D0
		ADD.L D0,D2
		MOVE.L D2,cur_lpend(A1)
		MOVE.W #-1,sam_lplength(A1)
.nosetnewloopl	RTS

; Send 1 voice to the dsp.

send_voice	MOVEQ #0,D0
		MOVE.W sam_vol(A1),d0
		CMP.W #$40,D0
		BLS.S .volok
		MOVEQ #$40,D0
.volok		SWAP D0
.sync		BTST #1,-5(A6)			;;;
		BEQ.S .sync			; send volume
		MOVE.L D0,-3(A6)		;;;
.wait1		BTST #1,-5(A6)			;;;
		BEQ.S .wait1			; send
		CLR.B -2(A6)			;   period
		MOVE.W sam_period(A1),-1(a6)	;;;
.wait2		BTST #0,-5(A6)			;
		BEQ.S .wait2			;
		MOVE.W -1(A6),D5		; get no. of samples
		BTST D6,shadow_dmacon+1		; voice dma on?
		BEQ dmaisoff			; no, then send zeros...
		MOVE.L cur_end(A1),A2
		MOVE.L cur_lpend(A1),A3
		MOVE.L cur_pos(A1),A0		; current voice address
		MOVE.L cur_start(A1),A4
		MOVE.L cur_lpstart(A1),A5
		MOVE.B cur_lpflag(A1),D3
		CLR.W -2(a6)			; clear top 16 msbits
do_vce		TST.B D3		; sample looping?
		BNE.S in_loop
in_main		CMP.L A4,A2		; sample start = sample end?
		BLE.S vce_isoffcont
		BRA.S vc_main_cont
in_loop		CMP.L A5,A3
		BLE.S vce_isoffcont
		BRA.S vclp_cont
vc_main_lp	MOVE.B (A0)+,(A6)
vc_main_cont	CMP.L A2,A0
		DBGE D5,vc_main_lp
		BLT.S vce_done
hit_looppoint	ST D3
		MOVE.L A5,A0
		CMP.L A5,A3
		BEQ.S vce_isoffcont
		BRA.S vclp_cont
vc_loop_lp	MOVE.B (A0)+,(A6)
vclp_cont	CMP.L A3,A0
		DBGE D5,vc_loop_lp
		BLT.S vce_done
vclp_resetlp	MOVE.L A5,A0
		DBF D5,vc_loop_lp
vce_done	MOVE.B (A0),(A6)
vce_done1	MOVE.B D3,cur_lpflag(A1)
		MOVE.L A0,cur_pos(A1)	; store new address
		RTS

dmaisoff	BRA.S vce_isoffcont
vce_isoff
.wait		BTST.B #1,-5(A6)
		BEQ.S .wait
		MOVE.B D7,(A6)
vce_isoffcont	DBF D5,vce_isoff
.wait		BTST.B #1,-5(A6)
		BEQ.S .wait
		MOVE.B D7,(A6)
		BRA.S vce_done1

; Set DMA to buffer(buffer len based on TEMPO)

Set_DMA		MOVEM.L


" : "FakeXrmEasy_OrganizationServiceFaultQueryBuilderNoAttributeException.htm", "coveredLines" : 8, "uncoveredLines" : 1, "coverableLines" : 9, "totalLines" : 27, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.PullRequestException", "reportPath" : "FakeXrmEasy_PullRequestException.htm", "coveredLines" : 6, "uncoveredLines" : 3, "coverableLines" : 9, "totalLines" : 26, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmFakedContext", "reportPath" : "FakeXrmEasy_XrmFakedContext.htm", "coveredLines" : 1140, "uncoveredLines" : 89, "coverableLines" : 1229, "totalLines" : 2112, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 226, "totalBranches" : 265, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmFakedPluginExecutionContext", "reportPath" : "FakeXrmEasy_XrmFakedPluginExecutionContext.htm", "coveredLines" : 18, "uncoveredLines" : 15, "coverableLines" : 33, "totalLines" : 54, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmFakedRelationship", "reportPath" : "FakeXrmEasy_XrmFakedRelationship.htm", "coveredLines" : 9, "uncoveredLines" : 17, "coverableLines" : 26, "totalLines" : 69, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmFakedTracingService", "reportPath" : "FakeXrmEasy_XrmFakedTracingService.htm", "coveredLines" : 11, "uncoveredLines" : 0, "coverableLines" : 11, "totalLines" : 29, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmFakedWorkflowContext", "reportPath" : "FakeXrmEasy_XrmFakedWorkflowContext.htm", "coveredLines" : 10, "uncoveredLines" : 18, "coverableLines" : 28, "totalLines" : 72, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 0, "totalBranches" : 0, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
    {  "name" : "FakeXrmEasy.XrmOrderByAttributeComparer", "reportPath" : "FakeXrmEasy_XrmOrderByAttributeComparer.htm", "coveredLines" : 21, "uncoveredLines" : 27, "coverableLines" : 48, "totalLines" : 80, "coverageType" : "LineCoverage", "methodCoverage" : "-", "coveredBranches" : 11, "totalBranches" : 28, "lineCoverageHistory" : [], "branchCoverageHistory" : [] },
  ]},
];

var translations = {
'lineCoverage': 'LineCoverage',
'noGrouping': 'No grouping',
'byAssembly': 'By assembly',
'byNamespace': 'By namespace, Level:',
'all': 'All',


-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}/*!
 *   AdminLTE v2.4.0
 *   Author: Almsaeed Studio
 *	 Website: Almsaeed Studio <https://adminlte.io>
 *   License: Open source - MIT
 *           Please visit http://opensource.org/licenses/MIT for more information
 */html,body{height:100%}.layout-boxed html,.layout-boxed body{height:100%}body{font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative;overflow-x:hidden;overflow-y:auto}.wrapper:before,.wrapper:after{content:" ";display:table}.wrapper:after{clear:both}.wrapper:before,.wrapper:after{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,0.5);position:relative}.layout-boxed{background:url('../img/boxed-bg.jpg') repeat fixed}.content-wrapper,.main-footer{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer{-webkit-transform:translate(230px, 0);-ms-transform:translate(230px, 0);-o-transform:translate(230px, 0);transform:translate(230px, 0)}}.content-wrapper{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .main-header,.fixed .main-sidebar,.fixed .left-side{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{


0x18
/* 80442F24 0043FD24  38 A0 00 01 */	li r5, 1
/* 80442F28 0043FD28  48 00 6F 71 */	bl func_80449E98
/* 80442F2C 0043FD2C  48 00 00 38 */	b lbl_80442F64
lbl_80442F30:
/* 80442F30 0043FD30  3C 04 C0 00 */	addis r0, r4, 0xc000
/* 80442F34 0043FD34  28 00 00 00 */	cmplwi r0, 0
/* 80442F38 0043FD38  41 82 00 1C */	beq lbl_80442F54
/* 80442F3C 0043FD3C  3C 60 80 51 */	lis r3, lbl_805089E8@ha
/* 80442F40 0043FD40  3C A0 80 51 */	lis r5, lbl_80508B48@ha
/* 80442F44 0043FD44  38 63 89 E8 */	addi r3, r3, lbl_805089E8@l
/* 80442F48 0043FD48  38 80 04 FE */	li r4, 0x4fe
/* 80442F4C 0043FD4C  38 A5 8B 48 */	addi r5, r5, lbl_80508B48@l
/* 80442F50 0043FD50  4B FE 55 69 */	bl __assert
lbl_80442F54:
/* 80442F54 0043FD54  9B 79 00 2F */	stb r27, 0x2f(r25)
/* 80442F58 0043FD58  80 19 00 08 */	lwz r0, 8(r25)
/* 80442F5C 0043FD5C  64 00 00 04 */	oris r0, r0, 4
/* 80442F60 0043FD60  90 19 00 08 */	stw r0, 8(r25)
lbl_80442F64:
/* 80442F64 0043FD64  7F E3 FB 78 */	mr r3, r31
/* 80442F68 0043FD68  4B F9 41 69 */	bl OSRestoreInterrupts
lbl_80442F6C:
/* 80442F6C 0043FD6C  83 9C 00 04 */	lwz r28, 4(r28)
lbl_80442F70:
/* 80442F70 0043FD70  28 1C 00 00 */	cmplwi r28, 0
/* 80442F74 0043FD74  40 82 FE F8 */	bne lbl_80442E6C
/* 80442F78 0043FD78  7F A3 EB 78 */	mr r3, r29
/* 80442F7C 0043FD7C  4B F9 41 55 */	bl OSRestoreInterrupts
/* 80442F80 0043FD80  38 60 00 01 */	li r3, 1
/* 80442F84 0043FD84  48 00 00 08 */	b lbl_80442F8C
lbl_80442F88:
/* 80442F88 0043FD88  38 60 00 00 */	li r3, 0
lbl_80442F8C:
/* 80442F8C 0043FD8C  39 61 00 30 */	addi r11, r1, 0x30
/* 80442F90 0043FD90  4B F6 AC 05 */	bl _restgpr_24
/* 80442F94 0043FD94  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80442F98 0043FD98  7C 08 03 A6 */	mtlr r0
/* 80442F9C 0043FD9C  38 21 00 30 */	addi r1, r1, 0x30
/* 80442FA0 0043FDA0  4E 80 00 20 */	blr

.global func_80442FA4
func_80442FA4:
/* 80442FA4 0043FDA4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80442FA


-- Copyright 2014-2021 Sandor Balazsi <sandor.balazsi@gmail.com>
-- Licensed to the public under the GNU General Public License.

local socket = require "socket"
local nixio = require "nixio"
local class = require "luci.util".class
local array = require "luci.model.cbi.rtorrent.array"

local levels = {
	["TRACE"] = 1, ["DEBUG"] = 2, ["INFO"] = 3, ["WARN"] = 4, ["ERROR"] = 5, ["FATAL"] = 6, ["OFF"] = 7
}

local function timestamp()
	return os.date("%Y-%m-%d %H:%M:%S") .. "," .. tostring("%.3f" % socket.gettime()):match("%.(%d+)")
end

local function message(self, level, ...)
	if levels[level] >= levels[self.level] then
		local line = array()
			:append(timestamp())
			:append("%-5s" % level)
			:append(unpack({...}))
			:join(" ")
		self.fh:lock("lock"


te_class_dict(encode_dict)
    test_df['pred_class'] = y_test_pred
    test_df['pred_proba'] = y_test_proba

    # convert predictions to int
    test_df['pred_class'] = test_df['pred_class'].astype('int')

    pred_class = list(test_df['pred_class'].values)
    pred_labels = [class_dict[x] for x in pred_class]
    test_df['pred_label'] = pred_labels

    final_output = output_prefix + ".txt"
    test_df.to_csv(final_output, sep="\t", header=True, index=True)

if __name__ == '__main__':
    LineArgs = parseArguments()
    main(LineArgs)


s", decorators.Conformance, decorators.WgS390x, func() {
			vmi := libvmops.RunVMIAndExpectLaunch(
				libvmifact.NewAlpine(libvmi.WithWatchdog(v1.WatchdogActionPoweroff, libnode.GetArch())), libvmops.StartupTimeoutSecondsXHuge)

			By("Expecting the VirtualMachineInstance console")
			Expect(console.LoginToAlpine(vmi)).To(Succeed())

			// Watchdog module need to be loaded as it will not be loaded by default for s390x
			if vmi.Spec.Architecture == "s390x" {
				By("Ensuring watchdog module is loaded")
				Expect(console.SafeExpectBatch(vmi, []expect.Batcher{
					&expect.BSnd{S: "modprobe diag288_wdt\n"},
					&expect.BExp{R: ""},
				}, 250)).To(Succeed())

				By("Checking watchdog device presence")
				Expect(console.SafeExpectBatch(vmi, []expect.Batcher{
					&expect.BSnd{S: "ls -l /dev/watchdog\n"},
					&expect.BExp{R: "/dev/watchdog"},
				}, 250)).To(Succeed())
			}

			By("Killing the watchdog device")
			Expect(console.SafeExpectBatch(vmi, []expect.Batcher{
				&expect.BSnd{S: "watchdog -t 2000ms -T 4000ms /dev/watchdog && sleep 5 && killall -9 watchdog\n"},
				&expect.BExp{R: ""},
				&expect.BSnd{S: "echo $?\n"},
				&expect.BExp{R: console.RetValue("0")},
			}, 250)).To(Succeed())

			By("Checking that the VirtualMachineInstance has Failed status")
			Eventually(matcher.ThisVMI(vmi)).WithTimeout(40 * time.Second).WithPolling(time.Second).
				Should(matcher.BeInPhase(v1.Failed))
		})

	})

})
/*
 * This file is part of the KubeVirt project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Copyright The KubeVirt Authors.
 *
 */

package tests_test

import (
	"context"
	"fmt"

	"kubevirt.io/kubevirt/tests/decorators"
	"kubevirt.io/kubevirt/tests/framework/kubevirt"

	"kubevirt.io/kubevirt/tests/testsuite"

	. "github.com/onsi/ginkgo/v2"
	. "github.com/onsi/gomega"
	authv1 "k8s.io/api/authorization/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	authClientV1 "k8s.io/client-go/kubernetes/typed/authorization/v1"

	"kubevirt.io/api/core"

	v1 "kubevirt.io/api/core/v1"
	instancetypeapi "kubevirt.io/api/instancetype"
	pool "kubevirt.io/api/pool"
	snapshotv1 "kubevirt.io/api/snapshot/v1beta1"
)

type rightsEntry struct {
	allowed bool
	verb    string
	role    string
}

func denyModificationsFor(roles ...string) rights {
	return rights{
		Roles: roles,
		Get:   true,
		List:  true


itCount > 0; inx += keyStep {
				keys = append(keys, argv[inx])
				limitCount -= 1
			}
		case "keynum":
			keynumIdx := begin + spec.findKeysKeynumIndex
			if keynumIdx < 0 || keynumIdx > argc {
				log.Panicf("keynumInx wrong. argv=%v, keynumIdx=[%d]", argv, keynumIdx)
			}
			keyCount, err := strconv.Atoi(argv[keynumIdx])
			if err != nil {
				log.PanicError(err)
			}
			firstKey := spec.findKeysKeynumFirstKey
			step := spec.findKeysKeynumKeyStep
			for inx := begin + firstKey; keyCount > 0; inx += step {
				keys = append(keys, argv[inx])
				keyCount -= 1
			}
		default:
			log.Panicf("wrong type: %s", spec.findKeysType)
		}
	}
	return
}
package writer

import (
	"bytes"
	"strconv"
	"sync/atomic"
	"time"

	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/client"
	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/client/proto"
	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/config"
	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/entry"
	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/log"
	"github.com/OpenAtomFoundation/pika/tools/codis2pika/internal/statistics"
)

type authInfo struct {
	address  string
	username string
	password string
	isTls    bool
}

// var authInfoChan chan *authInfo
var authInfoSingle *authInfo
var slotauths map[int]*authInfo
var addressauths map[string]*authInfo

func init() {
	//设置队列长度等于最大重试次数
	slotauths = make(map[int]*authInfo, 1024)
	addressauths = make(map[string]*authInfo, 100)
}

type redisWriter struct {
	client *client.Redis
	DbId   int

	cmdBuffer   *bytes.Buffer
	chWaitReply chan *entry.Entry

	UpdateUnansweredBytesCount uint64 // have sent in bytes
}

func newWriteClientPool(address string, username string, password string, isTls bool) {
	getauthinfo := authInfo{address, username, password, isTls}
	if config.Config.Target.Type != "cluster" {
		authInfoSingle = &getauthinfo
	} else {
		addressauths[address] = &getauthinfo
	}
}

func getWriteConn() *client.Redis {
	authinfo := authInfoSingle
	newclient := client.NewRedisClient(authinfo.address, authinfo.username, authinfo.password, authinfo.isTls)
	return newclient
}

func getClusterWriteConn(slotauths map[int]*authInfo, slots []int) *client.Redis {
	//每条消息只有一个slot
	v := slots[0]
	authinfo := slotauths[v]
	newclient := client.NewRedisClient(authinfo.address, authinfo.username, authinfo.password, authinfo.isTls)
	return newclient
}

func NewRedisWriter(address string, username string, password string, isTls bool) Writer {
	//初始化redisWriter结构体
	rw := new(redisWriter)

	if config.Config.Target.Type != "cluster" {
		//初始化用户信息
		newWriteClientPool(address, username, password, isTls)
		//新建redis client
		rw.client = getWriteConn()
	} else {
		//集群模式直接�


      .sample_iter(&rand::distributions::Standard)
            .take(quiche::MAX_CONN_ID_LEN)
            .collect();
        let server = AsyncConnection::from_connection(
            quiche::accept(&scid, None, &mut server_config().await.unwrap()).unwrap(),
            Endpoint::Server,
            svr_id,
            cli_id,
        );
        let forward = futures::future::try_join(
            direct_packets(client.clone(), server.clone()),
            direct_packets(server.clone(), client.clone()),
        );
        let run_client = client.run();
        let run_server = server.run();
        let _1 = Task::spawn(async move {
            forward.await.unwrap();
        });
        let _2 = Task::spawn(async move {
            run_client.await.unwrap();
        });
        let _3 = Task::spawn(async move {
            run_server.await.unwrap();
        });
        f(client, server).await;
    }
}

#[cfg(test)]
mod test {

    use super::test_util::run_client_server;
    use super::StreamProperties;

    #[fuchsia_async::run_singlethreaded(test)]
    async fn simple_send(run: usize) {
        run_client_server("simple_send", run, |client, server| async move {
            let (mut cli_tx, _cli_rx) = client.alloc_bidi();
            let (_svr_tx, mut svr_rx) = server.bind_id(cli_tx.id());

            cli_tx.send(&[1, 2, 3], false).await.unwrap();
            let mut buf = [0u8; 32];
            let (n, fin) = svr_rx.read(buf.as_mut()).await.unwrap();
            assert_eq!(n, 3);
            assert_eq!(fin, false);
            assert_eq!(&buf[..n], &[1, 2, 3]);
        })
        .await
    }

    #[fuchsia_async::run_singlethreaded(test)]
    async fn send_fin(run: usize) {
        run_client_server("send_fin", run, |client, server| async move {
            let (mut cli_tx, _cli_rx) = client.alloc_bidi();
            let (_svr_tx, mut svr_rx) = server.bind_id(cli_tx.id());

            cli_tx.send(&[1, 2, 3], true).await.unwrap();
            let mut buf = [0u8; 32];
            let (n, fin) = svr_rx.read(buf.as_mut()).await.unwrap();
            assert_eq!(n, 3);
            assert_eq!(fin, true);
            assert_eq!(&buf[..n], &[1, 2, 3]);
        })
        .await
    }

    #[fuchsia_async::run_singlethreaded(test)]
    async fn recv_before_send(run: usize) {
        run_client_server("recv_before_send", run, |client, server| async move {
            let (mut cli_tx, _cli_rx) = client.alloc_bidi();
            let (_svr_tx, mut svr_rx) = server.bind_id(cli_tx.id());

            let mut buf = [0u8; 32];

            let (unpause, pause) = futures::channel::oneshot::channel();
            futures::future::join(
                async move {
                    cli_tx.send(&[1, 2, 3], false).await.unwrap();
                    log::trace!("sent first");
                    pause.await.unwrap();
                    log::trace!("finished pause");
                    cli_tx.send(&[], true).await.unwrap();
                    log::trace!("sent second");
                },
                async move {
                    let (n, fin


(doc.data))
  }

  @Action(desc = "gets the current promo code", roles=[Roles.ALL], verb = Verbs.POST)
  fun argTypeListString(items:List<String>): Notice<String> {
    return Success("ok", msg =items.fold("", { acc, curr -> acc + "," + curr } ))
  }

  @Action(desc = "gets the current promo code", roles=[Roles.ALL], verb = Verbs.POST)
  fun argTypeListInt(items:List<Int>): Notice<String> {
    return Success("ok", msg =items.fold("", { acc, curr -> acc + "," + curr.toString() } ))
  }

  @Action(desc = "gets the current promo code", roles=[Roles.ALL], verb = Verbs.POST)
  fun argTypeMapInt(items:Map<String,Int>): Notice<String> {
    val sortedPairs = items.keys.toList().sortedBy{ k:String -> k }.map{ key -> Pair(key, items[key]) }
    val delimited = sortedPairs.fold("", { acc, curr -> acc + "," + curr.first + "=" + curr.second } )
    return Success("ok", msg =delimited)
  }
}
/**
 <kiit_header>
url: www.kiit.dev
git: www.github.com/slatekit/kiit
org: www.codehelix.co
author: Kishore Reddy
copyright: 2016 CodeHelix Solutions Inc.
license: refer to website and/or github
about: A Kotlin utility library, tool-kit and server backend.

 </kiit_header>
 */
package test.apis

import kotlinx.coroutines.runBlocking
import org.junit.Assert
import org.junit.Test
import kiit.apis.*
import kiit.apis.setup.api
import kiit.apis.setup.routes
import kiit.results.Codes
import kiit.results.Outcome
import test.setup.SampleMiddlewareApi

/**
 * Created by kishorereddy on 6/12/17.
 */

class Api_Middleware_Tests : ApiTestsBase() {

    @Test
    fun can_handle_hooks() {
        val apiMiddleware = TestApiMiddleware()
        val actionMiddleware = TestActionMiddleware()
        val api = SampleMiddlewareApi()
        val policies = listOf(
            "api_test" to apiMiddleware,
            "action_test" to actionMiddleware
        )
        val routes = routes(listOf(api(SampleMiddlewareApi::class, api)))
        val apis = ApiServer(ctx, routes = routes, middleware = policies )
        val r1 = runBlocking { apis.executeAttempt("app", "SampleMiddleware", SampleMiddlewareApi::hi.name, Verb.Post, mapOf(), mapOf()) }
        val r2 = runBlocking { apis.executeAttempt("app", "SampleMiddleware", SampleMiddlewareApi::hello.name, Verb.Post, mapOf(), mapOf()) }

        Assert.assertTrue(apiMiddleware.middlewareHook.size == 2)
        Assert.assertTrue(apiMiddleware.middlewareHook[0].request.path == "app.SampleMiddleware.hi")
        Assert.assertTrue(apiMiddleware.middlewareHook[1].request.path == "app.SampleMiddleware.hello")

        Assert.assertTrue(actionMiddleware.middlewareHook.size == 2)
        Assert.assertTrue(actionMiddleware.middlewareHook[0].request.path == "app.SampleMiddleware.hi")
        Assert.assertTrue(actionMiddleware.middlewareHook[1].request.path == "app.SampleMiddleware.hello")
        Assert.assertEquals("hi world", r1.getOrNull())
        Assert.assertEquals("hello world", r2.getOrNull())
    }
}

class TestApiMiddleware : Middleware{
    // Used for demo/testing purposes
    var middlewareHook = mutableListOf<ApiRequest>()

    override suspend fun process(req: ApiRequest, next: suspend (ApiRequest) -> Outcome<ApiResult>): Outcome<ApiResult> {
        middle


Path, isDependency) {
    this.parent = parentPath;
    this.isDependency = !!isDependency;
  };

  // defines the public JSON API for DevKit extensions
  this.toJSON = function () {
    return {
      name: this.name,
      path: this.path,
      version: this.version,
      parent: this.parent,
      isDependency: this.isDependency,
      clientPaths: this.getClientPaths(),
      extensions: this.getExtensions()
    };
  };
});

function strip(str) {
  str = str || '';
  return str.replace(/^\s+|\s+$/g, '');
}

Module.load = function (modulePath, /* optional */ opts) {

  var packageFile = path.join(modulePath, 'package.json');

  if (!fs.existsSync(packageFile)) { return; }

  var packageContents;
  try {
    packageContents = require(packageFile);
  } catch (e) {
    return logger.warn('Module', modulePath, 'failed to load, invalid package.json');
  }

  if (!packageContents.devkit) { return; }

  var name = path.basename(modulePath);

  opts = opts || {};

  return new Module({
    name: name,
    path: modulePath,
    parent: opts.parent,
    isDependency: opts.isDependency,
    version: opts.version,
    packageContents: packageContents
  });
};

Module.getURL = function (modulePath, cb) {
  var git = gitClient.get(modulePath);
  return git('remote', '-v', {extraSilent: true}).then(function (remotes) {
    return remotes.split('\n').map(function (line) {
      return line.match(/^origin\s+(.*?)\s+\(fetch\)/);
    }).filter(function (match) {
      return match;
    }).map(function (match) {
      return match[1];
    })[0];
  }).nodeify(cb);
};

Module.describeVersion = function (modulePath, cb) {
  trace('Module.describeVersion');
  var git = gitClient.get(modulePath);

  return exists(modulePath)
    .then(function () {
      return [
        git.getCurrentTag(),
        git.getCurrentHead()
      ];
    })
    .all()
    .spread(function (tag, head) {
      return {
        tag: tag,
        hash: head
      };
    })
    .nodeify(cb);
};

Module.getVersions = function (modulePath, cb) {
  var git = gitClient.get(modulePath);
  return Promise.all([
    git.getLocalTags(),
    git('describe', '--tags', {extraSilent: true})
  ]).spread(function (versions, currentVersion) {
    return {
      current: strip(currentVersion),
      versions: versions
    };
  }).nodeify(cb);
};

Module.setVersion = function (modulePath, version, opts) {
  trace('setVersion - opts:', opts);
  opts = opts || {};

  trace('modulePath', modulePath);

  var git = gitClient.get(modulePath);
  var moduleName = path.basename(modulePath);
  var forceInstall = opts.forceInstall;

  return exists(modulePath)
    .bind({})
    .then(function () {
      // determine if version is a tag, branch, or hash
      return git.validateVersion(version);
    })
    .spread(function (version, type) {
      // always fetch if branch
      if (type == 'branch' && !opts.skipFetch) {
        return git.fetch().return(version);
      }

      return version;
    })
    .catch(gitClient.UnknownGitRevision, function (e) {
      // check if version exists locally and try to fetch it if not
      if (!opts.skipFetch) {
        return git
          .fetch()
          .then(function () {
            return git.validateVersion(version);
          })
          .spread(function (version, type) {
            return version;
          });
      } else {
        throw e;
      }
    })
    .then(function (requestedVersion) {
      trace('input version', version);
      trace('requestedVersion', requestedVer


	'ntfsmth'     : 'Doing something',
			'ntfloadimg'  : 'Loading image',
			'ntfnetmount' : 'Mounting network volume', // added 18.04.2012
			'ntfnetunmount': 'Unmounting network volume', // from v2.1 added 30.04.2012
			'ntfdim'      : 'Acquiring image dimension', // added 20.05.2013
			'ntfreaddir'  : 'Reading folder infomation', // from v2.1 added 01.07.2013
			'ntfurl'      : 'Getting URL of link', // from v2.1 added 11.03.2014
			'ntfchmod'    : 'Changing file mode', // from v2.1 added 20.6.2015
			'ntfpreupload': 'Verifying upload file name', // from v2.1 added 31.11.2015
			'ntfzipdl'    : 'Creating a file for download', // from v2.1.7 added 23.1.2016
			'ntfparents'  : 'Getting path infomation', // from v2.1.17 added 2.11.2016
			'ntfchunkmerge': 'Processing the uploaded file', // from v2.1.17 added 2.11.2016
			'ntftrash'    : 'Doing throw in the trash', // from v2.1.24 added 2.5.2017
			'ntfrestore'  : 'Doing restore from the trash', // from v2.1.24 added 3.5.2017
			'ntfchkdir'   : 'Checking destination folder', // from v2.1.24 added 3.5.2017
			'ntfundo'     : 'Undoing previous operation', // from v2.1.27 added 31.07.2017
			'ntfredo'     : 'Redoing previous undone', // from v2.1.27 added 31.07.2017

			/*********************************** volumes *********************************/
			'volume_Trash' : 'Trash', //from v2.1.24 added 29.4.2017

			/************************************ dates **********************************/
			'dateUnknown' : 'unknown',
			'Today'       : 'Today',
			'Yesterday'   : 'Yesterday',
			'msJan'       : 'Jan',
			'msFeb'       : 'Feb',
			'msMar'       : 'Mar',
			'msApr'       : 'Apr',
			'msMay'       : 'May',
			'msJun'       : 'Jun',
			'msJul'       : 'Jul',
			'msAug'       : 'Aug',
			'msSep'       : 'Sep',
			'msOct'       : 'Oct',
			'msNov'       : 'Nov',
			'msDec'       : 'Dec',
			'January'     : 'January',
			'February'    : 'February',
			'March'       : 'March',
			'April'       : 'April',
			'May'         : 'May',
			'June'        : 'June',
			'July'        : 'July',
			'August'      : 'August',
			'September'   : 'September',
			'October'     : 'October',
			'November'    : 'November',
			'December'    : 'December',
			'Sunday'      : 'Sunday',
			'Monday'      : 'Monday',
			'Tuesday'     : 'Tuesday',
			'Wednesday'   : 'Wednesday',
			'Thursday'    : 'Thursday',
			'Friday'      : 'Friday',
			'Saturday'    : 'Saturday',
			'Sun'         : 'Sun',
			'Mon'         : 'Mon',
			'Tue'         : 'Tue',
			'Wed'         : 'Wed',
			'Thu'         : 'Thu',
			'Fri'         : 'Fri',
			'Sat'         : 'Sat',

			/******************************** sort variants ********************************/
			'sortname'          : 'by name',
			'sortkind'          : 'by kind',
			'sortsize'          : 'by size',
			'sortdate'          : 'by date',
			'sortFoldersFirst'  : 'Folders first',
			'sortperm'          : 'by permission', // from v2.1.13 added 13.06.2016
			'sortmode'          : 'by mode',       // from v2.1.13 added


A_Items.json", ZHHeader);
            await Task.WhenAll(tasks.ToArray());
            //// 这几个网络资源每次请求时返回的String都不太一样但是实际上内容一样, 所以用JsonStringCompareUpdater
            // 我没时间写了, 就先不实现比较后刷新了
            void AddTask<T>(ref WFResource<T> obj, string url, string name, WebHeaderCollection header = default) where T : class
            {
                var resource = WFResource<T>.Create(url, fileName: name, category: nameof(WMASearcher), header: header, updater: WFResourceUpdaters<T>.JustUpdateDelegate);
                obj = resource;
                tasks.Add(resource.WaitForInited());
            }

            return Auction;
        }

        private static Task SetWFCDResources()
        {
            var header = new WebHeaderCollection
            {
                //{"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"},
                {"Accept-Encoding", "br"}
            };

            var resource = WFResource<WFCD_All[]>.Create(url: "https://wfcd-all.kraber.top", nameof(WFCD_All),
                "All.json",
                header,
                ResourceLoaders<WFCD_All[]>.JsonDotNetLoader,
                null,
                WFResourceUpdaters<WFCD_All[]>.GitHubShaDelegate);
            if (WFResourcesManager.WFResourceGitHubInfos.All(i => i.Category != nameof(WFCD_All)))
            {
                var name = "WFCD/warframe-items";

                WFResourcesManager.AddInfo(name, "", nameof(WFCD_All), false);
            }

            RWFCDAll = resource;
            return resource.WaitForInited();
        }
        private static async Task<WFApi> GetTranslateApi()
        {
            var api = new WFApi();
            // var source = "https://raw.githubusercontent.com/Richasy/WFA_Lexicon/WFA5/";
            var source = IsKraber ? "https://wfbot.kraber.top:8888/Resources/Richasy/WFA_Lexicon@WFA5/" : "https://cdn.jsdelivr.net/gh/Richasy/WFA_Lexicon@WFA5/";
            var tasks = new List<Task>();

            AddTask(ref api.RDict, "WF_Dict.json");
            AddTask(ref api.RInvasion, "WF_Invasion.json");
            AddTask(ref api.RSale, "WF_Sale.json");
            AddTask(ref api.RRiven, "WF_Riven.json");
            AddTask(ref api.RAllriven, "WF_AllRiven.json");
            AddTask(ref api.RLib, "WF_Lib.json");
            AddTask(ref api.RNightWave, "WF_NightWave.json");
            if (WFResourcesManager.WFResourceGitHubInfos.All(i => i.Category != nameof(WFTranslator)))
            {
                var name = "Richasy/WFA_Lexicon";

                WFResourcesManager.AddInfo(name, "https://wfbot.kraber.top:8888/Resources/Richasy/WFA_Lexicon@WFA5/sha", nameof(WFTranslator), IsKraber);
            }
            await Task.WhenAll(tasks.ToArray());

            void AddTask<T>(ref WFResource<T> obj, string name) where T : class
            {
                var path = $"{source}{name}";
                var resource = WFResource<T>.Create(path, category: nameof(WFTranslator), null, null, null, null, WFResourceUpdaters<T>.GitHubShaDelegate);
                obj = resource;
                tasks.Add(resource.WaitForInited());
            }
            //Messenger.SendDebugInfo($"翻译 API 加载完成. 用时 {sw.Elapsed.TotalSeconds:N1}s.");
            // 嘿,如果你在看这个方法怎么用,让2019年3月14日23:59:23的trks来告诉你吧,这个api是本地缓存的api(在本地有的情况下),但是不久后将会被第三方


arameters
    // DRAGON_BREATH_EXPLOSION_PACKET -> ChaosMonarchGoal, can easily call ParticleHandler.particleSphere with the right parameters
    // DRAGON_BREATH_EXPLOSION_PACKET -> ChaosMonarchGoal, can easily call ParticleHandler.particleSphere with the right parameters
    // SNOW_PARTICLES_ID -> Freezing effect, can easily call the default server.sendParticle method with the right off-set parameters, kinda pointless though since it can call client level
    // ICE_PARTICLES_ID -> can easily call the default ParticleHandler.particleSphere method with the right params in respective classes
    // MOONLIGHT_PARTICLES_ID -> is not needed
    // SWORD_SWIPE_ID -> can be called in respective classes using default serverLevel.sendParticle with right off-set params
    // UMBRAL_TRESPASS_ID -> now that positions are doubles, it is identical to the SOUL_FLAME_SMALL_OUTBURST_MAP
    // CLAW_PARTICLES_ID -> should be reworked into curving lines and may be implemented with simple serverLevel.sendParticle
    // SOUL_FLAME_BIG_OUTBURST_ID -> identical to small version, just tweak the size modifier
    // PRE_EXPLOSION_ID -> can be called easily with ParticleHandler.particleOutburst
    // FLAME_RUPTURE_ID -> not needed if Day Stalker uses Flame Pillars instead of hardcoded attack
    // TRINITY_FLASH_ID -> can be called together with the other particle packet thanks to PacketHandler.flashParticle

    public static final Vec3d FLAT_SPREADING_FLAME = new Vec3d(2, 8, 2);
    public static final Vec3d FLAT_SPREADING_SMOKE = new Vec3d(1, 8, 1);
    public static final Vec3d RISING_FLAME = new Vec3d(8, 2, 8);
    public static final Vec3d RISING_ITEM_PARTICLE = new Vec3d(2, 0.5f, 2);
    public static final Vec3d FLAT_ITEM_PARTICLE = new Vec3d(1, 2, 1);

    public static final ParticleEffect DIRT_PARTICLE = new ItemStackParticleEffect(ParticleTypes.ITEM, Items.DIRT.getDefaultStack());
    public static final ParticleEffect STONE_PARTICLE = new ItemStackParticleEffect(ParticleTypes.ITEM, Items.STONE.getDefaultStack());
    public static final ParticleEffect ICE_PARTICLE = new ItemStackParticleEffect(ParticleTypes.ITEM, new ItemStack(Items.ICE));

    public static final HashMap<ParticleEffect, Vec3d> OBLITERATE_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> MOONFALL_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> SOUL_RUPTURE_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> DAWNBREAKER_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> DARKIN_BLADE_SLAM_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> CONJURE_ENTITY_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> GROUND_RUPTURE_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> BLINDING_LIGHT_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> DEFAULT_GRAND_SKYFALL_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> BASE_GRAND_SKYFALL_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> BLINDING_LIGHT_SMASH_MAP = Maps.newHashMap();
    public static final HashMap<ParticleEffect, Vec3d> SOUL_FLAME_RUPTURE_MAP = Maps


, certPool, true) != nil
	}, ingressWait, waitTick)

	t.Log("verifying that a Listener has the invalid ref status condition")
	require.EventuallyWithT(t, func(t *assert.CollectT) {
		gateway, err = gatewayClient.GatewayV1().Gateways(ns.Name).Get(ctx, gateway.Name, metav1.GetOptions{})
		require.NoError(t, err)
		invalid := false
		for _, status := range gateway.Status.Listeners {
			if ok := util.CheckCondition(
				status.Conditions,
				util.ConditionType(gatewayapi.ListenerConditionResolvedRefs),
				util.ConditionReason(gatewayapi.ListenerReasonRefNotPermitted),
				metav1.ConditionFalse,
				gateway.Generation,
			); ok {
				invalid = true
			}
		}
		require.True(t, invalid)
	}, ingressWait, waitTick)

	t.Log("verifying the certificate returns when using a ReferenceGrant with no name restrictions")
	grant.Spec.To[0].Name = nil
	_, err = gatewayClient.GatewayV1beta1().ReferenceGrants(otherNs.Name).Update(ctx, grant, metav1.UpdateOptions{})
	require.NoError(t, err)

	require.Eventually(t, func() bool {
		if err := tlsEchoResponds(proxyTLSURL, testUUID2, tlsRouteExtraHostname, certPool, true); err != nil {
			t.Logf("failed accessing tcpecho at %s, err: %v", proxyTLSURL, err)
			return false
		}
		return true
	}, ingressWait, waitTick)
}

func TestTLSRoutePassthrough(t *testing.T) {
	t.Log("locking Gateway TLS ports")
	tlsMutex.Lock()
	t.Cleanup(func() {
		t.Log("unlocking TLS port")
		tlsMutex.Unlock()
	})

	ctx := t.Context()
	ns, cleaner := helpers.Setup(ctx, t, env)

	t.Log("getting gateway client")
	gatewayClient, err := gatewayclient.NewForConfig(env.Cluster().Config())
	require.NoError(t, err)

	t.Log("configuring secrets")
	certPool := x509.NewCertPool()
	tlsRouteExampleTLSCert, tlsRouteExampleTLSKey := certificate.MustGenerateCertPEMFormat(
		certificate.WithCommonName(tlsRouteHostname),
		certificate.WithDNSNames(tlsRouteHostname),
	)
	require.True(t, certPool.AppendCertsFromPEM(tlsRouteExampleTLSCert))
	secrets := []*corev1.Secret{
		{
			ObjectMeta: metav1.ObjectMeta{
				Name:      tlsSecretName,
				Namespace: ns.Name,
			},
			Data: map[string][]byte{
				"tls.crt": tlsRouteExampleTLSCert,
				"tls.key": tlsRouteExampleTLSKey,
			},
		},
	}

	t.Log("deploying secrets")
	secret1, err := env.Cluster().Client().CoreV1().Secrets(ns.Name).Create(ctx, secrets[0], metav1.CreateOptions{})
	require.NoError(t, err)
	cleaner.Add(secret1)

	t.Log("deploying a supported gatewayclass to the test cluster")
	gatewayClassName := uuid.NewString()
	gwc, err := helpers.DeployGatewayClass(ctx, gatewayClient, gatewayClassName)
	require.NoError(t, err)
	cleaner.Add(gwc)

	t.Log("deploying a gateway to the test cluster using unmanaged gateway mode")
	modePassthrough := gatewayapi.TLSModePassthrough
	gatewayName := uuid.NewString()
	gateway, err := helpers.DeployGateway(ctx, gatewayClient, ns.Name, gatewayClassName, func(gw *gatewayapi.Gateway) {
		hostname := gatewayapi.Hostname(tlsRouteHostname)
		gw.Name = gatewayName
		gw.Spe


//-------------------------------------------------
//               Ch04_06_.s
//-------------------------------------------------

// extern "C" int32_t CalcTestStructSum_(const TestStruct* ts);

// Offsets for TestStruct
            .equ S_ValA,0                       // int8_t
            .equ S_ValB,1                       // int8_t
            .equ S_ValC,4                       // int32_t
            .equ S_ValD,8                       // int16_t
            .equ S_ValE,12                      // int32_t
            .equ S_ValF,16                      // uint8_t
            .equ S_ValG,18                      // uint16_t

            .text
            .global CalcTestStructSum_
CalcTestStructSum_:

// Sum the eleme


base.widget

import android.annotation.SuppressLint
import android.content.Context
import android.content.res.Resources
import android.graphics.*
import android.util.AttributeSet
import android.view.View
import cc.ab.base.R

/**
 * 只保留四个角，中间透明，方便实现图片四个角遮挡
 */
class OnlyCornerView @JvmOverloads constructor(
  context: Context,
  attrs: AttributeSet? = null,
  defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
  //<editor-fold defaultstate="collapsed" desc="变量">
  private var mCornerRadius = 20f // 设置为 20dp
  private var mBgColor = Color.parseColor("#dddddd")
  private var mCornerType = CornerType.ALL
  private var mPath = Path()
  private val mPaint = Paint().apply {
    isAntiAlias = true
    style = Paint.Style.FILL
  }
  //</editor-fold>

  //<editor-fold defaultstate="collapsed" desc="初始化">
  init {
    mCornerRadius = dp2px(mCornerRadius)
    val typedArray = context.obtainStyledAttributes(attrs, R.styleable.OnlyCornerView)
    mCornerRadius = typedArray.getDimension(R.styleable.OnlyCornerView_cornerRadius, mCornerRadius)
    mBgColor = typedArray.getColor(R.styleable.OnlyCornerView_bgColor, mBgColor)
    mCornerType = CornerType.values()[typedArray.getInt(R.styleable.OnlyCornerView_cornerType, 0)]
    typedArray.recycle()
  }
  //</editor-fold>

  //<editor-fold defaultstate="collapsed" desc="绘制镂空">
  @SuppressLint("DrawAllocation")
  override fun onDraw(canvas: Canvas) {
    super.onDraw(canvas)
    // 创建路径
    mPath.reset()
    mPath.addRoundRect(
      RectF(0f, 0f, width.toFloat(), height.toFloat()),
      when (mCornerType) {
        CornerType.TOP -> floatArrayOf(mCornerRadius, mCornerRadius, mCornerRadius, 0f, 0f, 0f, 0f)
        CornerType.BOTTOM -> floatArrayOf(0f, 0f, 0f, 0f, mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius)
        else -> floatArrayOf(mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius, mCornerRadius)
      },
      Path.Direction.CW
    )
    // 保存当前画布状态
    val saveCount = canvas.saveLayer(null, null)
    // 绘制背景
    canvas.drawColor(mBgColor)
    // 设置画笔颜色和模式
    mPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_OUT)
    // 绘制蓝色部分
    canvas.drawPath(mPath, mPaint)
    // 恢复画布状态
    canvas.restoreToCount(saveCount)
    // 还原画笔模式
    mPaint.xfermode = null
  }
  //</editor-fold>

  //<editor-fold defaultstate="collapsed" desc="dp2px">
  private fun dp2px(dpValue: Float): Float {
    val scale: Float = Resources.getSystem().displayMetrics.density
    return (dpValue * scale + 0.5f).toInt().toFloat()
  }
  //</editor-fold>

  //<editor-fold defaultstate="collapsed" desc="圆角位置">
  enum class CornerType {
    //如果不满足，再添加即可
    ALL, TOP, BOTTOM
  }
  //</editor-fold>
}

package cc.ab.base.ext

import android.content.res.Resources
import


ldren: {
          card: acknowledgementCard({
            icon: "done",
            backgroundColor: "#39CB74",
            header: {
              labelName: "Bill Cancellation Failed",
              labelKey: "ABG_BILLCANCELLATION_FAILED__MESSAGE_HEAD"
            },
            body: {
              labelName: "A notification regarding bill has been sent to consumer at registered Mobile No.",
              labelKey: "ABG_BILLCANCELLATION_FAILED__MESSAGE_SUB_HEAD"
            },
          })
        }
      },
      gotoHomeFooter
    };
  }
  else if (purpose === "apply" && status === "success") {
    return {
      header: getHeader(consumerNumber),
      applicationSuccessCard: {
        uiFramework: "custom-atoms",
        componentPath: "Div",
        children: {
          card: acknowledgementCard({
            icon: "done",
            backgroundColor: "#39CB74",
            header: {
              labelName: "Bill Cancellation Sucessfully",
              labelKey: "ABG_BILLCANCELLATION_SUCESS_MESSAGE_HEAD"
            },
            body: {
              labelName: "A notification regarding bill has been sent to consumer at registered Mobile No.",
              labelKey: "ABG_BILLCANCELLATION_FAILED__MESSAGE_SUB_HEAD"
            },
            tailText: {
              labelName: "Bill No.",
              labelKey: "PAYMENT_BILL_NO"
            },
            number: applicationNumber
          }),
        }
      },
      gotoHomeFooter
    };
  }
};

const screenConfig = {
  uiFramework: "material-ui",
  name: "acknowledgement",
  components: {
    div: {
      uiFramework: "custom-atoms",
      componentPath: "Div",
      props: {
        className: "common-div-css"
      }
    }
  },
  beforeInitScreen: (action, state, dispatch) => {
    const purpose = getQueryArg(window.location.href, "purpose");
    const status = getQueryArg(window.location.href, "status");
    const applicationNumber = getQueryArg(window.location.href, "billNo");
    const moduleName = getQueryArg(window.location.href, "moduleName");
    const secondNumber = getQueryArg(window.location.href, "secondNumber");
    const tenant = getQueryArg(window.location.href, "tenantId");
    const consumerNumber = getQueryArg(window.location.href, "consumerNumber");

    const service = getQueryArg(window.location.href, "service");
    if (service == "SEWERAGE") {
      set(
        action.screenConfig,
        "components.div.children.header.children.header.children.key.props.labelKey",
        "WS_COMMON_SEWERAGE_BILL_HEADER"
      );
    } else {
      set(
        action.screenConfig,
        "components.div.children.header.children.header.children.key.props.labelKey",
        "WS_COMMON_WATER_BILL_HEADER"
      );
    }

    const data = getAcknowledgementCard(
      state,
      dispatch,
      purpose,
      status,
      applicationNumber,
      secondNumber,
      tenant,
      moduleName,
      consumerNumber
    );

    set(action, "screenConfig.components.div.children", data);
    // Hiding edit section

    return action;
  }
};
export default screenConfig;
import {
  getCommonHeader,
  getCommonCard,
  getCommonParagraph,
  getCommonContainer
} from "egov


ct(parseSort("%C2%A9")).to.deep.equal([{
        field: "©", direction: "ASC"
      }]);

      expect(parseSort("(:test,`%22J%26J%22%21%2C%20%27You%20know%20%28it%29%2C%20and%20%2a.`)"))
        .to.deep.equal([{
          direction: "ASC",
          expression: FieldExpression("test", ['"J&J"!, \'You know (it), and *.'])
        }])
    });

    // Symbol literals should be totally unambiguous with number literals,
    // our direction indicator, and our operator prefix sigil.
    it("should reject leading minus, colon, and number in symbol names", () => {
      expect(() => { parseFilter("(:op,-test)"); }).to.throw();
      expect(() => { parseFilter("(:op,-22d)"); }).to.throw();
      expect(() => { parseFilter("(:op,1d)"); }).to.throw();
      expect(() => { parseFilter("(:op,.22d)"); }).to.throw();
      expect(() => { parseFilter("(:a,true,:a22)"); }).to.throw();

      expect(() => parseFilter("(:-)")).to.throw();
      expect(() => parseSort("--x")).to.throw();
      expect(() => parseFilter("(:-34)")).to.throw();

      // these start with a dot but aren't parseable as numbers
      expect(() => { parseFilter("(:op,.test)"); }).to.not.throw();
      expect(() => { parseFilter("(:op,.)"); }).to.not.throw();
    })

    it("should allow periods, minus signs, and numbers in symbol names", () => {
      expect(parseFilter("(:a-test)")).to.deep.equal([
        FieldExpression("a-test", []),
      ]);
      expect(parseFilter("(2,:a-22d,3)")).to.deep.equal([
        FieldExpression("a-22d", [2,3])
      ]);
      expect(parseFilter("(:a1d)")).to.deep.equal([
        FieldExpression("a1d", [])
      ]);
      expect(parseFilter("(true,:a.test,false)")).to.deep.equal([
        FieldExpression("a.test", [true,false])
      ]);
      expect(parseFilter("(:a.22d)")).to.deep.equal([
        FieldExpression("a.22d", [])
      ]);
    });

    it("should not allow delete or control chars in symbol names", () => {
      expect(() => { parseFilter("(\u0000,\u0000)"); }).to.throw();
      expect(() => { parseFilter("(:a,\u007F)"); }).to.throw();
    });

    it("should not allow invalid url ascii chars (e.g., ^, <, >) in symbol names", () => {
      // According to RFC 3986, these chars simply can't appear in a URL.
      // For some, like <> and "", it's because the RFC assumes they'll be
      // used to surround urls to delimit them in other text. For others,
      // to quote from RFC 2396 (which actually originally defines this set),
      // it's because: "gateways and other transport agents are known to
      // sometimes modify such characters, or they are used as delimiters."
      expect(() => { parseFilter("(:<,a)"); }).to.throw();
      expect(() => { parseFilter("(:a,^)"); }).to.throw();
      expect(() => { parseFilter("(:a,>)"); }).to.throw();
      expect(() => { parseFilter("(:a,})"); }).to.throw();
      expect(() => { parseFilter("(:a,{)"); }).to.throw();
      expect(() => { parseFilter("(:a,\")"); }).to.throw();
    });

    it("should not allow non-ascii in symbol names", () => {
      expect(() => { parseFilter("(:<,\u8888)"); }).to.throw();
    });

    it("should not allow [] in symbol names", () => {
      expect(() =>


在前面
        for (algorithm in Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm.values()) {
            Pbkdf2PasswordEncoder().apply {
                setAlgorithm(algorithm)
                val r = encode("123")
                println(algorithm.name + " " + r)
                assertTrue { matches("123", r) }
                assertTrue { matches("123", encodeWithSalt("123", salt).also { println(it) }) }
                assertTrue { matchesWithSalt("123", encodeWithSalt("123", salt), salt) }
            }
        }
    }

    @Test
    fun ldap() {
        val salt = "123456".toByteArray()
        // 结果计算salt在后面
        LdapShaPasswordEncoder().apply {
            println(encode("123"))
            println(encode("123", null))
            println(encode("123", salt))
            assertTrue { matches("123", encode("123")) }
            assertTrue { matches("123", encode("123", null)) }
            assertEquals("{SSHA}/EMdfGQsjza+boN3JWsBkZIF+cwxMjM0NTY=", encode("123", salt))
            assertTrue { matches("123", encode("123", salt)) }
        }
    }

    @Test
    fun scrypt() {
        val salt = "123456".toByteArray()
        // 第二个 $为salt
        SCryptPasswordEncoder().apply {
            println(encode("123"))
            println(digest("123", salt))
            assertEquals(
                "\$e0801\$MTIzNDU2\$yToN3hhqWNrcFErZVOmOjF5mcVbrV9hj/SQl2x0ykQU=",
                digest("123", salt),
            )
            assertTrue { matches("123", encode("123")) }
            assertTrue { matches("123", digest("123", salt)) }
        }
    }

    @Test
    @Ignore
    fun bcrypt() {
        val salt = "123456123456123456123456".toByteArray()
        BCryptPasswordEncoder().apply {
            println(encode("Aa123456"))
            //            println(encode("123", salt))

            assertTrue { matches("123", encode("123")) }

            println(encode("123", salt))
            assertEquals(
                "\$2a\$10\$KRGxLBS0KRGxLBS0KRGxL.UgZ0Pz.x0KwrgWDPUNirAXO0CnTUpI2",
                encode("123", salt),
            )

            strength = 12
            println(encode("123"))
            measureTimeMillis { assertTrue { matches("123", encode("123")) } }.also { println(it) }
            strength = 14
            measureTimeMillis { assertTrue { matches("123", encode("123")) } }.also { println(it) }
            strength = 16
            measureTimeMillis { assertTrue { matches("123", encode("123")) } }.also { println(it) }
            version = BCryptPasswordEncoder.BCryptVersion.`$2Y`

            println(encode("123"))
            assertTrue { matches("123", encode("123")) }
        }
    }

    @Test
    fun argon2() {
        val salt = "1234".toByteArray()
        // 第四个$ 为salt
        Argon2PasswordEncoder().apply {
            println(encode("123"))
            assertTrue { matches("123", encode("123")) }
            println(encode("123", salt))
            assertTrue { matches("123", encode("123", salt)) }

            memory = 1 shl 14
            parallelism = 8

            iterations = 10
            println(encode("123", salt))
            assertTrue { matches("123", encode("123", salt)) }

            type = Argon2Parameters.ARGON2_i
            version = Argon2Parameters.ARGON2_VERSION_10

            println(encode("123",


android.app.Dialog;

import java.util.List;

/**
 *

 * Date: 16/6/1 15:11
 * Author: rsshinide38@163.com
 *

 */
public interface SubRecyclerViewCallBack extends BaseCallBack{
    /**
     * 准备展开副层级
     * @param parentPosition 主层级点击的位置
     */
    void prepareExplodeItem(int parentPosition);
    /**
     * 下面进行数据初始化 和 显示
     * @param data
     * @deprecated {@link #prepareExplodeItem(int)}
     */
    void initData(int parentIndex,List data);

    /**
     * 当副层级的Dialog显示时的回调
     * @param subDialog
     * @param parentPosition
     */
    void onDialogShow(Dialog subDialog, int parentPosition);

    /**
     * 当副层级的Dialog显示时的回调
     * @param subDialog
     * @param parentPosition
     */
    void onDialogCancel(Dialog subDialog, int parentPosition);

    boolean onMove(int selectedPosition,int targetPosition);
    void moved(int selectedPosition,int targetPosition);

    /**
     * 是否支持移出次级目录
     * @param selectedPosition
     * @return
     */
    boolean canDragOut(int selectedPosition);

}
package com.anarchy.classify.callback;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.VelocityTracker;
import android.view.View;

import com.anarchy.classify.ClassifyView;

/**
 * Version 1.0
 *

 * Date: 16/6/14 17:12
 * Author: rsshinide38@163.com
 *

 */
public interface BaseCallBack {
    int SELECT_UNKNOWN = -1;
    /**
     * 设置当前拖动的位置位于Adapter
     * @see #getDragPosition()
     * @param position 拖动的位置
     * @param shouldNotify 是否通知更新界面
     */
    void setDragPosition(int position,boolean shouldNotify);

    /**
     * 获取当前拖动的位置位于Adapter
     * @see #setDragPosition(int, boolean)
     * @return 当前拖动的位置 如果是-1 则当前没用拖动的View
     */
    int getDragPosition();

    /**
     *
     * @param position
     * @param pressedView
     * @return true 长按可拖动 false 不可拖动
     */
    boolean canDragOnLongPress(int position, View pressedView);
    boolean canDropOver(int selectedPosition,int targetPosition);

    /**
     * 拖拽发生时的回调
     * @param recyclerView
     * @param position
     */
    void onDragStart(RecyclerView recyclerView,int position);

    /**
     * 拖拽动画执行结束的回调
     * @param recyclerView
     * @param position
     */
    void onDragAnimationEnd(RecyclerView recyclerView,int position);

    /**
     * 返回判断移动需要的速度范围
     * 单位默认100 如果你没有重写 {@link #getCurrentState(View, View, int, int, VelocityTracker, int, int)}这个方法
     * @param context
     * @return
     */
    float getVelocity(Context context);
    /**
     * 返回当前的状态 是移动 还是在merge范围中
     * @param selectedView
     * @param targetView
     * @param x
     * @param y
     * @return
     */
    @ClassifyView.MoveState
    int getCurrentState(View selectedView, View targetView, int x, int y, VelocityTracker velocityTracker, int selectedPosition, int targetPosition);

    /**
     * item点击事件
     * @param recycler


 = *mut LOCALGROUP_INFO_0;
STRUCT!{struct LOCALGROUP_INFO_1 {
    lgrpi1_name: LPWSTR,
    lgrpi1_comment: LPWSTR,
}}
pub type PLOCALGROUP_INFO_1 = *mut LOCALGROUP_INFO_1;
pub type LPLOCALGROUP_INFO_1 = *mut LOCALGROUP_INFO_1;
STRUCT!{struct LOCALGROUP_INFO_1002 {
    lgrpi1002_comment: LPWSTR,
}}
pub type PLOCALGROUP_INFO_1002 = *mut LOCALGROUP_INFO_1002;
pub type LPLOCALGROUP_INFO_1002 = *mut LOCALGROUP_INFO_1002;
STRUCT!{struct LOCALGROUP_MEMBERS_INFO_0 {
    lgrmi0_sid: PSID,
}}
pub type PLOCALGROUP_MEMBERS_INFO_0 = *mut LOCALGROUP_MEMBERS_INFO_0;
pub type LPLOCALGROUP_MEMBERS_INFO_0 = *mut LOCALGROUP_MEMBERS_INFO_0;
STRUCT!{struct LOCALGROUP_MEMBERS_INFO_1 {
    lgrmi1_sid: PSID,
    lgrmi1_sidusage: SID_NAME_USE,
    lgrmi1_name: LPWSTR,
}}
pub type PLOCALGROUP_MEMBERS_INFO_1 = *mut LOCALGROUP_MEMBERS_INFO_1;
pub type LPLOCALGROUP_MEMBERS_INFO_1 = *mut LOCALGROUP_MEMBERS_INFO_1;
STRUCT!{struct LOCALGROUP_MEMBERS_INFO_2 {
    lgrmi2_sid: PSID,
    lgrmi2_sidusage: SID_NAME_USE,
    lgrmi2_domainandname: LPWSTR,
}}
pub type PLOCALGROUP_MEMBERS_INFO_2 = *mut LOCALGROUP_MEMBERS_INFO_2;
pub type LPLOCALGROUP_MEMBERS_INFO_2 = *mut LOCALGROUP_MEMBERS_INFO_2;
STRUCT!{struct LOCALGROUP_MEMBERS_INFO_3 {
    lgrmi3_domainandname: LPWSTR,
}}
pub type PLOCALGROUP_MEMBERS_INFO_3 = *mut LOCALGROUP_MEMBERS_INFO_3;
pub type LPLOCALGROUP_MEMBERS_INFO_3 = *mut LOCALGROUP_MEMBERS_INFO_3;
STRUCT!{struct LOCALGROUP_USERS_INFO_0 {
    lgrui0_name: LPWSTR,
}}
pub type PLOCALGROUP_USERS_INFO_0 = *mut LOCALGROUP_USERS_INFO_0;
pub type LPLOCALGROUP_USERS_INFO_0 = *mut LOCALGROUP_USERS_INFO_0;
pub const LOCALGROUP_NAME_PARMNUM: DWORD = 1;
pub const LOCALGROUP_COMMENT_PARMNUM: DWORD = 2;
extern "system" {
    pub fn NetQueryDisplayInformation(
        ServerName: LPCWSTR,
        Level: DWORD,
        Index: DWORD,
        EntriesRequested: DWORD,
        PreferredMaximumLength: DWORD,
        ReturnedEntryCount: LPDWORD,
        SortedBuffer: *mut PVOID,
    ) -> NET_API_STATUS;
    pub fn NetGetDisplayInformationIndex(
        ServerName: LPCWSTR,
        Level: DWORD,
        Prefix: LPCWSTR,
        Index: LPDWORD,
    ) -> NET_API_STATUS;
}
STRUCT!{struct NET_DISPLAY_USER {
    usri1_name: LPWSTR,
    usri1_comment: LPWSTR,
    usri1_flags: DWORD,
    usri1_full_name: LPWSTR,
    usri1_user_id: DWORD,
    usri1_next_index: DWORD,
}}
pub type PNET_DISPLAY_USER = *mut NET_DISPLAY_USER;
STRUCT!{struct NET_DISPLAY_MACHINE {
    usri2_name: LPWSTR,
    usri2_comment: LPWSTR,
    usri2_flags: DWORD,
    usri2_user_id: DWORD,
    usri2_next_index


079694 00076494  7F E4 FB 78 */	mr r4, r31
/* 80079698 00076498  4B FE 96 0D */	bl func_80062CA4
/* 8007969C 0007649C  48 00 00 10 */	b lbl_800796AC
lbl_800796A0:
/* 800796A0 000764A0  D0 1E 00 18 */	stfs f0, 0x18(r30)
/* 800796A4 000764A4  D0 1E 00 1C */	stfs f0, 0x1c(r30)
/* 800796A8 000764A8  D0 1E 00 20 */	stfs f0, 0x20(r30)
lbl_800796AC:
/* 800796AC 000764AC  3B FE 00 28 */	addi r31, r30, 0x28
/* 800796B0 000764B0  7F E3 FB 78 */	mr r3, r31
/* 800796B4 000764B4  48 35 8A A5 */	bl PSVECMag
/* 800796B8 000764B8  C0 02 86 50 */	lfs f0, lbl_805DED50@sda21(r2)
/* 800796BC 000764BC  FC 00 08 00 */	fcmpu cr0, f0, f1
/* 800796C0 000764C0  41 82 00 14 */	beq lbl_800796D4
/* 800796C4 000764C4  7F E3 FB 78 */	mr r3, r31
/* 800796C8 000764C8  7F E4 FB 78 */	mr r4, r31
/* 800796CC 000764CC  4B FE 95 D9 */	bl func_80062CA4
/* 800796D0 000764D0  48 00 00 10 */	b lbl_800796E0
lbl_800796D4:
/* 800796D4 000764D4  D0 1E 00 28 */	stfs f0, 0x28(r30)
/* 800796D8 000764D8  D0 1E 00 2C */	stfs f0, 0x2c(r30)
/* 800796DC 000764DC  D0 1E 00 30 */	stfs f0, 0x30(r30)
lbl_800796E0:
/* 800796E0 000764E0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800796E4 000764E4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800796E8 000764E8  83 C1 00 08 */	lwz r30, 8(r1)
/* 800796EC 000764EC  7C 08 03 A6 */	mtlr r0
/* 800796F0 000764F0  38 21 00 10 */	addi r1, r1, 0x10
/* 800796F4 000764F4  4E 80 00 20 */	blr

.global func_800796F8
func_800796F8:
/* 800796F8 000764F8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800796FC 000764FC  7C 08 02 A6 */	mflr r0
/* 80079700 00076500  90 01 00 14 */	stw r0, 0x14(r1)
/* 80079704 00076504  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80079708 00076508  93 C1 00 08 */	stw r30, 8(r1)
/* 8007970C 0007650C  7C 7E 1B 78 */	mr r30, r3
/* 80079710 00076510  3B FE 00 18 */	addi r31, r30, 0x18
/* 80079714 00076514  80 A4 00 00 */	lwz r5, 0(r4)
/* 80079718 00076518  7F E3 FB 78 */	mr r3, r31
/* 8007971C 0007651C  80 04 00 04 */


5.58l-.33 2.04c-.11.72.45 1.38 1.12 1.38h.72c.56 0 1-.42 1.11-1.02l.06-.48c1.17.54 2.5.9 3.95.9 1.39 0 2.78-.3 3.95-.9l.06.48c.11.6.56 1.02 1.11 1.02h.72c.67 0 1.22-.66 1.11-1.38l-.33-1.98c.78-.78 1.34-1.74 1.73-2.76l1-.24c.5-.12.89-.6.89-1.2V9.22c.11-.6-.28-1.08-.78-1.2zM15 10c-.6 0-1-.7-1-1.5S14.4 7 15 7s1 .7 1 1.5-.4 1.5-1 1.5zM7.55 5.83a.99.99 0 01-1.38-.28.99.99 0 01.28-1.38c2.34-1.56 4.77-1.56 7.11 0 .46.31.58.93.28 1.39-.31.46-.93.58-1.39.28-1.67-1.12-3.23-1.12-4.9-.01z"],barcode:["M6 16.98h2v-14H6v14zm3 0h1v-14H9v14zm-6 0h2v-14H3v14zm-3 0h2v-14H0v14zm16 0h2v-14h-2v14zm-4 0h1v-14h-1v14zm7-14v14h1v-14h-1zm-5 14h1v-14h-1v14z"],blank:[],"blocked-person":["M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.06-.11.14-.35.17-.62C10.33 9.42 8.92 7.38 8.92 5c0-.3.05-.58.09-.87-.33-.08-.67-.13-.99-.13-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.45.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM14.97 0c-2.78 0-5.03 2.24-5.03 5s2.25 5 5.03 5S20 7.76 20 5s-2.25-5-5.03-5zm-3.03 5c0-1.66 1.35-3 3.02-3 .47 0 .9.11 1.29.3l-4.01 3.99c-.18-.4-.3-.83-.3-1.29zm3.03 3c-.47 0-.9-.11-1.29-.3l4.01-3.99c.19.39.3.82.3 1.29


Y_get1_EC_KEY(key);
    EVP_PKEY_free(key);
    if (!dtmp)
        return NULL;
    if (eckey) {
        EC_KEY_free(*eckey);
        *eckey = dtmp;
    }
    return dtmp;
}

EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb,
                                  void *u)
{
    EVP_PKEY *pktmp;
    pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);
    return pkey_get_eckey(pktmp, key); /* will free pktmp */
}

IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY,
                       ECPrivateKey)

    IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY)
#ifndef OPENSSL_NO_FP_API
EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb,
                              void *u)
{
    EVP_PKEY *pktmp;
    pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);
    return pkey_get_eckey(pktmp, eckey); /* will free pktmp */
}

#endif

IMPLEMENT_PEM_write_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)

    IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)


WRONLY, 0644)
	c.Assert(err, check.IsNil)
	_, err = io.WriteString(f, `{"manifest_text":". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n"}`)
	c.Assert(err, check.IsNil)
	c.Assert(f.Close(), check.IsNil)
	s.cp.mounts["/mnt-w"] = arvados.Mount{
		Kind:             "collection",
		PortableDataHash: arvadostest.FooCollectionPDH,
		Writable:         true,
	}
	s.cp.bindmounts = map[string]bindmount{
		"/mnt-w": bindmount{HostPath: bindtmp, ReadOnly: false},
	}

	c.Assert(os.Symlink("../../mnt", s.cp.hostOutputDir+"/l_dir"), check.IsNil)
	c.Assert(os.Symlink("/mnt/foo", s.cp.hostOutputDir+"/l_file"), check.IsNil)
	c.Assert(os.Symlink("/mnt-w/bar", s.cp.hostOutputDir+"/l_file_w"), check.IsNil)

	err = s.cp.walkMount("", s.cp.ctrOutputDir, 10, true)
	c.Check(err, check.IsNil)
	s.checkStagedFile(c, "l_dir/foo", 3)
	s.checkStagedFile(c, "l_file", 3)
	s.checkStagedFile(c, "l_file_w", 3)
}

func (s *copierSuite) checkStagedFile(c *check.C, path string, size int64) {
	fi, err := s.cp.staged.Stat(path)
	if c.Check(err, check.IsNil) {
		c.Check(fi.Size(), check.Equals, size)
	}
}

func (s *copierSuite) TestSymlink(c *check.C) {
	hostfile := s.cp.hostOutputDir + "/dir1/file"

	err := os.MkdirAll(s.cp.hostOutputDir+"/dir1/dir2/dir3", 0755)
	c.Assert(err, check.IsNil)
	s.writeFileInOutputDir(c, "dir1/file", "file")
	for _, err := range []error{
		os.Symlink(s.cp.ctrOutputDir+"/dir1/file", s.cp.hostOutputDir+"/l_abs_file"),
		os.Symlink(s.cp.ctrOutputDir+"/dir1/dir2", s.cp.hostOutputDir+"/l_abs_dir2"),
		os.Symlink("../../dir1/file", s.cp.hostOutputDir+"/dir1/dir2/l_rel_file"),
		os.Symlink("dir1/file", s.cp.hostOutputDir+"/l_rel_file"),
		os.MkdirAll(s.cp.hostOutputDir+"/morelinks", 0755),
		os.Symlink("../dir1/dir2", s.cp.hostOutputDir+"/morelinks/l_rel_dir2"),
		os.Symlink("dir1/dir2/dir3", s.cp.hostOutputDir+"/l_rel_dir3"),
		// rel. symlink -> rel. symlink -> regular file
		os.Symlink("../dir1/dir2/l_rel_file", s.cp.hostOutputDir+"/morelinks/l_rel_l_rel_file"),
	} {
		c.Assert(err, check.IsNil)
	}

	err = s.cp.walkMount("", s.cp.ctrOutputDir, 10, true)
	c.Check(err, check.IsNil)
	c.Check(s.cp.dirs, check.DeepEquals, []string{
		"/dir1", "/dir1/dir2", "/dir1/dir2/dir3",
		"/l_abs_dir2", "/l_abs_dir2/dir3",
		"/l_rel_dir3",
		"/morelinks", "/morelinks/l_rel_dir2", "/mo


 any]() map[string]ottl.Factory[K] {
	return ottlfuncs.StandardFuncs[K]()
}
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package aggregator // import "github.com/open-telemetry/opentelemetry-collector-contrib/connector/signaltometricsconnector/internal/aggregator"

import (
	"sort"
	"time"

	"go.opentelemetry.io/collector/pdata/pcommon"
	"go.opentelemetry.io/collector/pdata/pmetric"
)

type explicitHistogramDP struct {
	attrs pcommon.Map

	sum   float64
	count uint64

	// bounds represents the explicitly defined boundaries for the histogram
	// bucket. The boundaries for a bucket at index i are:
	//
	// (-Inf, bounds[i]] for i == 0
	// (bounds[i-1], bounds[i]] for 0 < i < len(bounds)
	// (bounds[i-1], +Inf) for i == len(bounds)
	//
	// Based on above representation, a bounds of length n represents n+1 buckets.
	bounds []float64

	// counts represents the count values of histogram for each bucket. The sum of
	// counts across all buckets must be equal to the count variable. The length of
	// counts must be one greater than the length of bounds slice.
	counts []uint64
}

func newExplicitHistogramDP(attrs pcommon.Map, bounds []float64) *explicitHistogramDP {
	return &explicitHistogramDP{
		attrs:  attrs,
		bounds: bounds,
		counts: make([]uint64, len(bounds)+1),
	}
}

func (dp *explicitHistogramDP) Aggregate(value float64, count int64) {
	dp.sum += value * float64(count)
	dp.count += uint64(count)
	dp.counts[sort.SearchFloat64s(dp.bounds, value)] += uint64(count)
}

func (dp *explicitHistogramDP) Copy(
	timestamp time.Time,
	dest pmetric.HistogramDataPoint,
) {
	dp.attrs.CopyTo(dest.Attributes())
	dest.ExplicitBounds().FromRaw(dp.bounds)
	dest.BucketCounts().FromRaw(dp.counts)
	dest.SetCount(dp.count)
	dest.SetSum(dp.sum)
	// TODO determine appropriate start time
	dest.SetTimestamp(pcommon.NewTimestampFromTime(timestamp))
}
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package cache // import "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector/internal/cache"

import (
	"github.com/hashicorp/golang-lru/v2/simplelru"
)

// Cache consists of an LRU cache and the evicted items from the LRU cache.
// This data structure makes sure all the cached items can be retrieved either from the LRU cache or the evictedItems
// map. In spanmetricsconnector's use case, we need to hold all the items during the current processing step for
// building the metrics. The evicted items can/should be safely removed once the metrics are built from the current
// batch of spans.
//
// Important: This implementation is non-thread safe.
type Cache[K comparable, V any] struct {
	lru          *simplelru.LRU[K, V]
	evictedItems map[K]V
}

// NewCache creates a Cache.
func NewCache[K comparable, V any](size int) (*Cache[K, V], error) {
	evictedItems := make(map[K]V)
	lruCache, err :


	if (player.butt.rating >= 6 && player.butt.rating <10)
						outputText(" is fairly plump and healthy.");
					if (player.butt.rating >= 10 && player.butt.rating < 15)
						outputText(" jiggles a bit as you trot around.");
					if (player.butt.rating >= 15 && player.butt.rating < 20)
						outputText(" jiggles and wobbles as you trot about.");
					if (player.butt.rating >= 20)
						outputText(" is obscenely large, bordering freakish, even for a horse.");
				}
				//GIRL LOOK AT DAT BOOTY
				else
				{
					outputText("  Your [butt]");
					if (player.butt.rating < 4)
						outputText(" is barely noticeable, showing off the muscles of your haunches.");
					if (player.butt.rating >= 4 && player.butt.rating < 6)
						outputText(" matches your toned equine frame quite well.");
					if (player.butt.rating >= 6 && player.butt.rating <10)
						outputText(" gives hints of just how much muscle you could put into a kick.");
					if (player.butt.rating >= 10 && player.butt.rating < 15)
						outputText(" surges with muscle whenever you trot about.");
					if (player.butt.rating >= 15 && player.butt.rating < 20)
						outputText(" flexes its considerable mass as you move.");
					if (player.butt.rating >= 20)
						outputText(" is stacked with layers of muscle, huge even for a horse.");
				}
			}
			//Non-horse PCs
			else
			{
				//TUBBY ASS
				if (player.tone < 60)
				{
					outputText(" your [butt]");
					if (player.butt.rating < 4)
						outputText(" looks great under your gear.");
					if (player.butt.rating >= 4 && player.butt.rating < 6)
						outputText(" has the barest amount of sexy jiggle.");
					if (player.butt.rating >= 6 && player.butt.rating <10)
						outputText(" fills out your clothing nicely.");
					if (player.butt.rating >= 10 && player.butt.rating < 15)
						outputText(" wobbles enticingly with every step.");
					if (player.butt.rating >= 15 && player.butt.rating < 20)
						outputText(" wobbles like a bowl full of jello as you walk.");
					if (player.butt.rating >= 20)
						outputText(" is obscenely large, bordering freakish, and makes it difficult to run.");
				}
				//FITBUTT
				else
				{
					outputText(" your [butt]");
					if (player.butt.rating < 4)
						outputText(" molds closely against your form.");
					if (player.butt.rating >= 4 && player.butt.rating < 6)
						outputText(" contracts with every motion, displaying the detailed curves of its lean musculature.");
					if (player.butt.rating >= 6 && player.butt.rating <10)
						outputText(" fills out your clothing nicely.");
					if (player.butt.rating >= 10 && player.butt.rating < 15)
						outputText(" stretches your gear, flexing it with each step.");
					if (player.butt.rating >= 15 && player.butt.rating < 20)
						outputText(" threatens to bust out from under your kit each time you clench it.");
					if (player.butt.rating >= 20)
						outputText(" is marvelously large, but completely stacked with muscle.");
				}
			}
			//TAILS
			switch (player.tail.type) {
				case Tail.HORSE:
					outputText("  A long [hairColor] horsetail hangs from your [butt], smooth and shiny.");
					break;
				case Tail.FERRET:
					outputText("  Sprouting from your backside, you have a long, bushy tail. It’s covered in a fluffy layer of [hairOrFurColor] fur."
					          +" It twitches and moves happily with your body when you are excited.");
					break;
				case Tail.SHEEP:
					outputText("  A


(options);
            if (adapter is null) return default;
            adapter.SetOptions(options);
            return adapter;
        }

        private async Task<T> GetAdapterAsync<T>(PollingJobSettings options) where T : IAdapter
        {
            var properAdapter = default(T);
            if (typeof(T) == typeof(ITargetAdapter))
                properAdapter = (T) _targetAdapters.FirstOrDefault(x => x.CanHandle(options));

            if (typeof(T) == typeof(ISourceAdapter))
                properAdapter = (T) _sourceAdapters.FirstOrDefault(x => x.CanHandle(options));

            return (T) await Task.Run(() => properAdapter?.Clone());
        }

        private async Task<T> GetAdapterAsync<T>(TransferJobSettings options) where T : IAdapter
        {
            var properAdapter = default(T);
            if (typeof(T) == typeof(ITargetAdapter))
                properAdapter = (T) _targetAdapters.FirstOrDefault(x => x.CanHandle(options));

            if (typeof(T) == typeof(ISourceAdapter))
                properAdapter = (T) _sourceAdapters.FirstOrDefault(x => x.CanHandle(options));

            if (typeof(T) == typeof(IInterimAdapter))
                properAdapter = (T) _interimAdapters.FirstOrDefault(x => x.CanHandle(options));

            return (T) await Task.Run(() => properAdapter?.Clone());
        }
    }
}


({
      property: 'og:url',
      hid: 'og:url',
      content: properties.url,
    })
  }

  if (properties.image) {
    results.push({
      property: 'og:image',
      hid: 'og:image',
      content: properties.image,
    })
  }
  return results
}
import { rword } from 'rword';
import { Op } from 'sequelize';

import { connectToDatabase } from '@common/db';
import Logger, { LogLevel } from '@common/util/Logger';

import runJob from '@app/util/runJob';
import Config from '@app/config';

import Round from '@db/models/Round';
import Predictor from '@db/models/Predictor';
import WeatherInfo from '@db/models/WeatherInfo';

async function main() {
  try {
    // Configure log level (which is set to debug by default in Config)
    Logger.setLogLevel(LogLevel.normal);

    // Establish connection to database
    await connectToDatabase(Config.DB);

    // Get the current round (there should only be 1 active round)
    const activeRounds: Round[] = await Round.findAll({
      where: {
        endDate: {
          [Op.eq]: null,
        },
      },
    });

    /** The only round that is currently active */
    let currentRound: Round;

    if (activeRounds.length > 1) {
      // More than 1 active round - oh noes (requires manual intervention in the DB to recover from this)
      throw new Error("Cannot continue processing. More than 1 active round! Manual intervention required");
    } else if (activeRounds.length === 0) {
      // No active rounds so start a new one!
      Logger.log("No active Rounds!");

      // Create Round object
      currentRound = await createNewRound();
    } else {
      Logger.log("There is an on-going round")
      // There is only 1 round - use it
      currentRound = activeRounds[0];
    }

    // 1 Get all active predictors for the current round
    let activePredictors: Predictor[] = await currentRound.getPredictors({
      where: {
        firstIncorrectDate: {
          [Op.eq]: null,
        },
      },
    });

    Logger.log(`Testing ${activePredictors.length} active predictors considering new data`);

    // 2 Any seeds that are wrong are recorded that they were incorrect
    let numIncorrectPredictors = 0;
    let numCorrectPredictors = 0;
    let currentRoundWeatherData = await getWeatherInfoForRound(currentRound);
    Logger.log(LogLevel.debug, "Current round actual weather", currentRoundWeatherData.map((x) => x.weatherType));
    for (let i = 0; i < activePredictors.length; i++) {
      let predictor = activePredictors[i];
      // Check if predictor is still correct
      let predictorStillCorrect = await isPredictorStillCorrect(activePredictors[i], currentRoundWeatherData);

      // If it is not, mark it as incorrect
      if (!predictorStillCorrect) {
        numIncorrectPredictors++;
        // Set firstIncorrectDate to now
        Logger.log(LogLevel.debug, `Marking predictor ${predictor.get('id')} as incorrect`);
        await predictor.update({
          firstIncorrectDate: new Date(),
        });
      } else {
        numCorrectPredictors++;
      }
    }

    Logger.log("Results:");
    Logger.log(`${numCorrectPredictors} predictors were still correct`);
    Logger.log(`${numIncorrectPredictors} predictors no longer correct`);

    // 3 If there are no remaining valid seeds in a round - mark it inactive
    if (numCorrectPredictors === 0) {
      Logger.log("There are no correct predictors left. Marking round as ended. A new round will be started");

      // Set round's end date to now
      await currentRound.update({
        endDate: ne


,n){t&&(l("",t,e,n,!0,!1),l(t,"",e,n,!1,!0))},traverseAncestors:function(t,e,n){l("",t,e,n,!0,!1)},_getFirstCommonAncestorID:u,_getNextDescendantID:s,isAncestorIDOf:o,SEPARATOR:p};e.exports=m},{"./ReactRootIndex":75,"./invariant":126}],61:[function(t,e){/**
 * Copyright 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactLegacyElement
 */
"use strict";function n(){if(f._isLegacyCallWarningEnabled){var t=a.current,e=t&&t.constructor?t.constructor.displayName:"";e||(e="Something"),c.hasOwnProperty(e)||(c[e]=!0,l(!1,e+" is calling a React component directly. Use a factory or JSX instead. See: http://fb.me/react-legacyfactory"),u("react_legacy_factory_call",{version:3,name:e}))}}function r(t){var e=t.prototype&&"function"==typeof t.prototype.mountComponent&&"function"==typeof t.prototype.receiveComponent;if(e)l(!1,"Did not expect to get a React class here. Use `Component` instead of `Component.type` or `this.constructor`.");else{if(!t._reactWarnedForThisType){try{t._reactWarnedForThisType=!0}catch(n){}u("react_non_component_in_jsx",{version:3,name:t.name})}l(!1,"This JSX uses a plain function. Only React components are valid in React's JSX transform.")}}function i(t){l(!1,"Do not pass React.DOM."+t.type+' to JSX or createFactory. Use the string "'+t.type+'" instead.')}function o(t,e){if("function"==typeof e)for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if("function"==typeof r){var i=r.bind(e);for(var o in r)r.hasOwnProperty(o)&&(i[o]=r[o]);t[n]=i}else t[n]=r}}var a=t("./ReactCurrentOwner"),s=t("./invariant"),u=t("./monitorCodeUse"),l=t("./warning"),c={},h={},p={},f={};f.wrapCreateFactory=function(t){var e=function(e){return"function"!=typeof e?t(e):e.isReactNonLegacyFactory?(i(e),t(e.type)):e.isReactLegacyFactory?t(e.type):(r(e),e)};return e},f.wrapCreateElement=function(t){var e=function(e){if("function"!=typeof e)return t.apply(this,arguments);var n;return e.isReactNonLegacyFactory?(i(e),n=Array.prototype.slice.call(arguments,0),n[0]=e.type,t.apply(this,n)):e.isReactLegacyFactory?(e._isMockFunction&&(e.type._mockedReactClassConstructor=e),n=Array.prototype.slice.call(arguments,0),n[0]=e.type,t.apply(this,n)):(r(e),e.apply(null,Array.prototype.slice.call(arguments,1)))};return e},f.wrapFactory=function(t){s("function"==typeof t,"This is suppose to accept a


*
     * @param name the name value to set
     * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
     */
    public OpenShiftManagedClusterMasterPoolProfile withName(String name) {
        this.name = name;
        return this;
    }

    /**
     * Get number of masters (VMs) to host docker containers. The default value is 3.
     *
     * @return the count value
     */
    public int count() {
        return this.count;
    }

    /**
     * Set number of masters (VMs) to host docker containers. The default value is 3.
     *
     * @param count the count value to set
     * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
     */
    public OpenShiftManagedClusterMasterPoolProfile withCount(int count) {
        this.count = count;
        return this;
    }

    /**
     * Get size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
     *
     * @return the vmSize value
     */
    public OpenShiftContainerServiceVMSize vmSize() {
        return this.vmSize;
    }

    /**
     * Set size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
     *
     * @param vmSize the vmSize value to set
     * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
     */
    public OpenShiftManagedClusterMasterPoolProfile withVmSize(OpenShiftContainerServiceVMSize vmSize) {
        this.vmSize = vmSize;
        return this;
    }

    /**
     * Get subnet CIDR for the peering.
     *
     * @return the subnetCidr value
     */
    public String subnetCidr() {
        return this.subnetCidr;
    }

    /**
     * Set subnet CIDR for the peering.
     *
     * @param subnetCidr the subnetCidr value to set
     * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
     */
    public OpenShiftManagedClusterMasterPool


ors seen so far by libraries loaded
  /// by this loader.
  ///
  /// A handled error is an error that has been added to the generated AST
  /// already, for example, as a throw expression.
  final List<LocatedMessage> handledErrors = <LocatedMessage>[];

  /// List of all unhandled compile-time errors seen so far by libraries loaded
  /// by this loader.
  ///
  /// An unhandled error is an error that hasn't been handled, see
  /// [handledErrors].
  final List<LocatedMessage> unhandledErrors = <LocatedMessage>[];

  /// List of all problems seen so far by libraries loaded by this loader that
  /// does not belong directly to a library.
  final List<FormattedMessage> allComponentProblems = <FormattedMessage>[];

  /// The text of the messages that have been reported.
  ///
  /// This is used filter messages so that we don't report the same error twice.
  final Set<String> seenMessages = new Set<String>();

  /// Set to `true` if one of the reported errors had severity `Severity.error`.
  ///
  /// This is used for [hasSeenError].
  bool _hasSeenError = false;

  // Coverage-ignore(suite): Not run.
  /// Clears the [seenMessages] and [hasSeenError] state.
  void resetSeenMessages() {
    seenMessages.clear();
    _hasSeenError = false;
  }

  /// Returns `true` if a compile time error has been reported.
  bool get hasSeenError => _hasSeenError;

  LibraryBuilder? _coreLibrary;
  CompilationUnit? _coreLibraryCompilationUnit;
  CompilationUnit? _typedDataLibraryCompilationUnit;

  LibraryBuilder? get typedDataLibrary =>
      _typedDataLibraryCompilationUnit?.libraryBuilder;

  final Set<Uri> roots = {};

  // TODO(johnniwinther): Replace with a `singleRoot`.
  // See also https://dart-review.googlesource.com/c/sdk/+/273381.
  LibraryBuilder? get rootLibrary {
    for (Uri uri in roots) {
      LibraryBuilder? builder = lookupLoadedLibraryBuilder(uri);
      if (builder != null) return builder;
    }
    return null;
  }

  CompilationUnit? get rootCompilationUnit {
    for (Uri uri in roots) {
      CompilationUnit? builder = _compilationUnits[uri];
      if (builder != null) return builder;
    }
    return null;
  }

  int byteCount = 0;

  UriOffset? currentUriForCrashReporting;

  final List<String> _expectedOutlineFutureProblems = [];
  final List<String> _expectedBodyBuildingFutureProblems = [];

  SourceLoader(this.fileSystem, this.includeComments, this.target)
    : dataForTesting = retainDataForTesting
          ?
            // Coverage-ignore(suite): Not run.
            new SourceLoaderDataForTesting()
          : null;

  void installAllProblemsIntoComponent(
    Component component, {
    required CompilationPhaseForProblemReporting currentPhase,
  }) {
    List<String> expectedFutureProblemsForCurrentPhase = switch (currentPhase) {
      CompilationPhaseForProblemReporting.outline =>
        _expectedOutlineFutureProblems,
      CompilationPhaseForProblemReporting.bodyBuilding =>
        _expectedBodyBuildingFutureProblems,
    };
    assert(
      expectedFutureProblemsForCurrentPhase.isEmpty || hasSeenError,
      "Expected problems to be reported, but there were none.\n"
      "Current compilation phase: ${currentPhase}\n"
      "Expected at these locations:\n"
      "  * ${expectedFutureProblemsForCurrentPhase.join("\n  * ")}",
    );
    if (allComponentProblems.isNotEmpty) {
      component.problemsAsJson ??= <String>[];
    }
    for (int i = 0; i < allComponentProblems.length; i++) {
      FormattedMessage formattedMessage = allComponentProblems[i];
      component.


013"
          + "2\032.google.protobuf.Timestamp\022/\n\013update_t"
          + "ime\030\006 \001(\0132\032.google.protobuf.Timestamp\"L\n"
          + "\023ListPackagesRequest\022\016\n\006parent\030\001 \001(\t\022\021\n\t"
          + "page_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"t\n\024L"
          + "istPackagesResponse\022C\n\010packages\030\001 \003(\01321."
          + "google.devtools.artifactregistry.v1beta2"
          + ".Package\022\027\n\017next_page_token\030\002 \001(\t\"!\n\021Get"
          + "PackageRequest\022\014\n\004name\030\001 \001(\t\"$\n\024DeletePa"
          + "ckageRequest\022\014\n\004name\030\001 \001(\tB\220\002\n,com.googl"
          + "e.devtools.artifactregistry.v1beta2B\014Pac"
          + "kageProtoP\001ZUcloud.google.com/go/artifac"
          + "tregistry/apiv1beta2/artifactregistrypb;"
          + "artifactregistrypb\252\002%Google.Cloud.Artifa"
          + "ctRegistry.V1Beta2\312\002%Google\\Cloud\\Artifa"
          + "ctRegistry\\V1beta2\352\002(Google::Cloud::Arti"
          + "factRegistry::V1beta2b\006proto3"
    };
    descriptor =
        com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
            descriptorData,
            new com.google.protobuf.Descriptors.FileDescriptor[] {
              com.google.protobuf.TimestampProto.getDescriptor(),
            });
    internal_static_google_devtools_artifactregistry_v1beta2_Package_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_google_devtools_artifactregistry_v1beta2_Package_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_devtools_artifactregistry_v1beta2_Package_descriptor,
            new java.lang.String[] {
              "Name", "DisplayName", "CreateTime", "UpdateTime",
            });
    internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesRequest_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesRequest_descriptor,
            new java.lang.String[] {
              "Parent", "PageSize", "PageToken",
            });
    internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesResponse_descriptor =
        getDescriptor().getMessageTypes().get(2);
    internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_devtools_artifactregistry_v1beta2_ListPackagesResponse_descriptor,
            new java.lang.String[] {
              "Packages", "NextPageToken",
            });
    internal_static_google_devtools_artifactregistry_v1beta2_GetPackageRequest_descriptor =
        getDescriptor().getMessageTypes().get(3);
    internal_static_google_devtools_artifactregistry_v1beta2_GetPackageRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_devtools_artifactregistry_v1beta2_GetPackageRequest_descriptor,
            new java.lang.String[] {
              "Name",
            });
    internal_static_google_devtools_artifactregistry_v1b


sure_all_hidden()
            NVTinygit.ensure_hidden()
            NVNoNeckPain.disable()
        end,
    })

    vim.api.nvim_create_autocmd("User", {
        pattern = "PersistenceLoadPost",
        callback = function()
            NVNoNeckPain.reload()
        end,
    })
end

function NVPersistence.has_session()
    local plugin = require("persistence")

    local sessions = plugin.list()
    local current_session = plugin.current()

    for _, session in ipairs(sessions) do
        if session == current_session then
            return true
        end
    end

    return false
end

function NVPersistence.restore()
    require("persistence").load()
end

return { NVPersistence }