7,y = -278.65931463305},
				[11] = {x = 219.62267774122,y = -268.06292956238},
				[12] = {x = 215.01877336133,y = -254.27123831042},
				[13] = {x = 214.66705616404,y = -250.28348417243},
				[14] = {x = 228.6267711475,y = -258.02349870685},
				[15] = {x = 241.23377863235,y = -258.77958390784},
			}},
			[8] = {x = 326.24128582189,y = -230.66285760621,sublevel=1,teeming=true,patrolFacing=(25/32)*pi,patrol={
				[1] = {x = 326.24128582189,y = -230.66285760621},
				[2] = {x = 323.84601000709,y = -238.25003869752},
				[3] = {x = 337.14152818453,y = -244.00093728107},
				[4] = {x = 363.45482711216,y = -255.10455640747},
				[5] = {x = 364.48518585492,y = -247.69170951743},--green
				[6] = {x = 355.75145933911,y = -242.27840492856},
				[7] = {x = 358.10380890649,y = -225.50585810944},--ylo
				[8] = {x = 349.22600512997,y = -216.23704237853},
			}},
			[9] = {x = 327.24940878641,y = -147.3301129855,sublevel=1,teeming=true,patrolFacing=(55/32)*pi,patrol={
				[1] = {x = 327.24940878641,y = -147.3301129855},
				[2] = {x = 357.92943720235,y = -125.68162468393},
				[3] = {x = 363.24990453274,y = -116.13617967976},
				[4] = {x = 363.96844304462,y = -112.04526731358},
				[5] = {x = 383.24494258684,y = -116.59071167531},
				[6] = {x = 383.39179021279,y = -127.13050630692},
				[7] = {x = 379.65490880478,y = -132.2491604663},
				[8] = {x = 371.97881153584,y = -131.28830053333},
				[9] = {x = 363.99320280862,y = -135.4350062689},
				[10] = {x = 361.04652236022,y = -139.1339220659},
				[11] = {x = 354.01931215059,y = -148.98324994223},
				[12] = {x = 359.69653970552,y = -149.10624816736},
				[13] = {x = 359.20757381243,y = -157.84913865899},
				[14] = {x = 358.43164898763,y = -160.28752539491},
				[15] = {x = 347.62026560673,y = -163.05767088623},
				[16] = {x = 340.93796602215,y = -161.66662229364},
				[17] = {x = 336.33173023047,y = -171.1805921998},
				[18] = {x = 325.69682664011,y = -171.30767759643},
				[19] = {x = 320.51685428932,y = -176.42033505651},


Something make you change your mind?

Yeah, three words: Total Creative Freedom.

October 1, 2000

Yeah, the projected per-episode budget is quite a bit higher than on Crusade or
B5, and the salary is just a bit over double.  I'd been in syndie/basic cable
so long -- ever since Murder, She Wrote -- that I'd kinda forgotten what *real*
networks pay.

It's also going to be nice, in the pilot, to really take things to the wall in
terms of content, something I could never do in syndie or basic cable.

October 2, 2000

How will the new show make it to foreign markets?

Those decisions are all way down the road; first gotta get the pilot written.

October 3, 2000

Reports indicate
that the new series is based on the European SF comic "Jeremiah."

<nobr>
</nobr>

Last update:
October 3, 2000

<title>JMS on the season 5 renewal drop-dead date</title>
<map name="toplevel">
<area shape="RECT" coords="0,0,99,23" href="/lurk/universe/intro.html" alt="Universe">
<area shape="RECT" coords="100,0,199,23" href="/lurk/episodes.php" alt="Episodes">
<area shape="RECT" coords="200,0,299,23" href="/lurk/making/creators.html" alt="People">
<area shape="RECT" coords="300,0,399,23" href="/lurk/resources/online.html" alt="Resources">
<area shape="RECT" coords="400,0,499,23" href="/lurk/reference/episodes.html" alt="Encyclopedia">
<area shape="RECT" coords="0,24,499,31" nohref>
</map>

<map name="titlebar">
<area shape="RECT" coords="0,0,370,31" href="/lurk/lurker.html" alt="Home">
<area shape="RECT" coords="371,0,412,31" href="/lurk/search.html" alt="Find">
<area shape="RECT" coords="413,0,454,31" href="/lurk/toc.html" alt="Index">
<area shape="RECT" coords="455,0,499,31" href="/lurk/help.html" alt="Help">
</map>

<nobr>

</nobr>

See Also:
JMS's comments on how
the story will work regardless of renewal

It appears that Warner Bros. may not make an announcement concerning
B5's renewal status until July.  The cast's contracts obligate Warner Bros.
to tell the actors whether or not they'll be working for another year by a
certain date.  Originally, the date was June 15.  However, JMS recently had
this to say:

      The info was wrong.  The new date


.
	}
}

func TestLoggerQueueChain(t *testing.T) {
	ch := make(chan *toPost)
	defer close(ch)
	l := &Logger{toPost: ch, postCertCache: newLockedMap(), postChainCache: newLockedMap()}

	for i, qt := range loggerQueueTests {
		l.wg.Add(1)
		go testLoggerQueueChain(t, i, &qt, l)
		chain := extractTestChain(t, i, qt.chain)
		l.QueueChain(chain)
		l.wg.Wait()
	}
}

// Logger.RootCerts() test
func TestRootCerts(t *testing.T) {
	ctx := context.Background()
	rootCertsTests := []struct {
		url           string
		expectedRoots []string
	}{
		{
			"https://ct.googleapis.com/pilot",
			[]string{verisignRoot, comodoRoot}, // These are not the actual roots for the pilot CT log, this is just for testing purposes.
		},
	}

	for i, test := range rootCertsTests {
		c := &http.Client{Transport: &rootCertsTestRoundTripper{}}
		logClient, err := client.New(test.url, c, jsonclient.Options{})
		if err != nil {
			t.Fatalf("failed to create LogClient: %v", err)
		}
		l := &Logger{ctx: ctx, client: logClient}
		roots := l.RootCerts()
		matchTestRoots(t, i, test.expectedRoots, roots)
	}
}
// Copyright 2022 Google LLC. All Rights Reserved.
//
// 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.

// Package loglist3 allows parsing and searching of the master CT Log list.
// It expects the log list to conform to the v3 schema.
package loglist3

import (
	"bytes"
	"crypto"
	"crypto/ecdsa"
	"crypto/rsa"
	"crypto/sha256"
	"encoding/base64"
	"encoding/hex"
	"encoding/json"
	"fmt"
	"regexp"
	"strings"
	"time"
	"unicode"

	"github.com/google/certificate-transparency-go/tls"
)

const (
	// LogListURL has the master URL for Google Chrome's log list.
	LogListURL = "https://www.gstatic.com/ct/log_list/v3/log_list.json"
	// LogListSignatureURL has the URL for the signature over Google Chrome's log list.
	LogListSignatureURL = "https://www.gstatic.com/ct/log_list/v3/log_list.sig"
	// AllLogListURL has the URL for the list of all known logs.
	AllLogListURL = "https://www.gstatic.com/ct/log_list/v3/all_logs_list.json"
	// AllLogListSignatureURL has the URL for the signature over the list of all known logs.
	AllLogListSignatureURL = "https://www.gstatic.com/ct/log_list/v3/all_logs_list.sig"
)

// Manually mapped from https://www.gstatic.com/ct/log_list/v3/log_list_schema.json

// LogList holds a collection of CT logs, grouped by operator.
type LogList struct {
	// IsAllLogs is set to true if the list contains all known logs, not
	// only usable ones.
	IsAllLogs bool `json:"is_all_logs,omitempty"`
	// Version is the version of the log list.
	Version string `json:"version,omitempty"`
	// LogListTimestamp is the time at which the log list was published.
	LogListTimestamp time.Time `json:"log_list_timestamp,omitempty"`
	// Operators is a list of CT log operators and the logs they operate.
	Operators []*Operator `js


    justify-content: center;
}

.Highlights_cardDetails__v4Cip {
    width: 36px;
    height: 36px;
    margin-right: 10px;
}

.Highlights_typographyDetail__1qVni {
    color: #22212c;
    font-size: 28px;
    font-weight: 300;
}

.Highlights_gray__3CCxq {
    color: #8a8fa8;
}

@media (max-width: 1024px) {
    #editors .container,
    .Highlights_container__1kvqi {
        flex-direction: column;
        align-items: center;
    }
    .Highlights_card__34b3J {
        max-width: 32rem;
    }
}

.Highlights_svgContainerBottom__2HAEf,
.Highlights_svgContainerTop__39gIz {
    display: block;
    position: relative;
    top: 0;
}

@media (max-width: 1791px) {
    .Highlights_svgContainerBottom__2HAEf,
    .Highlights_svgContainerTop__39gIz {
        background-size: contain;
    }
}

.Highlights_svgContainerBottom__2HAEf {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
}

.Highlights_iconCheck__2Hfri {
    width: 36px;
    margin-right: 10px;
}

.Highlights_primary__2U_hB {
    fill: var(--yellow);
}

.Highlights_secondary__2LJkW {
    fill: var(--black);
}

#faq {
    background: transparent;
}

.Faq_container__26-En {
    max-width: 1200px;
    padding: 60px 0;
    margin: 0 auto;
}

.Faq_grid__2zjq3 {
    display: grid;
    -webkit-column-count: 3;
    column-count: 3;
    grid-column-gap: 40px;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
}

.title {
    text-align: center;
}

.answer {
    color: #8a8f98;
}

@media (max-width: 960px) {
    .Faq_grid__2zjq3 {
        grid-column-gap: 20px;
    }
}

.Authors_authors__22hBU {
    background: transparent;
}

.Authors_author__1KlsQ {
    padding: 0 15px;
}

.Authors_container__22fcC {
    margin: 0 auto 100px;
    max-width: 960px;
    display: flex;
    justify-content: space-around;
}

.Authors_content__3xCx2 {
    border-radius: var(--rounded-2xl);
    background: #1d1e26;
    padding: 30px;
    max-width: 25rem;
    margin-bottom: 40px;
}

.Authors_photo__2_WNn {
    width: 200px;
    border-radius: var(--rounded-full);
    margin-bottom: 30px;
}

.Authors_container__22fcC .Authors_author__1KlsQ:first-child .Authors_photo__2_WNn {
    -webkit-box-shadow: 0 0 0 4px #1d1e26, 0 0 0 6px var(--purple);
    box-shadow: 0 0 0 4px #1d1e26, 0 0 0 6px var(--purple);
}

.Authors_container__22fcC .Authors_author__1KlsQ:last-child .Authors_photo__2_WNn {
    -webkit-box-shadow: 0 0 0 4px #1d1e26, 0 0 0 6px var(--green);
    box-shadow: 0 0 0 4px #1d1e26, 0 0 0 6px var(--green);
}

@media (max-width: 960


		{
						id: 4
					},
					{
						id: 5
					}
				]
			}
		]
	}

	it("Deep copy works", () => {
		const clone = deepCopyObject(data)
		const dataString = JSON.stringify(data)
		const cloneString = JSON.stringify(clone)
		expect(clone === data).toBe(false)
		expect(cloneString === dataString).toBe(true)
	})

	it("Extracting last non-numeric item from array works", () => {
		const path1 = ["something", "0", 1, "something else"]
		const path2 = ["something", "0", 1]
		const path3 = [0]
		expect(getLastNonNumericItemInArray(path1)).toBe("something else")
		expect(getLastNonNumericItemInArray(path2)).toBe("0")
		expect(getLastNonNumericItemInArray(path3)).toBe(null)
	})

	it("Sorting arrays by multiple criteria works", () => {
		const dataArray = [
			{
				number: 3,
				letter: "a"
			},
			{
				number: 1,
				letter: "a"
			},
			{
				number: 2,
				letter: "c"
			},
			{
				number: 2,
				letter: "b"
			}
		]
		const sortByNumber = (a: any, b: any) => {
			if (a.number < b.number) return -1
			if (a.number > b.number) return 1
			return 0
		}
		const sortByLetter = (a: any, b: any) => {
			if (a.letter < b.letter) return -1
			if (a.letter > b.letter) return 1
			return 0
		}

		const numberLetter = mergeArraySortFunctions([sortByNumber, sortByLetter])
		const letterNumber = mergeArraySortFunctions([sortByLetter, sortByNumber])
		const letter = mergeArraySortFunctions([sortByLetter])

		let result = []

		result = [...dataArray].sort(numberLetter)
		expect(result[0].letter).toBe("a")
		expect(result[1].letter).toBe("b")
		expect(result[2].letter).toBe("c")
		expect(result[3].letter).toBe("a")

		result = [...dataArray].sort(letterNumber)
		expect(result[0].letter).toBe("a")
		expect(result[0].number).toBe(1)
		expect(result[1].letter).toBe("a")
		expect(result[2].letter).toBe("b")
		expect(result[3].letter).toBe("c")

		result = [...dataArray].sort(letter)
		expect(result[0].letter).toBe("a")
		expect(result[0].number).toBe(3)
		expect(result[1].letter).toBe("a")
		expect(result[2].letter).toBe("b")
		expect(result[3].letter).toBe("c")
	})
})
import { Test, TestingModule } from '@nestjs/testing';
import { UserController } from './user.controller';
import { UserService } from './user.service';
import { User } from './entities/user.entity';
import { CacheModule } from '../cache/cache.module';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { UserNotFoundException } from './exceptions/user-not-found.exception';

const name = 'john';
const age = 12;

const user = new User(name, age);

const users = [user, new User('leonard', 12), new User('sheldon', 12)];

describe('UserController', () => {
  let controller: UserController;
  let service: UserService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      imports: [CacheModule],
      controllers: [UserController],
      providers: [
        {
          provide: UserService,
          useValue: {
            create: jest
              .fn()
              .mockImplementation((createUserDto: CreateUserD


from brownie import *
import pytest

deployer = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'
GasPrice = 600e9
USDC = '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'
assets = ['0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174','0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270','0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
          '0xc2132d05d31c914a87c6611c10748aeb04b58e8f','0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6','0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39']
treasury = '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
protocol = '0x059D60a9CEfBc70b9Ea9FFBb9a041581B1dFA6a8'
def test_SweepFees():
    distribute = FeeExtractAndDistribute_Polygon.deploy({'from':deployer,'gas_price':GasPrice})
    FeeControl = Proxy_0_8.deploy(distribute.address, {'from':deployer,'gas_price':GasPrice})
    FeeControl = Contract.from_abi('fees', FeeControl.address, FeeExtractAndDistribute_Polygon.abi)
    FeeControl.setTreasuryWallet(treasury, {'from':deployer,'gas_price':GasPrice})
    FeeControl.setFeeTokens(assets, {'from':deployer,'gas_price':GasPrice})
    bZx = interface.IBZx(protocol)
    accounts.at(treasury, force=True).transfer(bZx.owner.call(), 100e18, required_confs=0, gas_price=100e9)
    bZx.setFeesController(FeeControl.address, {'from':bZx.owner.call(),'gas_price':GasPrice})
    FeeControl.sweepFees({'from':deployer,'gas_price':GasPrice})
    assert(interface.IERC20(USDC).balanceOf(FeeControl.treasuryWallet.call()) > 0) #ensures balance has
    assert(sum(bZx.queryFees.call(assets,0)[0]) == 0) #ensures all fees for all assets are 0 as if sum of query > 0 then all were not withdrawn
    for tokens in assets:
        assert(interface.IERC20(tokens).balanceOf(FeeControl.address) == 0) #checks to make sure extract contract is emptied for all tokens


.Sprintf(
				`schema="%s" thread_id="%s" digest="%s" event_id="%s" wait_event_id="%s" wait_end_event_id="%s" wait_event_name="%s" wait_object_name="%s" wait_object_type="%s" wait_time="%fms"`,
				row.Schema.String,
				row.ThreadID.String,
				row.Digest.String,
				row.StatementEventID.String,
				row.WaitEventID.String,
				row.WaitEndEventID.String,
				row.WaitEventName.String,
				row.WaitObjectName.String,
				row.WaitObjectType.String,
				waitTime,
			)

			if c.disableQueryRedaction && row.SQLText.Valid {
				waitLogMessage += fmt.Sprintf(` sql_text="%s"`, row.SQLText.String)
			}

			c.entryHandler.Chan() <- database_observability.BuildLokiEntryWithTimestamp(
				logging.LevelInfo,
				OP_WAIT_EVENT,
				waitLogMessage,
				int64(millisecondsToNanoseconds(row.TimestampMilliseconds)),
			)
		}
	}

	if err := rs.Err(); err != nil {
		return fmt.Errorf("failed to iterate over samples result set: %w", err)
	}

	return nil
}

func (c *QuerySamples) updateSetupConsumersSettings(ctx context.Context) error {
	rs, err := c.dbConnection.ExecContext(ctx, updateSetupConsumers)
	if err != nil {
		return fmt.Errorf("failed to update performance_schema.setup_consumers: %w", err)
	}

	rowsAffected, err := rs.RowsAffected()
	if err != nil {
		return fmt.Errorf("failed to get rows affected from performance_schema.setup_consumers: %w", err)
	}
	level.Debug(c.logger).Log("msg", "updated performance_schema.setup_consumers", "rows_affected", rowsAffected)

	return nil
}

func (c *QuerySamples) determineTimerClauseAndLimit(uptime float64) (string, float64) {
	timerClause := endOfTimeline
	currentOverflows := calculateNumberOfOverflows(uptime)
	previousOverflows := calculateNumberOfOverflows(c.lastUptime)
	switch {
	case currentOverflows > previousOverflows:
		// if we have just overflowed, collect both the beginning and end of the timeline
		timerClause = beginningAndEndOfTimeline
	case uptime < c.lastUptime:
		// server has restarted
		c.timerBookmark = 0
	}

	limit := uptimeSinceOverflow(uptime)

	return timerClause, limit
}
// Package connector exposes utilities to create an Alloy component from
// OpenTelemetry Collector connectors.
package connector

import (
	"context"
	"errors"
	"os"

	"github.com/prometheus/client_golang/prometheus"
	otelcomponent "go.opentelemetry.io/collector/component"
	otelconnector "go.opentelemetry.io/collector/connector"
	"go.opentelemetry.io/collector/pdata/pmetric"
	"go.opentelemetry.io/collector/pipeline"
	sdkprometheus "go.opentelemetry.io/otel/exporters/prometheus"
	"go.opentelemetry.io/otel/sdk/metric"

	"github.com/grafana/alloy/internal/build"
	"github.com/grafana/alloy/internal/component"
	"github.com/grafana/alloy/internal/component/otelcol"
	otelcolCfg "github.com/grafana/alloy/internal/component/otelcol/config"
	"github.com/grafana/alloy/internal/component/otelcol/internal/fanoutconsumer"
	"github.com/grafana/alloy/internal/component/otelcol/internal/interceptconsumer"
	"github.com/grafana/alloy/internal/component/otelcol/internal/lazycollector"
	"github.com/grafana/alloy/internal/component/otelcol/internal/lazyconsumer"
	"github.com/grafana/alloy/internal/component/otelcol/internal/livedebuggingpublisher"
	"github.com/grafana/alloy


 long)failsafe_callback, 0);
#endif
    }

}

void
arch_pre_suspend(void)
{
    arch_mm_pre_suspend();

    unmap_shared_info();

    /* Replace xenstore and console pfns with the correspondent mfns */
    start_info_ptr->store_mfn =
        machine_to_phys_mapping[start_info_ptr->store_mfn];
    start_info_ptr->console.domU.mfn =
        machine_to_phys_mapping[start_info_ptr->console.domU.mfn];

}

void
arch_post_suspend(int canceled)
{
    if (canceled) {
        start_info_ptr->store_mfn = pfn_to_mfn(start_info_ptr->store_mfn);
        start_info_ptr->console.domU.mfn = pfn_to_mfn(start_info_ptr->console.domU.mfn);
    } else {
        memcpy(&start_info, start_info_ptr, sizeof(start_info_t));
    }

    HYPERVISOR_shared_info = map_shared_info(start_info_ptr->shared_info);

    arch_mm_post_suspend(canceled);
}

void
arch_fini(void)
{
#ifdef __i386__
	HYPERVISOR_set_callbacks(0, 0, 0, 0);
#else
	HYPERVISOR_set_callbacks(0, 0, 0);
#endif
}

void
arch_print_info(void)
{
	printk("  stack:      %p-%p\n", stack, stack + sizeof(stack));
}


m10
	vpsrldq	$8, %xmm7, %xmm7
	vpxor	%xmm7, %xmm10, %xmm7
	vpclmulqdq	$0, %xmm4, %xmm3, %xmm10
	vpshufd	$78, %xmm8, %xmm8
	vpclmulqdq	$16, %xmm4, %xmm3, %xmm11
	vpxor	%xmm7, %xmm8, %xmm7
	vpclmulqdq	$1, %xmm4, %xmm3, %xmm8
	vpxor	%xmm7, %xmm9, %xmm7
	vpxor	%xmm11, %xmm8, %xmm8
	vpslldq	$8, %xmm8, %xmm9
	vpxor	%xmm9, %xmm10, %xmm9
	vpclmulqdq	$16, %xmm1, %xmm9, %xmm10
	vpshufd	$78, %xmm9, %xmm9
	vpxor	%xmm9, %xmm10, %xmm9
	vpclmulqdq	$16, %xmm1, %xmm9, %xmm1
	vpclmulqdq	$17, %xmm4, %xmm3, %xmm10
	vpsrldq	$8, %xmm8, %xmm8
	vpxor	%xmm8, %xmm10, %xmm8
	vpshufd	$78, %xmm9, %xmm9
	vpxor	%xmm9, %xmm8, %xmm8
	vpxor	%xmm1, %xmm8, %xmm1
	vmovdqa	%xmm4, (%rdi)
	vmovdqa	%xmm2, 16(%rdi)
	vmovdqa	%xmm0, 32(%rdi)
	vmovdqa	%xmm3, 48(%rdi)
	vmovdqa	%xmm1, 64(%rdi)
	vmovdqa	%xmm5, 80(%rdi)
	vmovdqa	%xmm7, 96(%rdi)
	vmovdqa	%xmm6, 112(%rdi)
.LBB0_2:
	xorl	%eax, %eax
	cmpq	$32, %rdx
	sete	%al
	retq
.Lfunc_end0:
	.size	haberdashery_sivmac_haswell_init, .Lfunc_end0-haberdashery_sivmac_haswell_init
	.cfi_endproc

	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0
.LCPI1_0:
	.zero	8
	.quad	-4467570830351532032
.LCPI1_1:
	.quad	-1
	.quad	9223372036854775807
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0
.LCPI1_2:
	.quad	-4467570830351532032
	.section	.text.haberdashery_sivmac_haswell_sign,"ax",@progbits
	.globl	haberdashery_sivmac_haswell_sign
	.p2align	4, 0x90
	.type	haberdashery_sivmac_haswell_sign,@function
haberdashery_sivmac_haswell_sign:
	.cfi_startproc
	cmpq	$16, %r8
	setne	%r8b
	movabsq	$68719476736, %rax
	cmpq	%rax, %rdx
	seta	%r9b
	xorl	%eax, %eax
	orb	%r8b, %r9b
	jne	.LBB1_33
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15


ontributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
///////////////////////////////////////////////////////////////////////////

//---------------------------------------------------------------------------
//
//	b44ExpLogTable
//
//	A program to generate lookup tables for
//
//		y = exp (x / 8)
//
//	and
//		x = 8 * log (x);
//
//	where x and y are 16-bit floating-point numbers
//
//	The tables are used by class B44Compressor.
//
//---------------------------------------------------------------------------

#include <half.h>
#include <math.h>
#include <iostream>
#include <iomanip>

using namespace std;

//---------------------------------------------
// Main - prints the half-to-float lookup table
//---------------------------------------------

int
main ()
{
#ifndef HAVE_IOS_BASE
    cout.setf (ios::hex, ios::basefield);
#else
    cout.setf (ios_base::hex, ios_base::basefield);
#endif

    cout << "//\n"
	    "// This is an automatically generated file.\n"
	    "// Do not edit.\n"
	    "//\n\n";

    const int iMax = (1 << 16);

    cout << "const unsigned short expTable[] =\n"
	    "{\n"
	    "    ";

    for (int i = 0; i < iMax; i++)
    {
	half h;
	h.setBits (i);

	if (!h.isFinite())
	    h = 0;
	else if (h >= 8 * log (HALF_MAX))
	    h = HALF_MAX;
	else
	    h = exp (h / 8);

	cout << "0x" << setfill ('0') << setw (4) << h.bits() << ", ";

	if (i % 8 == 7)
	{
	    cout << "\n";

	    if (i < iMax - 1)
		cout << "    ";
	}
    }

    cout << "};\n\n";

    cout << "const unsigned short logTable[] =\n"
	    "{\n"
	    "    ";

    for (int i = 0; i < iMax; i++)
    {
	half h;
	h.setBits (i);

	if (!h.isFinite() || h < 0)
	    h = 0;
	else
	    h = 8 * log (h);

	cout << "0x" << setfill ('0') << setw (4) << h.bits() << ", ";

	if (i % 8 == 7)
	{
	    cout << "\n";

	    if (i < iMax - 1)
		cout << "    ";
	}
    }

    cout << "};\n";

    return 0;
}
///////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
// Digital Ltd. LLC
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
// *       Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// *       Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and


nel_S1:

	ands	I, N, #3
	ble	.Lscal_kernel_L999

.Lscal_kernel_S10:

	KERNEL_S1

	subs    I, I, #1
        bne     .Lscal_kernel_S10

.Lscal_kernel_L999:

	mov	w0, wzr
	ret

.Lscal_kernel_zero:

	INIT_S

.Lscal_kernel_Z1:

	st1	DAV, [X], INC_X
	subs    N, N, #1
        bne     .Lscal_kernel_Z1

	mov	w0, wzr
	ret

	EPILOGUE


import math
import torch
import biotorch.layers.fa_constructor as fa_constructor

from typing import Union
from torch.nn.common_types import _size_2_t
from biotorch.autograd.fa.conv import Conv2dGrad

class Conv2d(fa_constructor.Conv2d):
    """
    Implements the method from How Important Is Weight Symmetry in Backpropagation?
    with the modification of taking the absolute value of the Backward Matrix

    Batchwise Random Magnitude Sign-concordant Feedbacks (brSF):
    weight_backward = |M| ◦ sign(weight), where M is redrawn after each update of W (i.e., each mini-batch).

    (https://arxiv.org/pdf/1510.05067.pdf)
    """

    def __init__(
            self,
            in_channels: int,
            out_channels: int,
            kernel_size: _size_2_t,
            stride: _size_2_t = 1,
            padding: Union[str, _size_2_t] = 0,
            dilation: _size_2_t = 1,
            groups: int = 1,
            bias: bool = True,
            padding_mode: str = 'zeros',
            layer_config: dict = None
    ):
        if layer_config is None:
            layer_config = {}
        layer_config["type"] = "brsf"

        super(Conv2d, self).__init__(
            in_channels,
            out_channels,
            kernel_size,
            stride,
            padding,
            dilation,
            groups,
            bias,
            padding_mode,
            layer_config
        )


t; ++i)
            {
                CommandScopes[i].Discover(context);
            }
        }

        public void Validate(T model, IValidationContext context)
        {
            if (IsNullable)
            {
                if (model == null)
                {
                    if (Presence == Presence.Required)
                    {
                        context.AddError(RequiredErrorId, true);
                    }

                    return;
                }

                if (Presence == Presence.Forbidden)
                {
                    context.AddError(ForbiddenErrorId, true);

                    return;
                }
            }

            for (var i = 0; i < CommandScopes.Count; ++i)
            {
                CommandScopes[i].Validate(model, context);

                if (context.ShouldFallBack)
                {
                    return;
                }
            }
        }
    }
}


.l	d0-d7/a0-a5,-(a7)
	movem.l	x(a6),d0-d7/a0-a5
	movem.l	d0-d7/a0-a5,-(a7)
	lea	-160+largeur/2(a7),a7
	endr
	illegal
endscroller

palette:
	DC.W	$000,$102,$213,$324,$435,$657,$776,$412
	DC.W	$762,$740,$612,$547,$300,$200,$070,$070

	ifeq	1
bug:	move	#$2700,sr
1$	addq	#7,$ffff8240.w
	bra.s	1$
kbd:
	tst.b	$fffffc00.w
	bpl.s	bug
	move	d0,-(sp)
	clr	d0
	move.b	$fffffc02.w,d0
	move.b	d0,touche
	move	(sp)+,d0
;	addq	#7,$ffff8240.w
	rte
	endc

vitx:	dc.w	4
coordx:	dc.w	0
;
REFRESH:
	move	coordx,lastx

	move	vitx,d0
	add	d0,coordx
	cmp	#320-4,coordx
	bls.s	.noclipx
	sgt	d0
	ext	d0
	and	#320-4,d0
	move	d0,coordx
	neg	vitx
.noclipx

	moveq	#$f,d1
	and	coordx,d1		;d1=dcalage
	lsr	#2,d1
	mulu	#bitmap1-bitmap0,d1

	moveq	#0,d0
	move	coordx,d0
	lsr	#4,d0			;coordx/16

	lea	blocks,a4
	add	d0,a4			;pointeur map

	asl	#3,d0			;*8
	lea	bitmap,a6
	add.l	d1,a6
	add	d0,a6
	move.l	a6,ptrbuf		;pointeur buffer

	move	coordx,d0
	sub	lastx,d0
	beq


Input(input_file_name, rtp_ext_map,
                                      config.ssrc_filter));
  } else {
    input.reset(NetEqEventLogInput::CreateFromFile(input_file_name,
                                                   config.ssrc_filter));
  }

  std::cout << "Input file: " << input_file_name << std::endl;
  if (!input) {
    std::cerr << "Error: Cannot open input file" << std::endl;
    return nullptr;
  }
  return InitializeTest(std::move(input), factory, config);
}

std::unique_ptr<NetEqTest> NetEqTestFactory::InitializeTest(
    std::unique_ptr<NetEqInput> input,
    NetEqFactory* factory,
    const Config& config) {
  if (input->ended()) {
    std::cerr << "Error: Input is empty" << std::endl;
    return nullptr;
  }

  if (!config.field_trial_string.empty()) {
    field_trials_ =
        std::make_unique<ScopedFieldTrials>(config.field_trial_string);
  }

  // Skip some initial events/packets if requested.
  if (config.skip_get_audio_events > 0) {
    std::cout << "Skipping " << config.skip_get_audio_events
              << " get_audio events" << std::endl;
    if (!input->NextPacketTime() || !input->NextOutputEventTime()) {
      std::cerr << "No events found" << std::endl;
      return nullptr;
    }
    for (int i = 0; i < config.skip_get_audio_events; i++) {
      input->AdvanceOutputEvent();
      if (!input->NextOutputEventTime()) {
        std::cerr << "Not enough get_audio events found" << std::endl;
        return nullptr;
      }
    }
    while (*input->NextPacketTime() < *input->NextOutputEventTime()) {
      input->PopPacket();
      if (!input->NextPacketTime()) {
        std::cerr << "Not enough incoming packets found" << std::endl;
        return nullptr;
      }
    }
  }

  // Check the sample rate.
  absl::optional<int> sample_rate_hz;
  std::set<std::pair<int, uint32_t>> discarded_pt_and_ssrc;
  while (absl::optional<RTPHeader> first_rtp_header = input->NextHeader()) {
    RTC_DCHECK(first_rtp_header);
    sample_rate_hz = CodecSampleRate(first_rtp_header->payloadType, config);
    if (sample_rate_hz) {
      std::cout << "Found valid packet with payload type "
                << static_cast<int>(first_rtp_header->payloadType)
                << " and SSRC 0x" << std::hex << first_rtp_header->ssrc
                << std::dec << std::endl;
      if (config.initial_dummy_packets > 0) {
        std::cout << "Nr of initial dummy packets: "
                  << config.initial_dummy_packets << std::endl;
        input = std::make_unique<InitialPacketInserterNetEqInput>(
            std::move(input), config.initial_dummy_packets, *sample_rate_hz);
      }
      break;
    }
    // Discard this packet and move to the next. Keep track of discarded payload
    // types and SSRCs.
    discarded_pt_and_ssrc.emplace(first_rtp_header->payloadType,
                                  first_rtp_header->ssrc);
    input->PopPacket();
  }
  if (!discarded_pt_and_ssrc.empty()) {
    std::cout << "Discarded initial packets with the following payload types "
                 "and SSRCs:"
              << std::endl;
    for (const auto& d : discarded_pt_and_ssrc) {
      std::cout << "PT " << d.first << "; SSRC 0x" << std::hex
                <<


educe_2k_l(mp_int *a, mp_int *n, mp_int *d);
int  mp_reduce (mp_int * x, mp_int * m, mp_int * mu);
int  mp_reduce_setup (mp_int * a, mp_int * b);
int  s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode);
int  mp_montgomery_calc_normalization (mp_int * a, mp_int * b);
int  s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs);
int  s_mp_sqr (mp_int * a, mp_int * b);
int  fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs);
int  fast_s_mp_sqr (mp_int * a, mp_int * b);
int  mp_init_size (mp_int * a, int size);
int  mp_div_3 (mp_int * a, mp_int *c, mp_digit * d);
int  mp_mul_2(mp_int * a, mp_int * b);
int  mp_mul (mp_int * a, mp_int * b, mp_int * c);
int  mp_sqr (mp_int * a, mp_int * b);
int  mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d);
int  mp_mul_d (mp_int * a, mp_digit b, mp_int * c);
int  mp_2expt (mp_int * a, int b);
int  mp_reduce_2k_setup(mp_int *a, mp_digit *d);
int  mp_add_d (mp_int* a, mp_digit b, mp_int* c);
int mp_set_int (mp_int * a, unsigned long b);
/* end support added functions */

/* added */
int mp_init_multi(mp_int* a, mp_int* b, mp_int* c, mp_int* d, mp_int* e,
                  mp_int* f);

#if defined(HAVE_ECC) || defined(CYASSL_KEY_GEN)
    int mp_sqrmod(mp_int* a, mp_int* b, mp_int* c);
#endif
#ifdef HAVE_ECC
    int mp_read_radix(mp_int* a, const char* str, int radix);
#endif

#ifdef CYASSL_KEY_GEN
    int mp_prime_is_prime (mp_int * a, int t, int *result);
    int mp_gcd (mp_int * a, mp_int * b, mp_int * c);
    int mp_lcm (mp_int * a, mp_int * b, mp_int * c);
#endif

#if defined(CYASSL_KEY_GEN) || defined(HAVE_ECC) || !defined(NO_PWDBASED)
    int mp_sub_d (mp_int * a, mp_digit b, mp_int * c);
#endif

#ifdef __cplusplus
   }
#endif

#endif /* USE_FAST_MATH */

#endif  /* CTAO_CRYPT_INTEGER_H */


{
    expectLis(<int>[10, 1, 2, 3, 0], <int>[1, 2, 3]);
  });

  test('longest at head', () {
    expectLis(<int>[1, 2, 3, 0], <int>[0, 1, 2]);
  });

  test('longest at tail', () {
    expectLis(<int>[10, 1, 2, 3], <int>[1, 2, 3]);
  });

  test('longest in a jagged pattern', () {
    expectLis(
        <int>[0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5], <int>[0, 1, 3, 5, 7, 9]);
  });

  test('fully sorted up', () {
    for (int count = 0; count < 100; count += 1) {
      expectLis(
        List<int>.generate(count, (int i) => 10 * i),
        List<int>.generate(count, (int i) => i),
      );
    }
  });

  test('fully sorted down', () {
    for (int count = 1; count < 100; count += 1) {
      expectLis(
        List<int>.generate(count, (int i) => 10 * (count - i)),
        <int>[count - 1],
      );
    }
  });
}

void _testText() {
  test('renders a piece of plain text', () async {
    semantics()
      ..debugOverrideTimestampFunction(() => _testTime)
      ..semanticsEnabled = true;

    final ui.SemanticsUpdateBuilder builder = ui.SemanticsUpdateBuilder();
    updateNode(
      builder,
      label: 'plain text',
      rect: const ui.Rect.fromLTRB(0, 0, 100, 50),
    );
    owner().updateSemantics(builder.build());

    expectSemanticsTree(
      owner(),
      '''<sem>plain text</sem>''',
    );

    final SemanticsObject node = owner().debugSemanticsTree![0]!;
    expect(node.semanticRole?.kind, SemanticRoleKind.generic);
    expect(
      node.semanticRole!.behaviors!.map((m) => m.runtimeType).toList(),
      <Type>[
        Focusable,
        LiveRegion,
        RouteName,
        LabelAndValue,
      ],
    );
    semantics().semanticsEnabled = false;
  });

  test('renders a tappable piece of text', () async {
    semantics()
      ..debugOverrideTimestampFunction(() => _testTime)
      ..semanticsEnabled = true;

    final SemanticsTester tester = SemanticsTester(owner());
    tester.updateNode(
      id: 0,
      hasTap: true,
      label: 'tappable text',
      rect: const ui.Rect.fromLTRB(0, 0, 100, 50),
    );
    tester.apply();

    expectSemanticsTree(
      owner(),
      '''<sem flt-tappable="">tappable text</sem>''',
    );

    final SemanticsObject node = owner().debugSemanticsTree![0]!;
    expect(node.semanticRole?.kind, SemanticRoleKind.generic);
    expect(
      node.semanticRole!.behaviors!.map((m) => m.runtimeType).toList(),
      <Type>[
        Focusable,
        LiveRegion,
        RouteName,
        LabelAndValue,
        Tappable,
      ],
    );
    semantics().semanticsEnabled = false;
  });
}

void _testLabels() {
  test('computeDomSemanticsLabel combines tooltip, label, value, and hint', () {
    expect(
      computeDomSemanticsLabel(tooltip: 'tooltip'),
      'tooltip',
    );
    expect(
      computeDomSemanticsLabel(label: 'label'),
      'label',
    );
    expect(
      computeDomSemanticsLabel(value: 'value'),
      'value',
    );
    expect(
      computeDomSemanticsLabel(hint: 'hint'),
      'hint',
    );
    expect(
      computeDomSemanticsLabel(tooltip: 'tooltip', label: 'label', hint: 'hint', value: 'value'),
      '''
tooltip
label


  Mx_GP_USER		(3 << (2*(15-(n)))) /* access is user */
#define	SPR_MI_EPN		0x313	/* ..8 IMMU effective number */
#define  Mx_EPN_EPN		0xfffff000 /* Effective Page Number mask */
#define  Mx_EPN_EV		0x00000020 /* Entry Valid */
#define  Mx_EPN_ASID		0x0000000f /* Address Space ID */
#define	SPR_MI_TWC		0x315	/* ..8 IMMU tablewalk control */
#define  MD_TWC_L2TB		0xfffff000 /* Level-2 Tablewalk Base */
#define  Mx_TWC_APG		0x000001e0 /* Access Protection Group */
#define  Mx_TWC_G		0x00000010 /* Guarded memory */
#define  Mx_TWC_PS		0x0000000c /* Page Size (L1) */
#define  MD_TWC_WT		0x00000002 /* Write-Through */
#define  Mx_TWC_V		0x00000001 /* Entry Valid */
#define	SPR_MI_RPN		0x316	/* ..8 IMMU real (phys) page number */
#define  Mx_RPN_RPN		0xfffff000 /* Real Page Number */
#define  Mx_RPN_PP		0x00000ff0 /* Page Protection */
#define  Mx_RPN_SPS		0x00000008 /* Small Page Size */
#define  Mx_RPN_SH		0x00000004 /* SHared page */
#define  Mx_RPN_CI		0x00000002 /* Cache Inhibit */
#define  Mx_RPN_V		0x00000001 /* Valid */
#define	SPR_MD_CTR		0x318	/* ..8 DMMU control */
#define	SPR_M_CASID		0x319	/* ..8 CASID */
#define  M_CASID		0x0000000f /* Current AS ID */
#define	SPR_MD_AP		0x31a	/* ..8 DMMU access protection */
#define	SPR_MD_EPN		0x31b	/* ..8 DMMU effective number */
#define	SPR_M_TWB		0x31c	/* ..8 MMU tablewalk base */
#define  M_TWB_L1TB		0xfffff000 /* level-1 translation base */
#define  M_TWB_L1INDX		0x00000ffc /* level-1 index */
#define	SPR_MD_TWC		0x31d	/* ..8 DMMU tablewalk control */
#define	SPR_MD_RPN		0x31e	/* ..8 DMMU real (phys) page number */
#define	SPR_MD_TW		0x31f	/* ..8 MMU tablewalk scratch */
#define	SPR_MI_CAM		0x330	/* ..8 IMMU CAM entry read */
#define	SPR_MI_RAM0		0x331	/* ..8 IMMU RAM entry read reg 0 */
#define	SPR_MI_RAM1		0x332	/* ..8 IMMU RAM entry read reg 1 */
#define	SPR_MD_CAM		0x338	/* ..8 IMMU CAM entry read */
#define	SPR_MD_RAM0		0x339	/* ..8 IMMU RAM entry read reg 0 */
#define	SPR_MD_RAM1		0x33a	/* ..8 IMMU RAM entry read reg 1 */

#define	SPR_DMISS		0x3d0	/* .68 Data TLB Miss Address Register */
#define	SPR_DCMP		0x3d1	/* .68 Data TLB Compare Register */
#define	SPR_HASH1		0x3d2	/* .68 Primary Hash Address Register */
#define	SPR_HASH2		0x3d3	/* .68 Secondary Hash Address Register */
#define	SPR_IMISS		0x3d4	/* .68 Instruction TLB Miss Address Register */
#define	SPR_ICMP		0x3d5	/* .68 Instruction TLB Compare Register */
#define	SPR_RPA			0x3d6	/* .68 Required Physical Address Register */
#define	SPR_HID0		0x3f0	/* ..8 Hardware Implementation Register 0 */
#define	SPR_HID1		0x3f1	/* ..8 Hardware Implementation Register 1 */
#define	SPR_IABR		0x3f2	/* ..8 Instruction Address Breakpoint Register 0 */
#define	SPR_HID2		0x3f3	/* ..8 Hardware Implementation Register 2 */

#endif /* !_POWERPC_MPC8XX_SPR_H_ */


tory) where T : IDXGIFactory2
    {
        uint flags = debug ? CreateFactoryDebug : 0u;
        Result result = CreateDXGIFactory2(flags, typeof(T).GUID, out IntPtr nativePtr);
        if (result.Success)
        {
            factory = MarshallingHelpers.FromPointer<T>(nativePtr);
            return result;
        }

        factory = null;
        return result;
    }

    /// <summary>
    /// Try to create new instance of <see cref="IDXGIFactory2"/>.
    /// </summary>
    /// <param name="debug">Whether to enable debug callback.</param>
    /// <returns>Return an instance of <see cref="IDXGIFactory2"/> or null if failed.</returns>
    public static T CreateDXGIFactory2<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] T>(bool debug) where T : IDXGIFactory2
    {
        uint flags = debug ? CreateFactoryDebug : 0u;
        CreateDXGIFactory2(flags, typeof(T).GUID, out IntPtr nativePtr).CheckError();
        return MarshallingHelpers.FromPointer<T>(nativePtr)!;
    }

    /// <summary>
    /// Gets debug interface for given type.
    /// </summary>
    /// <typeparam name="T">The <see cref="ComObject"/> to get.</typeparam>
    /// <param name="debugInterface">Instance of T.</param>
    /// <returns>The result code.</returns>
    public static Result DXGIGetDebugInterface1<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] T>(out T? debugInterface) where T : ComObject
    {
        try
        {
            Result result = DXGIGetDebugInterface1(0, typeof(T).GUID, out IntPtr nativePtr);
            if (result.Failure)
            {
                debugInterface = null;
                return result;
            }

            debugInterface = MarshallingHelpers.FromPointer<T>(nativePtr);
            return result;
        }
        catch
        {
            debugInterface = default;
            return ResultCode.NotFound;
        }
    }

    /// <summary>
    /// Gets debug interface for given type.
    /// </summary>
    /// <typeparam name="T">The <see cref="ComObject"/> to get.</typeparam>
    /// <returns>The <see cref="ComObject"/> to get.</returns>
    public static T DXGIGetDebugInterface1<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] T>() where T : ComObject
    {
        DXGIGetDebugInterface1(0, typeof(T).GUID, out IntPtr nativePtr).CheckError();
        return MarshallingHelpers.FromPointer<T>(nativePtr)!;
    }
}


1976656902641966408470686445589766976138653634849670333899288796819026407362409703046040230876159580198409013324761920634222736578148823043046811641741332726171899503\u0002key_round\u00032\u0002g\u0003371299234601250649431571412842\u0002x\u00031212622101150891960289782033326297194857032745566\u0002ainv0\u00035505190552734840070831159532442676049497307863432721020872276088900734627211877202311074568223674081439264423128508739048798738700152434192808846739965269716385967035615615213293469157516036039944806648817130749074788057661580428143006698980985777598\u0002ainv1\u000343815585411269525130358535366333722066045872993377304849706852114583465801685983892284946172269660128842887264278744408018662460972221395128422128004606792445706485528875462258231139125264540869137565729755600706146549664196898066218453949338606298166911973135315703656607054813279197102601283355452984356350\u0002a0\u00032137152869400823138041411552307}");
//        model.setCurrentNodeMap(currentNodeMap);
//        model.setActive(false);
//        RandomForestTrainRes randomForestTrainRes = (RandomForestTrainRes)model.train(2, randomForestTrainReq, trainData);
////        Assert.assertEquals(randomForestTrainRes.getTrainMetric().get(MetricType.ACC).get(0).toString(), "1=0.6666666666666666")
//    }

//    @Test
//    public void testTrainPhase3Active(){
//        init();
//        RandomForestTrainReq randomForestTrainReq = new RandomForestTrainReq(new ClientInfo("127.0.0.1", 80, "HTTP", "", "0"));
//        randomForestTrainReq.setClientFeatureMap(new HashMap<>());
//        Map<Integer, TreeNodeRF> currentNodeMap = new HashMap<>();
//        List<Integer> sampleIds = new ArrayList<>();
//        sampleIds.add(1);
//        currentNodeMap.put(0, new TreeNodeRF(sampleIds, 0, 0));
//        currentNodeMap.put(1, new TreeNodeRF(sampleIds, 0, 1));
    //TODO fix key
//        randomForestTrainReq.setBodyAll(new String[]{"active", "273528226727648925423170667841758849463700135880489494825533923025024880259788:63455457545184325638614290698892501826867760554590297940153703143543331363464199167661252644065086782867228673307273467237084074922033318461128466682579785891095097603442017943526080021558872370124591800005450175413005098612111991774119926700449193788087689780656730490782485010375387424102729547719578258174:92107868912499681809813834703129068392570839898502438937010495023204930248090080865859505101124126475992987573575847275655252567537864685238781976


  @override
  String get serverAlreadyExists => 'Sunucu çoktan ayarlarda mevcut';

  @override
  String get wrongThumbnailConfiguration =>
      'Sunucu ulaşılabilir fakat düzgün yapılandırılmamış, video ve kanal küçük resimleri düzgün görüntülenmeyecektir. Eğer bunla sorununuz yoksa sunucu sınama yapılandırmasını devre dışı bırakın, aksi halde sunucunuzu düzeltin';

  @override
  String get openWikiLink => 'Wikiyi yardım için aç';

  @override
  String get serverUnreachable =>
      'Sunucu ulaşılabilir değil, ya da geçerli bir invidious sunucusu değil';

  @override
  String get copyToDownloadFolder => 'İndirme klasörüne kopyala';

  @override
  String get fileCopiedToDownloadFolder => 'Dosya indirme klasörüne kopyalandı';

  @override
  String get videoDeleted => 'Video silindi';

  @override
  String get sleepTimer => 'Uyku zamanlayıcısı';

  @override
  String get stopTheVideo => 'Videoyu durdur';

  @override
  String get stopTheVideoExplanation =>
      'Eğer etkinleştirilmişse, video kapatılacaktır, eğer devre dışı bırakılmışsa, video sadece durdurulacaktır';

  @override
  String get setTimer => 'Zamanlayıcı ayarla';

  @override
  String get cancelSleepTimer => 'Uyku zamanlayıcısını devre dışı bırak';

  @override
  String premieresIn(Object formattedDuration) {
    return '$formattedDuration içinde ilk gösterime girecek';
  }

  @override
  String get screenControls => 'Ekran kontrolleri';

  @override
  String get screenControlsExplanation =>
      'Tam ekranda bir video izlerken, soldan ya da sağdan dikey olarak taşımak, sırasıyla parlaklığı ya da sesi ayarlayacaktır';

  @override
  String get retry => 'Yeniden dene';

  @override
  String get forceTvUi => 'TV arayüzünü zorla';

  @override
  String get forceTvUiExplanation =>
      'Arayüzün TV deneyimi olmasını zorla, leanback sistem yapılandırmasına sahip olmayan bazı cihazlar için kullanışlı olabilir. Uygulamayı yeniden başlatmak gereklidir';

  @override
  String get noPublicServers => 'Hiçbir herkese açık sunucu mevcut değil';

  @override
  String get tapToSeeHow =>
      'Kendi ev sahipliğinizi nasıl yapacağınızı görmek için dokunun';

  @override
  String get referToInvidiousWebsiteForHostingInstructions =>
      'Invidious\'u nasıl barındıracağınıza dair talimatlar için Invidious web sitesine bakın';
}
import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart' as intl;

import 'app_localizations_ar.dart';
import 'app_localizations_az.dart';
import 'app_localizations_bn.dart';
import 'app_localizations_ca.dart';
import 'app_localizations_cs.dart';
import 'app_localizations_de.dart';
import 'app_localizations_en.dart';
import 'app_localizations_es.dart';
import 'app_localizations_fa.dart';
import 'app_localizations_fi.dart';
import 'app_localizations_fr.dart';
import 'app_localizations_hi.dart';
import 'app_localizations_hu.dart';
import 'app_localizations_ia.dart';
import 'app_localizations_it.dart';
import 'app_localizations_ja.dart';
import 'app_localiz


Непроглядной Пучины",nil},
[4805] = {"Морская ведьма Непроглядной Пучины",nil},
[4807] = {"Мирмидон Непроглядной Пучины",nil},
[4809] = {"Сумеречный послушник",nil},
[4810] = {"Сумеречный разоритель",nil},
[4811] = {"Сумеречный аквамант",nil},
[4812] = {"Сумеречный летописец",nil},
[4813] = {"Сумеречный темный маг",nil},
[4814] = {"Сумеречный повелитель стихий",nil},
[4815] = {"Мелководный клешнехват",nil},
[4816] = {"Мелководный панцирник",nil},
[4818] = {"Мурлок из племени Мутной Воды",nil},
[4819] = {"Грязекоп из племени Мутной Воды",nil},
[4820] = {"Оракул из племени Мутной Воды",nil},
[4821] = {"Стремительное ракообразное",nil},
[4822] = {"Ракообразный клешнехват",nil},
[4823] = {"Колючий членистоног",nil},
[4824] = {"Рыбоед Аку'мая",nil},
[4825] = {"Хрустогрыз Аку'мая",nil},
[4827] = {"Глубинный крепкозуб",nil},
[4829] = {"Аку'май",nil},
[4830] = {"Старина Серракис",nil},
[4831] = {"Леди Саревесс",nil},
[4832] = {"Повелитель сумрака Келрис",nil},
[4834] = {"Тераморский секретный агент",nil},
[4841] = {"Волокун",nil},
[4842] = {"Заклинательница земли Халмгар",nil},
[4844] = {"Тенегорнский геодезист",nil},
[4845] = {"Тенегорнский бузотер",nil},
[4846] = {"Тенегорнский землекоп",nil},
[4847] = {"Тенегорнский охотник за реликвиями",nil},
[4848] = {"Тенегорнский черный маг",nil},
[4849] = {"Тенегорнский археолог",nil},
[4850] = {"Скрытень из племени Каменного Свода",nil},
[4851] = {"Камнеед из племени Каменного Свода",nil},
[4852] = {"Оракул из племени Каменного Свода",nil},
[4853] = {"Геомант из племени Каменного Свода",nil},
[4854] = {"Гримлок","Вождь племени Каменного Свода"},
[4855] = {"Буян из племени Каменного Свода",nil},
[4856] = {"Охотник из племени Каменного Свода",nil},
[4857] = {"Каменный хранитель",nil},
[4860] = {"Каменный распорядитель",nil},
[4861] = {"Крылан-охотник",nil},
[4862] = {"Бешеный крылан


s Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs li code,.wy-breadcrumbs li .rst-content tt,.rst-content .wy-breadcrumbs li tt{padding:5px;border:none;background:none}.wy-breadcrumbs li code.literal,.wy-breadcrumbs li .rst-content tt.literal,.rst-content .wy-breadcrumbs li tt.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.


5a3.4 3.4 0 011.339-.907.283.283 0 01.1-.021c.175.009.212.119.221.249a.35.35 0 01-.043.141A5.2 5.2 0 0010.5 3.5a4.113 4.113 0 01-1.747 2.778ZM5 8h1.289a.25.25 0 00.25-.25.241.241 0 00-.061-.15L4.7 5.235a.255.255 0 00-.391 0L2.518 7.589a.274.274 0 00-.062.161.25.25 0 00.25.25H4l-2.665 2.6a.273.273 0 00-.058.152.25.25 0 00.252.248H3l-1.565 1.565a.255.255 0 00.18.435H4v1h1v-1h2.385a.255.255 0 00.18-.435L6 11h1.471a.25.25 0 00.25-.25.233.233 0 00-.058-.149Zm9.345 3.748a.252.252 0 01-.252.252H8.908a.252.252 0 01-.226-.365l2.588-5.184a.252.252 0 01.451 0l2.6 5.184a.251.251 0 01.024.113ZM12.75 10 11.5 7.5 10.25 10Z"/></svg>';
  static const String natural_11 =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11" height="11" preserveAspectRatio="xMidYMid meet" viewBox="0 0 11 11"><path fill="currentColor" d="M4.579 9.579 3 8h1.4a.25.25 0 00.25-.25.246.246 0 00-.079-.179L3 6h.736a.25.25 0 00.25-.25.246.246 0 00-.078-.179l-1.2-1.253a.253.253 0 00-.4-.015c-.02.023-1.21 1.266-1.21 1.266a.245.245 0 00-.082.18.25.25 0 00.25.25H2L.425 7.575A.249.249 0 00.6 8H2L.434 9.566a.244.244 0 00-.082.18A.25.25 0 00.6 10H2v1h1v-1h1.4a.247.247 0 00.179-.421zm6.242-.938-2.1-4.2a.248.248 0 00-.443 0l-2.1 4.2A.248.248 0 006.4 9h4.2a.248.248 0 00.221-.359zM7.5 7l1-2 1 2zm.279-5.921a.266.266 0 01-.049.148A3.513 3.513 0 007 3a2.141 2.141 0 01-1.291 1.911.475.475 0 01-.419 0A2.141 2.141 0 014 3a3.5 3.5 0 00-.726-1.769.271.271 0 01-.046-.148.25.25 0 01.25-.25.27.27 0 01.067.009A2.939 2.939 0 015 2L5.25.224A.25.25 0 015.744.2L6 2A2.957 2.957 0 017.453.841a.272.272 0 01.076-.012.25.25 0 01.25.25z"/></svg>';
  static const String observation_tower =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="15" preserveAspectRatio="xMidYMid meet" viewBox="0 0 15 15"><path fill="currentColor"


     * Override toString() to avoid using the enum variable name as the value, and instead use
     * the actual value defined in the API spec file.
     *
     * This solves a problem when the variable name and its value are different, and ensures that
     * the client sends the correct enum values to the server always.
     */
    override fun toString(): String = value

    companion object {
        /**
         * Converts the provided [data] to a [String] on success, null otherwise.
         */
        fun encode(data: kotlin.Any?): kotlin.String? = if (data is UserBlockedCodeProperty) "$data" else null

        /**
         * Returns a valid [UserBlockedCodeProperty] for [data], null otherwise.
         */
        fun decode(data: kotlin.Any?): UserBlockedCodeProperty? = data?.let {
            val normalizedData = "$it".lowercase()
            values().firstOrNull { value ->
                it == value || normalizedData == "$value".lowercase()
            }
        }
    }
}

/**
 * Firefly III API v1.5.6
 *
 * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \"Authorize\" button to try the API below. This file was last generated on 2022-04-04T03:54:41+00:00
 *
 * The version of the OpenAPI document: 1.5.6
 * Contact: james@firefly-iii.org
 *
 * Please note:
 * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit this file manually.
 */

@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport"
)

package net.djvk.fireflyPlaidConnector2.api.firefly.models

import com.fasterxml.jackson.annotation.JsonProperty

/**
 *
 *
 * @param title A title for the webhook for easy recognition.
 * @param trigger
 * @param response
 * @param delivery
 * @param url The URL of the webhook. Has to start with `https`.
 * @param active Boolean to indicate if the webhook is active
 */

data class WebhookStore(

    /* A title for the webhook for easy recognition. */
    @field:JsonProperty("title")
    val title: kotlin.String,

    @field:JsonProperty("trigger")
    val trigger: WebhookTrigger,

    @field:JsonProperty("response")
    val response: WebhookResponse,

    @field:JsonProperty("delivery")
    val delivery: WebhookDelivery,

    /* The URL of the webhook. Has to start with `https`. */
    @field:JsonProperty("url")
    val url: kotlin.String,

    /* Boolean to indicate if the webhook is active */
    @field:JsonProperty("active")
    val active: kotlin.Boolean? = null

)

/**
 * Firefly III API v1.5.6
 *
 * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \"Authorize\" button to try the API below. This file was last generated on 2022-04-04T03:54:41+00:00
 *
 * The version of the OpenAPI document: 1.5.6
 * Contact: james@firefly-iii.org
 *
 * Please note:
 * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit this file manually.
 */

@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport"
)

package net.djvk.fireflyPlaidConnector2.api.firefly.models

/**
 *
 * DJVK: according to the Firefly API spec this is supposed to be a boolean, string, obj


File " + what + " did not return anything");
	loadCache[what] = ret;
	return ret;
}

function xmlHttpPromise(url) {
	return new Promise(function (resolve, reject) {
		var req = new XMLHttpRequest();
		req.open("GET", url, true, "root", "root");
		req.addEventListener("readystatechange", function (event) {
			if (this.readyState === XMLHttpRequest.DONE && this.status === 200)
				resolve({
					contents: this.responseText,
					url: url
				});
			else if (this.status !== 200) {
				var err = new Error("Request failed");
				err.code = this.status;
				err.url = url;
				reject(err);
			}
		});
		req.timeout = 2000;
		req.addEventListener("timeout", function () {
			var err = new Error("Request timed out");
			err.url = url;
			reject(err);
		})
		req.send();
	})
}

var preload = [
	"ControlCurve",
	"Controller",
	"Device",
	"DeviceTree",
	"Color",
	"NotImplementedError",
	"InvalidArgumentError",
	"Controllers/Fan",
	"Controllers/Fan/CorsairLink/BalancedMode",
	"Controllers/Fan/CorsairLink/Curve",
	"Controllers/Fan/CorsairLink/CustomCurve",
	"Controllers/Fan/CorsairLink/Default",
	"Controllers/Fan/CorsairLink/FixedPercent",
	"Controllers/Fan/CorsairLink/FixedRPM",
	"Controllers/Fan/CorsairLink/PerformanceMode",
	"Controllers/Fan/CorsairLink/QuiteMode",
	"Controllers/LED",
	"Controllers/LED/CorsairLink/FourColor",
	"Controllers/LED/CorsairLink/SingleColor",
	"Controllers/LED/CorsairLink/Temperature",
	"Controllers/LED/CorsairLink/TwoColor",
	"Devices/Cooler",
	"Devices/Hub",
	"Devices/PSU",
	"Devices/RootDevice",
	"Devices/Sensor",
	"Devices/VirtualHub",
	"Devices/Sensors/ScalarSensor",
	"Devices/Sensors/CurrentSensor",
	"Devices/Sensors/EffiencySensor",
	"Devices/Sensors/Fan",
	"Devices/Sensors/LED",
	"Devices/Sensors/PowerSensor",
	"Devices/Sensors/Pump",
	"Devices/Sensors/PWMFan",
	"Devices/Sensors/Thermistor",
	"Devices/Sensors/VoltageSensor",
	"Gui/View",
	"Gui/Views/Main/Plain",
	"Gui/ControllerViewFactory",
	"Gui/DeviceViewFactory",
	"Gui/Views/DeviceView",
	"Gui/Views/Devices/Sensor",
	"Gui/Views/Devices/Sensors/ScalarSensor",
	"Gui/Views/Devices/Sensors/Fan",
	"Gui/Views/Devices/Sensors/LED",
	"Gui/Views/Devices/Sensors/Pump",
	"Gui/Views/ControllerView",
	"Gui/Views/Controllers/LED/CorsairLink/SingleColor",
	"Gui/Views/Controllers/Fan/CorsairLink/Curve",
	"Gui/Views/Controllers/Fan/CorsairLink/CustomCurve",
	"ControllerFactory",
	"SensorFactory",
	"Api",
	"Util"
];

Promise.all(preload.map(function(val) {
	return xmlHttpPromise("js/classes/" + val + ".js");
})).then(function(responseDataSets) {
	responseDataSets.forEach(function(responseData) {
		try {
			var trimmedPath = responseData.url.replace("js/classes/", "").replace(".js", "");
			var className = trimmedPath.match(/[\w_]+$/)[0];
			var loadFunc = new Function(responseData.contents + "\r\n\r\n return " + className + ";");

			if(responseData.url.indexOf("classes") > -1)
				loadFunc.path = trimmedPath.replace(/\//g, ".").replace("classes.", "");
			donePreload[trimmedPath]


<meta name="description" content="declaration: package: se.michaelthelin.spotify">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">

JavaScript is disabled on your browser.

<button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links">   </button>

Skip navigation links

Overview

Package

Class

Use

Tree

Deprecated

Index

Help

Package:

Description

Related Packages

Classes and Interfaces

Package:

Description |

Related Packages |

Classes and Interfaces

SEARCH
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">

Package se.michaelthelin.spotify

package se.michaelthelin.spotify

<ul class="summary-list


nverted ? series.xAxis.len : series.yAxis.len, points = series.interpolatedPoints, onArea = pick(labelOptions.onArea, !!series.area), results = [], xData = series.getColumn('x');
        var bBox, x, y, clearPoint, i, best, label = series.labelBySeries, dataExtremes, areaMin, areaMax;
        // Stay within the area data bounds (#10038)
        if (onArea && !inverted) {
            dataExtremes = [
                series.xAxis.toPixels(xData[0]),
                series.xAxis.toPixels(xData[xData.length - 1])
            ];
            areaMin = Math.min.apply(Math, dataExtremes);
            areaMax = Math.max.apply(Math, dataExtremes);
        }
        /**
         * @private
         */
        function insidePane(x, y, bBox) {
            var leftBound = Math.max(paneLeft, pick(areaMin, -Infinity)), rightBound = Math.min(paneLeft + paneWidth, pick(areaMax, Infinity));
            return (x > leftBound &&
                x <= rightBound - bBox.width &&
                y >= paneTop &&
                y <= paneTop + paneHeight - bBox.height);
        }
        /**
         * @private
         */
        function destroyLabel() {
            if (label) {
                series.labelBySeries = label.destroy();
            }
        }
        if (series.visible && !series.boosted && points) {
            if (!label) {
                var labelText = series.name;
                if (typeof labelOptions.format === 'string') {
                    labelText = format(labelOptions.format, series, chart);
                }
                else if (labelOptions.formatter) {
                    labelText = labelOptions.formatter.call(series);
                }
                series.labelBySeries = label = chart.renderer
                    .label(labelText, 0, 0, 'connector', 0, 0, labelOptions.useHTML)
                    .addClass('highcharts-series-label ' +
                    'highcharts-series-label-' + series.index + ' ' +
                    (series.options.className || '') + ' ' +
                    colorClass);
                if (!chart.renderer.styledMode) {
                    var color = typeof series.color === 'string' ?
                        series.color : "#666666" /* Palette.neutralColor60 */;
                    label.css(extend({
                        color: onArea ?
                            chart.renderer.getContrast(color) :
                            color
                    }, labelOptions.style || {}));
                    label.attr({
                        opacity: chart.renderer.forExport ? 1 : 0,
                        stroke: series.color,
                        'stroke-width': 1
                    });
                }
                // Adapt label sizes to the sum of the data
                if (minFontSize && maxFontSize) {
                    label.css({
                        fontSize: labelFontSize(series, minFontSize, maxFontSize)
                    });
                }
                label
                    .attr({
                    padding: 0,
                    zIndex: 3
                })
                    .add();
            }
            bBox = label.getBBox();
            bBox.width = Math.round(bBox.width);
            // Ideal positions are centered above or below a point on right side
            // of chart
            for (i = points.length - 1; i > 0; i -= 1) {
                if (onArea) {
                    // Centered
                    x = ((_a = points[i].chartCenterX) !== null && _a !== void 0 ? _a : points[i].chartX) -
                        bBox.width / 2;
                    y = ((_b = points[i].chartCenterY) !== null && _b !== void 0 ? _b : points[i].chartY


_def& f = std::use_facet<facet_def>(is.getloc());
      num = date_time::find_match(f.get_short_month_names(),
                                  f.get_long_month_names(),
                                  (greg_month::max)(), s); // greg_month spans 1..12, so max returns the array size,
                                                           // which is needed by find_match
    }
    /* bad_cast will be thrown if the desired facet is not accessible
     * so we can generate the facet. This has the drawback of using english
     * names as a default. */
    catch(std::bad_cast&){
      charT a = '\0';

#if defined(BOOST_NO_CXX11_SMART_PTR)

      std::auto_ptr< const facet_def > f(create_facet_def(a));

#else

      std::unique_ptr< const facet_def > f(create_facet_def(a));

#endif

      num = date_time::find_match(f->get_short_month_names(),
                                  f->get_long_month_names(),
                                  (greg_month::max)(), s); // greg_month spans 1..12, so max returns the array size,
                                                           // which is needed by find_match
    }

    ++num; // months numbered 1-12
    m = greg_month(num);

    return is;
  }

  //! operator>> for gregorian::greg_weekday  - throws exception if invalid weekday given
  template<class charT>
  inline
  std::basic_istream<charT>& operator>>(std::basic_istream<charT>& is,greg_weekday& wd)
  {
    typedef boost::date_time::all_date_names_put<greg_facet_config, charT> facet_def;

    std::basic_string<charT> s;
    is >> s;

    if(!std::has_facet<facet_def>(is.getloc())) {
      std::locale loc = is.getloc();
      charT a = '\0';
      is.imbue(generate_locale(loc, a));
    }

    short num = 0;
    try{
      const facet_def& f = std::use_facet<facet_def>(is.getloc());
      num = date_time::find_match(f.get_short_weekday_names(),
                                  f.get_long_weekday_names(),
                                  (greg_weekday::max)() + 1, s); // greg_weekday spans 0..6, so increment is needed
                                                                 // to form the array size which is needed by find_match
    }
    /* bad_cast will be thrown if the desired facet is not accessible
     * so we can generate the facet. This has the drawback of using english
     * names as a default. */
    catch(std::bad_cast&){
      charT a = '\0';

#if defined(BOOST_NO_CXX11_SMART_PTR)

      std::auto_ptr< const facet_def > f(create_facet_def(a));

#else

      std::unique_ptr< const facet_def > f(create_facet_def(a));

#endif

      num = date_time::find_match(f->get_short_weekday_names(),
                                  f->get_long_weekday_names(),
                                  (greg_weekday::max)() + 1, s); // greg_weekday spans 0..6, so increment is needed
                                                                 // to form the array size which is needed by find_match
    }

    wd = greg_weekday(num); // weekdays numbered 0-6
    return is;
  }

} } //namespace gregorian

#endif

#endif

// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
// (C) C


enabled=!1,this.isPresenting=!1,this.getController=function(ie){let fe=y[ie];return fe===void 0&&(fe=new Ao,y[ie]=fe),fe.getTargetRaySpace()},this.getControllerGrip=function(ie){let fe=y[ie];return fe===void 0&&(fe=new Ao,y[ie]=fe),fe.getGripSpace()},this.getHand=function(ie){let fe=y[ie];return fe===void 0&&(fe=new Ao,y[ie]=fe),fe.getHandSpace()};function j(ie){const fe=A.indexOf(ie.inputSource);if(fe===-1)return;const _e=y[fe];_e!==void 0&&(_e.update(ie.inputSource,ie.frame,c||o),_e.dispatchEvent({type:ie.type,data:ie.inputSource}))}function se(){r.removeEventListener("select",j),r.removeEventListener("selectstart",j),r.removeEventListener("selectend",j),r.removeEventListener("squeeze",j),r.removeEventListener("squeezestart",j),r.removeEventListener("squeezeend",j),r.removeEventListener("end",se),r.removeEventListener("inputsourceschange",oe);for(let ie=0;ie<y.length;ie++){const fe=A[ie];fe!==null&&(A[ie]=null,y[ie].disconnect(fe))}I=null,ee=null,x.reset(),e.setRenderTarget(d),m=null,h=null,f=null,r=null,b=null,Xe.stop(),i.isPresenting=!1,e.setPixelRatio(C),e.setSize(O.width,O.height,!1),i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(ie){s=ie,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ie){a=ie,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(ie){c=ie},this.getBaseLayer=function(){return h!==null?h:m},this.getBinding=function(){return f},this.getFrame=function(){return v},this.getSession=function(){return r},this.setSession=async function(ie){if(r=ie,r!==null){if(d=e.getRenderTarget(),r.addEventListener("select",j),r.addEventListener("selectstart",j),r.addEventListener("selectend",j),r.addEventListener("squeeze",j),r.addEventListener("squeezestart",j),r.addEventListener("squeezeend",j),r.addEventListener("end",se),r.addEventListener("inputsourceschange",oe),p.xrCompatible!==!0&&await t.makeXRCompatible(),C=e.getPixelRatio(),e.getSize(O),r.renderState.layers===void 0){const fe={antialias:p.antialias,alpha:!0,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,t,fe),r.updateRenderState({baseLayer:m}),e.setPixelRatio(1),e.setSize(m.framebufferWidth,m.framebufferHeight,!1),b=new un(m.framebufferWidth,m.framebufferHeight,{format:Qt,type:bn,colorSpace:e.outputColorSpace,stencilBuffer:p.s


private final WaitOption waitOption;

    public ForUpdate(@NonNull ParserRuleContext context,
            @NonNull List<ColumnReference> columns, WaitOption waitOption, BigDecimal waitNum) {
        super(context);
        this.columns = columns;
        this.waitOption = waitOption;
        this.waitNum = waitNum;
    }

    public ForUpdate(@NonNull List<ColumnReference> columns, WaitOption waitOption, BigDecimal waitNum) {
        this.columns = columns;
        this.waitOption = waitOption;
        this.waitNum = waitNum;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder("FOR UPDATE");
        if (!this.columns.isEmpty()) {
            builder.append(" OF ").append(this.columns.stream()
                    .map(ColumnReference::toString).collect(Collectors.joining(",")));
        }
        if (this.waitOption != null) {
            builder.append(" ").append(this.waitOption.name().replace("_", " "));
            if (this.waitOption == WaitOption.WAIT) {
                builder.append(" ").append(this.waitNum.toString());
            }
        }
        return builder.toString();
    }

}
/*
 * Copyright (c) 2023 OceanBase.
 *
 * 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.
 */
package com.oceanbase.tools.sqlparser.statement.expression;

import org.antlr.v4.runtime.ParserRuleContext;

import com.oceanbase.tools.sqlparser.statement.Expression;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;

/**
 * @author gaoda.xy
 * @date 2023/6/26 14:49
 */
@Getter
@EqualsAndHashCode(callSuper = true)
public class WhenClause extends BaseExpression {

    private final Expression when;
    private final Expression then;

    public WhenClause(@NonNull ParserRuleContext context, @NonNull Expression when, @NonNull Expression then) {
        super(context);
        this.when = when;
        this.then = then;
    }

    public WhenClause(@NonNull Expression when, @NonNull Expression then) {
        this.when = when;
        this.then = then;
    }

    @Override
    public String doToString() {
        return "WHEN " + this.when + " THEN " + this.then;
    }

}
/*
 * Copyright (c) 2023 OceanBase.
 *
 * 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.
 */
package com.oceanbase.tools.sqlparser.statement.expression;

import java.util.List;
import java.util.stream.Collectors;

import org.antlr.v4.runtime.ParserRuleContext;
import org.apache.commons.lang3.StringUtils;

import com.oceanbase.tools.sqlparser.statement.select.OrderBy;

import lombok.EqualsAndHashCode;
import lombok.NonNull;

/**
 * {@link GroupConcat}
 *
 * @author yh263208
 * @date 2022-12-09 17:3


y(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc,
                           unsigned char *kstr, int klen,
                           pem_password_cb *cb, void *u)
{
    if (FIPS_mode()) {
        EVP_PKEY *k;
        int ret;
        k = EVP_PKEY_new();
        if (!k)
            return 0;
        EVP_PKEY_set1_EC_KEY(k, x);
        ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
        EVP_PKEY_free(k);
        return ret;
    } else
        return PEM_ASN1_write((i2d_of_void *)i2d_ECPrivateKey,
                              PEM_STRING_ECPRIVATEKEY,
                              fp, x, enc, kstr, klen, cb, u);
}
#  endif

# else
    IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY,
                       ECPrivateKey)
# endif
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

#endif

#ifndef OPENSSL_NO_DH

IMPLEMENT_PEM_write_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)
    IMPLEMENT_PEM_write_const(DHxparams, DH, PEM_STRING_DHXPARAMS, DHxparams)
#endif
IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)


检查您的网络环境。
＊如果在连接错误后无法重新连接，请尝试重新启动程序或等待一段时间后再次连接。
＊如果游戏稍有延迟，由于游戏的特性，该场比赛将无法恢复，请重新连接后再进行对战。
＊请注意，该版本无法与正式版进行对战。

　Steamでダウンロードできます。

　您可以在Steam下载。

　また、CDで購入した方のアップデートはこちらから。
　th19tr_ver002a.exe

　此外，购买了CD版的各位可以从此处下载更新补丁。
　th19tr_ver002a.exe

　あといくつかのバグも修正されてますので、ローカルプレイヤーも是非。

　由于该版本还修复了其他几处bug，单机玩家也请务必更新一下。

　それでは、また。

　那么就这样，回见。
	<


----------------------------------------------------------------
-- Copyright (c) 2010-2011 Zipline Games, Inc.
-- All Rights Reserved.
-- http://getmoai.com
----------------------------------------------------------------

-- make some test data
test = {
	foo = 0,
	bar = 1,
	baz = 92,
}

transform = MOAITransform.new ()

-- create the serializer and add the objects in the order we want them back
serializer = MOAISerializer.new ()
serializer:serialize ( test )
serializer:serialize ( transform )

-- the serializer will produce a chunk that, when ex


0]             /* get stack pointer of task we will start */
#if MYNEWT_VAL(HARDFLOAT)
        LDMIA   R12!,{R4-R11,LR}        /* Restore New Context */
        TST     LR,#0x10                /* is it extended frame? */
        ITTE    EQ
        VLDMIAEQ R12!,{S16-S31}         /* yes; pull the regs */
        MVNEQ   LR,#~0xFFFFFFED         /* BX treats it as extended */
        MVNNE   LR,#~0xFFFFFFFD         /* BX treats is as basic frame */
#else
        LDMIA   R12!,{R4-R11}           /* Restore New Context */
#endif
        MSR     PSP,R12                 /* Write PSP */

#if MYNEWT_VAL(OS_SYSVIEW)
        PUSH    {R4,LR}
        MOV     R0, R2
        BL      os_trace_task_start_exec
        POP     {R4,LR}
#endif

        BX      LR                      /* Return to Thread Mode */

        .fnend
        .size   PendSV_Handler, .-PendSV_Handler

/*-------------------------- SysTick_Handler --------------------------------*/

#       void SysTick_Handler (void);
        .thumb_func
        .type   SysTick_Handler, %function
        .global SysTick_Handler
SysTick_Handler:
        .fnstart
        .cantunwind

        PUSH    {R4,LR}                 /* Save EXC_RETURN */
#if MYNEWT_VAL(OS_SYSVIEW)
        BL      os_trace_isr_enter
#endif
        BL      timer_handler
#if MYNEWT_VAL(OS_SYSVIEW)
        BL      os_trace_isr_exit
#endif
        POP     {R4,LR}


```
bin/run.sh io.anserini.index.IndexCollection \
  -threads 1 \
  -collection BeirMultifieldCollection \
  -input /path/to/beir-v1.0.0-robust04.multifield \
  -generator DefaultLuceneDocumentGenerator \
  -index indexes/lucene-inverted.beir-v1.0.0-robust04.multifield/ \
  -storePositions -storeDocvectors -storeRaw -fields title \
  >& logs/log.beir-v1.0.0-robust04.multifield &
```

For additional details, see explanation of [common indexing options](../../docs/common-indexing-options.md).

## Retrieval

Topics and qrels are stored [here](https://github.com/castorini/anserini-tools/tree/master/topics-and-qrels), which is linked to the Anserini repo as a submodule.

After indexing has completed, you should be able to perform retrieval as follows:

```
bin/run.sh io.anserini.search.SearchCollection \
  -index indexes/lucene-inverted.beir-v1.0.0-robust04.multifield/ \
  -topics tools/topics-and-qrels/topics.beir-v1.0.0-robust04.test.tsv.gz \
  -topicReader TsvString \
  -output runs/run.beir-v1.0.0-robust04.multifield.bm25.topics.beir-v1.0.0-robust04.test.txt \
  -bm25 -removeQuery -hits 1000 -fields contents=1.0 title=1.0 &
```

Evaluation can be performed using `trec_eval`:

```
bin/trec_eval -c -m ndcg_cut.10 tools/topics-and-qrels/qrels.beir-v1.0.0-robust04.test.txt runs/run.beir-v1.0.0-robust04.multifield.bm25.topics.beir-v1.0.0-robust04.test.txt
bin/trec_eval -c -m recall.100 tools/topics-and-qrels/qrels.beir-v1.0.0-robust04.test.txt runs/run.beir-v1.0.0-robust04.multifield.bm25.topics.beir-v1.0.0-robust04.test.txt
bin/trec_eval -c -m recall.1000 tools/topics-and-qrels/qrels.beir-v1.0.0-robust04.test.txt runs/run.beir-v1.0.0-robust04.multifield.bm25.topics.beir-v1.0.0-robust04.test.txt
```

## Effectiveness

With the above commands, you should be able to reproduce the following results:

| **nDCG@10**                                                                                | **BM25**  |
|:-------------------------------------------------------------------------------------------------------------|-----------|
| BEIR (v1.0.0): Robust04                                                                                | 0.4070    |
| **R@100**                                                                                | **BM25**  |
| BEIR (v1.0.0): Robust04                                                                                | 0.3746    |
| **R@1000**                                                                                | **BM25**  |
| BEIR (v1.0.0): Robust04                                                                                | 0.6345    |
# Anserini Regressions: TREC 2020 Deep Learning Track (Passage)

**Model**: uniCOIL without any expansions (using cached queries)

This page describes regression experiments, integrated into Anserini's regression testing framework, using uniCOIL (without any expansions) on the [TREC 2020 Deep Learning Track passage ranking task](https://trec.nist.gov/data/deep2020.html).
The uniCOIL model is described in the following paper:

> Jimmy Lin and Xueguang Ma. [A Few Brief Notes on DeepImpact, COIL, and a Conceptual Framework for Information Retrieval Techniques.](https://arxiv.org/abs/2106.14807) _arXiv:2106.14807_.

The exp


 = (&DAT_08affed0)[iVar15 * 0x10];
                    (&DAT_08affcbc)[iVar15 * 0x10] = uVar5 & 0xffeeffff;
                    (&DAT_08affcc0)[iVar15 * 0x10] = (&DAT_08affec0)[iVar15 * 0x10];
                    (&DAT_08affcc4)[iVar15 * 0x10] = (&DAT_08affec4)[iVar15 * 0x10];
                    (&DAT_08affcac)[iVar15 * 0x10] = (&DAT_08affeac)[iVar15 * 0x10];
                    (&DAT_08affcb0)[iVar15 * 0x10] = (&DAT_08affeb0)[iVar15 * 0x10];
                    (&DAT_08affcd4)[iVar15 * 0x20] = uVar2;
                    (&DAT_08affcd6)[iVar15 * 0x20] = uVar3;
                    (&DAT_08affccc)[iVar15 * 0x10] = uVar13;
                    (&DAT_08affcd0)[iVar15 * 0x10] = uVar9;
                  }
                }
              }
              iVar6 = (&DAT_08affcd8)[iVar15 * 0x10];
              if ((((&DAT_08affcbc)[iVar15 * 0x10] & 0x100) == 0) ||
                 (((&DAT_08affcbc)[iVar15 * 0x10] & 0x200) == 0)) {
                iVar8 = (((&DAT_08affcb0)[iVar15 * 0x10] * iVar6) / 0x7f) * (int)*psVar10;
                iVar16 = (((&DAT_08affcac)[iVar15 * 0x10] * iVar6) / 0x7f) * (int)*psVar10;
                iVar8 = iVar8 + ((uint)(iVar8 >> 0x1f) >> 0x14);
                iVar16 = iVar16 + ((uint)(iVar16 >> 0x1f) >> 0x14);
              }
              else {
                iVar16 = (((&DAT_08affcac)[iVar15 * 0x10] * iVar6) / 0x7f) * (int)psVar4[iVar12 * 2]
                ;
                iVar8 = (((&DAT_08affcb0)[iVar15 * 0x10] * iVar6) / 0x7f) *
                        (int)(psVar4 + iVar12 * 2)[1];
                iVar16 = iVar16 + ((uint)(iVar16 >> 0x1f) >> 0x14);
                iVar8 = iVar8 + ((uint)(iVar8 >> 0x1f) >> 0x14);
              }
              psVar7 = (short *)(&DAT_08afeea4 + local_40 + iVar12 * 4);
              iVar16 = (int)*psVar7 + (iVar16 >> 0xc);
              iVar6 = (int)psVar7[1] + (iVar8 >> 0xc);
              if (0x7ffe < iVar16) {
                iVar16 = 0x7fff;
              }
              if (0x7ffe < iVar6) {
                iVar6 = 0x7fff;
              }
              iVar12 = iVar12 + 1;
              if (iVar16 < -0x8000) {
                iVar16 = -0x8000;
              }
              if (iVar6 < -0x8000) {
                iVar6 = -0x8000;
              }
              *psVar7 = (short)iVar16;
              psVar10 = psVar10 + 1;
              psVar7[1] = (short)iVar6;
            } while (iVar12 < 0x1c);
          }
          iVar15 = iVar15 + 1;
          piVar14 = piVar14 + 0x10;
          piVar11 = piVar11 + 0x10;
        } while (iVar15 < 8);
        local_54 = local_54 + 1;
        local_40 = local_40 + 0x70;
        local_58 = local_58 | local_50;
      } while (local_54 < 0x10);
      if (local_58 == 0) {
        zz_sceKernelWaitEventFlag(DAT_08b000b8,1,0x20,0,0);
      }
      zz_sceAudioOutputBlocking
                (*(undefined4 *)(param_2 + 4),0x8000,&DAT_08afeea4 + local_5c * 0x700);
      local_5c = local_5c ^ 1;
    } while (DAT_08afee20 == 0);
  }
  zz_sceAudioOutputBlocking(*(undefined4 *)(param_2 + 4),0,0);
  zz_sceKernelExitThread(0);
  return 0;
}


	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0xB
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x32
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte		N08   , En2 , v112
	.byte	W12
	.byte		N06   , As1
	.byte	W12
	.byte		N08   , En2
	.byte	W12
	.byte		N06   , As1
	.byte	W12
	.byte		N24
	.byte	W24
	.byte	PATT
	 .word	seq_010_0 + 0xB
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x32
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0xB
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x32
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0x4A
	.byte	PATT
	 .word	seq_010_0 + 0x5D
	.byte	PATT
	 .word	seq_010_0 + 0xB
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	PATT
	 .word	seq_010_0 + 0x32
	.byte	PATT
	 .word	seq_010_0 + 0x1E
	.byte	GOTO
	 .word	seq_010_0 + 0x4A
	.byte	FINE

@*********************** Track 02 ***********************@

seq_010_1:
	.byte	KEYSH , seq_010_key+0
	.byte	W01
	.byte		VOICE , 16
	.byte		VOL   , 98*seq_010_mvl/mxv
	.byte		PAN   , c_v-30
	.byte	W23
	.byte	W72
	.byte	W72
	.byte	W72
	.byte	W72
	.byte	W72
	.byte	W72
	.byte	W72
	.byte	W72
	.byte		N06   , Fs2 , v112
	.byte	W12
	.byte		N06
	.byte	W12
	.byte		N09   , Gs2
	.byte	W12
	.byte		N06   , Fs2
	.byte	W12
	.byte		N09   , Cn3
	.byte	W12
	.byte		N06   , Cs3


/*     NEQ --       Number of equations to be integrated. */
    /*     ICOPT     -- Flag indicating initial condition option chosen. */
    /*                    ICOPT = 1 for option 1 above. */
    /*                    ICOPT = 2 for option 2. */
    /*     ID        -- Array of dimension NEQ, which must be initialized */
    /*                  if option 1 is chosen. */
    /*                    ID(i) = +1 if Y_i is a differential variable, */
    /*                    ID(i) = -1 if Y_i is an algebraic variable. */
    /*     RES --       External user-supplied subroutine to evaluate the */
    /*                  residual.  See RES description in DDASPK prologue. */
    /*     JAC --       External user-supplied routine to update Jacobian */
    /*                  or preconditioner information in the nonlinear solver */
    /*                  (optional).  See JAC description in DDASPK prologue. */
    /*     PSOL --      External user-supplied routine to solve */
    /*                  a linear system using preconditioning. */
    /*                  See PSOL in DDASPK prologue. */
    /*     H --         Scaling factor in iteration matrix.  DDASIC may */
    /*                  reduce H to achieve convergence. */
    /*     TSCALE --    Scale factor in T, used for stopping tests if nonzero. */
    /*     WT --        Vector of weights for error criterion. */
    /*     NIC --       Input number of initial condition calculation call */
    /*                  (= 1 or 2). */
    /*     IDID --      Completion code.  See IDID in DDASPK prologue. */
    /*     RPAR,IPAR -- Real and int parameter arrays that */
    /*                  are used for communication between the */
    /*                  calling program and external user routines. */
    /*                  They are not altered by DNSK */
    /*     PHI --       Work space for DDASIC of length at least 2*NEQ. */
    /*     SAVR --      Work vector for DDASIC of length NEQ. */
    /*     DELTA --     Work vector for DDASIC of length NEQ. */
    /*     E --         Work vector for DDASIC of length NEQ. */
    /*     YIC,YPIC --  Work vectors for DDASIC, each of length NEQ. */
    /*     PWK --       Work vector for DDASIC of length NEQ. */
    /*     WM,IWM --    Real and int arrays storing */
    /*                  information required by the linear solver. */
    /*     EPCONI --    Test constant for Newton iteration convergence. */
    /*     ICNFLG --    Flag showing whether constraints on Y are to apply. */
    /*     ICNSTR --    int array of length NEQ with constraint types. */

    /*     The other parameters are for use internally by DDASIC. */

    /* ----------------------------------------------------------------------- */
    /* ***ROUTINES CALLED */
    /*   DCOPY, NLSIC */

    /* ***END PROLOGUE  DDASIC */

    /* The following parameters are data-loaded here: */
    /*     RHCUT  = factor by which H is reduced on retry of Newton solve. */
    /*     RATEMX = maximum convergence rate for which Newton iteration */
    /*              is considered converging. */

    /* Parameter adjustments */
    --y;
    --yprime;
    phi_dim1 = *neq;
    phi_offset = 1 + phi_dim1;
    phi -= phi_offset;
    --id;
    --wt;

    --savr;
    --


e	W06
	.byte	W06
	.byte	W06
	.byte	W06
	.byte	W06
	.byte	W06
	.byte	W06
	.byte	GOTO
	 .word	seq_820_0 + 0xDE
	.byte	FINE

@******************************************************@

	.align	2

seq_820:
	.byte	1	@ NumTrks
	.byte	0	@ NumBlks
	.byte	seq_820_pri	@ Priority
	.byte	seq_820_rev	@ Reverb

	.word	seq_820_grp

	.word	seq_820_0

	.end


local M = {}

vim.g.delaytrain_delay_ms = 1000
vim.g.delaytrain_grace_period = 1

-- Map of keys to their individual current grace period
-- This keeps track of how many times a key has been pressed
local current_grace_period_intervals = {}
local ignore_filetypes = {}

local keymaps = {
    ['nv'] = {'h', 'j', 'k', 'l'},
    ['nvi'] = {'<Left>', '<Down>', '<Up>', '<Right>'},
}

local is_enabled = false

local custom_mappings = {}

function M.try_delay_keypress(key, keypress)
    current_interval = current_grace_period_intervals[key]

    -- ignore user defined patterns
    for _,ign_ft in ipairs(ignore_filetypes) do
        if vim.o.filetype:match(ign_ft) then
            M.send_keypress(keypress)
            return
        end
    end

    -- Ingore on macro execution
    if vim.fn.reg_executing() ~= "" then
        M.send_keypress(keypress)
        return
    end

    -- Start a timer on the first keypress to reset the interval
    if current_interval == 0 then
        vim.loop.new_timer():start(vim.g.delaytrain_delay_ms, 0, function()
            current_grace_period_intervals[key] = 0
        end)
    end

    -- Pass the key through only if we haven't reached the grace period
    if current_interval < vim.g.delaytrain_grace_period then
        current_grace_period_intervals[key] = current_interval + 1
        M.send_keypress(keypress)
    end
end

function M.send_keypress(keypress)
    vim.api.nvim_feedkeys(
        vim.api.nvim_replace_termcodes(keypress, true, false, true),
        'n',
        false
    )
end

function M.setup(opts)
    if opts then
        if opts.delay_ms then
            vim.g.delaytrain_delay_ms = opts.delay_ms
        end

        if opts.grace_period then
            vim.g.delaytrain_grace_period = opts.grace_period
        end

        ignore_filetypes = opts.ignore_filetypes or {}

        if opts.keys then
            keymaps = opts.keys
        end
    end

    M.enable()
end

function M.enable()
    is_enabled = true

    -- Get an array of all the keys we want to delay regardless of remap status
    local function get_key_mappings (key, mode_array)
        local key_mappings = {}
        for _, mode in ipairs(mode_array) do
            local keypress = key
            local remap


.write_string(30, &v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        ::protobuf::MessageStatic::descriptor_static(None::<Self>)
    }
}

impl ::protobuf::MessageStatic for UpgradeRequiredMessage {
    fn new() -> UpgradeRequiredMessage {
        UpgradeRequiredMessage::new()
    }

    fn descriptor_static(_: ::std::option::Option<UpgradeRequiredMessage>) -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                    "upgrade_signed_part",
                    UpgradeRequiredMessage::get_upgrade_signed_part_for_reflect,
                    UpgradeRequiredMessage::mut_upgrade_signed_part_for_reflect,
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                    "signature",
                    UpgradeRequiredMessage::get_signature_for_reflect,
                    UpgradeRequiredMessage::mut_signature_for_reflect,
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "http_suffix",
                    UpgradeRequiredMessage::get_http_suffix_for_reflect,
                    UpgradeRequiredMessage::mut_http_suffix_for_reflect,
                ));
                ::protobuf::reflect::MessageDescriptor::new::<UpgradeRequiredMessage>(
                    "UpgradeRequiredMessage",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }
}

impl ::protobuf::Clear for UpgradeRequiredMessage {
    fn clear(&mut self) {
        self.clear_upgrade_signed_part();
        self.clear_signature();
        self.clear_http_suffix();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for UpgradeRequiredMessage {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for UpgradeRequiredMessage {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]


linear_71639_14233)\"/><path d=\"M10.87 25.8h10.26l.5-2.1H10.37l.5 2.1Z\" fill=\"url(#paint10_linear_71639_14233)\"/><defs><linearGradient id=\"paint1_linear_71639_14233\" x1=\"16\" y1=\"2\" x2=\"16\" y2=\"30\" gradientUnits=\"userSpaceOnUse\"><stop offset=\".79\" stop-color=\"#D34719\" stop-opacity=\"0\"/><stop offset=\".83\" stop-color=\"#D34719\"/><stop offset=\"1\" stop-color=\"#D34719\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"paint6_linear_71639_14233\" x1=\"16\" y1=\"13.2\" x2=\"16\" y2=\"25.03\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#FFF2BE\"/><stop offset=\".44\" stop-color=\"#FFD638\"/></linearGradient><linearGradient id=\"paint7_linear_71639_14233\" x1=\"14.91\" y1=\"9.7\" x2=\"17.09\" y2=\"9.7\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#FFF2BE\"/><stop offset=\"1\" stop-color=\"#FFD638\"/></linearGradient><linearGradient id=\"paint8_linear_71639_14233\" x1=\"10.61\" y1=\"12.94\" x2=\"12.08\" y2=\"11.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#FFF2BE\"/><stop offset=\"1\" stop-color=\"#FFD638\"/></linearGradient><linearGradient id=\"paint9_linear_71639_14233\" x1=\"19.87\" y1=\"11.53\" x2=\"21.32\" y2=\"12.98\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#FFF2BE\"/><stop offset=\"1\" stop-color=\"#FFD638\"/></linearGradient><linearGradient id=\"paint10_linear_71639_14233\" x1=\"15.08\" y1=\"23.7\" x2=\"16.4\" y2=\"27.19\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#FFC7A3\"/><stop offset=\"1\" stop-color=\"#FF9C70\"/></linearGradient><radialGradient id=\"paint0_radial_71639_14233\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"rotate(73.98 1.35 8.35) scale(25.0244 38.0917)\"><stop stop-color=\"#FFE06B\"/><stop offset=\".38\" stop-color=\"#FFA43D\"/><stop offset=\"1\" stop-color=\"#E67505\"/></radialGradient><radialGradient id=\"paint2_radial_71639_14233\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"rotate(46.82 -9.54 19.64) scale(2.78564 2.22718)\"><stop offset=\".17\" stop-color=\"


local Virovirokun, super = Class(Recruit)

function Virovirokun:init()
    super.init(self)

    -- Display Name
    self.name = "Virovirokun"

    -- How many times an enemy needs to be spared to be recruited
    self.recruit_amount = 4

    -- Organize the order that recruits show up in the recruit menu
    self.index = 1

    -- Selection Display
    self.description = "A virus with a slightly\ncriminal streak... and a heart\nof gold."
    self.chapter = 2
    self.level = 7
    self.attack = 8
    self.defense = 6
    self.element = "VIRUS"
    self.like = "Retro Games"
    self.dislike = "Federal Justice System"

    -- Controls the