O18HCawe09HQIgAG0yiY/xfWVh6hO3Q8tAgA03d67ZUEVggohhZ8P0ohxL5RDMxahtkdvzPr8ewwkDefv3PVl34KhLdpWugOnQwtFbd+fPfYV24GeuuVtBKGiC3/9rmZrzzwjzMMNkzM7krAbFgZbcCaFYyG0UysNRnNxMa4j1VK45HFqUVffm3ilF9sPOysGXR5UU1pJQwvH/j2R822X33VsDtAFQxmdwpvMAhgIvam73bjyx14z0QgEP1+ODW0dU36+NuuOep9e9HjxVolsELGxMTEb6O4ErAEVriJqldzkUvCkDEoSz0J3aVfvJLACiH9IpcQLvrBKwmskNIPcgnhI+peSWCFmKjLJYSTKHslgRVyoiyXEF6i6pUEVgSIqlxCuImiVxJYESGKcgnhJ2peSWBFiKjJJUSDKHklgRUxoiSXEB2i4pUEVgSJilxCtIiCVxJYESUKcgnRI+xeSWBFmLDLJUSTMHslgRVxwiyXEF3C6pUEVh8QVrmEaBNGrySw+oQwyiVEn7B5JYHVR4RNLqE/CJNXElh9RpjkEvqHsHglgdWHhEUuob8Ig1cSWH1KGOQS+o9eeyWB1cf0Wi6hP+mlVxJYfY6ElhAEvfJKAmsAkNASgqAXXklgDQgSWkIQdNsrCawBQkJLCIJueiWBNWAEJRcACa0BpluhJYE1gEhoCUHQjdCSwBpQJLSEIAg6tGLdOxQhbGQymdUTExPYs2fPRJu/yvG+SmgJQXgFAGZ8fJwksAacDsplMLukJQwwQYWWBJbQKbk0MwOAIiIJLSGQ0JLAEgB0RC4bAANQzCyBJQDofGhJYAlF2pRLAdBw66+kDkso0snQksASZtGGXApuKQuQE6Ewh06FloglzKNFuRSAPLzLwkB2TIg0nQgtEUuoSBv9aZLMnOjFPgvhp91+WhJYQlVakYuZh7zHC0JF2gktCSyhJk3I5X9Ne5sgVKXV0JLAEuriybUWbp1nArMlG/a2obJNAkuoSxNe+V/TElhCQ2QymTWjo6MZuPWecW/zBUuXbSm48glCXZrwKg25JBSaYe3atWs9uQC3r5UF9+wYR+kMmfC+F4SGaNCrJICEBJbQFGvXrj156dKlJ8EdO8hwBVNwJSsXTRAaplGvJLCEphkbGzt16dKlp8LtKKrhSgaUxhFKT3ehaWp5BS+4JLCElhgbG3vNsmXLXg23s6gDVzAHrmSm1nMFoRpVvPLDSwapCq2zZs2a05YvX74OwAyAHIAC3LOjU+t5glCLKl45ALQEltAWq1evPnPp0qUbAEwDyKIkmSC0TAWvsgAKElhC24yNjZ2dSCTOIaIDAKaJaLrX+yREH8+rcwFMwg2uGQksoSOsW7fu/F27dl0EYAquXILQNmVeSWAJnWXjxo1n7d69+xJIYAkdZOPGjefs2LHjwwCyElhCR7ngggv+4qGHHrqm1/sh9BebNm0697777rvu/wPxCBExj5EzhAAAAABJRU5ErkJggg==");
        --login-scan-title-color: var(--login-text-color);
        --login-scan-text-color: #b3b3b3;
        --login-tips-bg: none;
      }
    </style>
    <script>
      var ie_version = (function () {
        var userAgent = navigator.userAgent,
          isLessIE11 =
            userAgent.indexOf("compatible") > -1 &&
            userAgent.indexOf("MSIE") > -1,
          isEdge = userAgent.indexOf("Edge") > -1 && !isLessIE11,
          isIE11 =
            userAgent.indexOf("Trident") > -1 &&
            userAgent.indexOf("rv:11.0") > -1;
        if (isLessIE11) {
          var IEReg = new RegExp("MSIE (\\d+\\.\\d+);");
          IEReg.test(userAgent);
          var IEVersionNum = parseFloat(RegExp["$1"]);
          if (IEVersionNum === 7) {
            // IE7
            return 7;
          } else if (IEVersionNum === 8) {
            // IE


. Possible values: ["API_VERSION_V1", "API_VERSION_V2", "API_VERSION_V2_BETA_1"]`,
			},
			"avatar_uri": {
				Type:     schema.TypeString,
				Optional: true,
				Description: `The URI of the agent's avatar, which are used throughout the Dialogflow console. When an image URL is entered
into this field, the Dialogflow will save the image in the backend. The address of the backend image returned
from the API will be shown in the [avatarUriBackend] field.`,
			},
			"classification_threshold": {
				Type:     schema.TypeFloat,
				Optional: true,
				Description: `To filter out false positive results and still get variety in matched natural language inputs for your agent,
you can tune the machine learning classification threshold. If the returned score value is less than the threshold
value, then a fallback intent will be triggered or, if there are no fallback intents defined, no intent will be
triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the
default of 0.3 is used.`,
			},
			"description": {
				Type:         schema.TypeString,
				Optional:     true,
				ValidateFunc: validation.StringLenBetween(0, 500),
				Description:  `The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.`,
			},
			"enable_logging": {
				Type:        schema.TypeBool,
				Optional:    true,
				Description: `Determines whether this agent should log conversation queries.`,
			},
			"match_mode": {
				Type:         schema.TypeString,
				Computed:     true,
				Optional:     true,
				ValidateFunc: verify.ValidateEnum([]string{"MATCH_MODE_HYBRID", "MATCH_MODE_ML_ONLY", ""}),
				Description: `Determines how intents are detected from user queries.
* MATCH_MODE_HYBRID: Best for agents with a small number of examples in intents and/or wide use of templates
syntax and composite entities.
* MATCH_MODE_ML_ONLY: Can be used for agents with a large number of examples in intents, especially the ones
using @sys.any or very large developer entities. Possible values: ["MATCH_MODE_HYBRID", "MATCH_MODE_ML_ONLY"]`,
			},
			"supported_language_codes": {
				Type:        schema.TypeList,
				Optional:    true,
				Description: `The list of all languages supported by this agent (except for the defaultLanguageCode).`,
				Elem: &schema.Schema{
					Type: schema.TypeString,
				},
			},
			"tier": {
				Type:         schema.TypeString,
				Optional:     true,
				ValidateFunc: verify.ValidateEnum([]string{"TIER_STANDARD", "TIER_ENTERPRISE", "TIER_ENTERPRISE_PLUS", ""}),
				Description: `The agent tier. If not specified, TIER_STANDARD is assumed.
* TIER_STANDARD: Standard tier.
* TIER_ENTERPRISE: Enterprise tier (Essentials).
* TIER_ENTERPRISE_PLUS: Enterprise tier (Plus).
NOTE: Due to consistency issues, the provider will not read this field from the API. Drift is possible between
the Terraform state and Dialogflow if the agent tier is changed outside of Terraform. Possible values: ["TIER_STANDARD", "TIER_ENTERPRISE", "TIER_ENTERPRISE_PLUS"]`,
			},
			"avatar_uri_backend": {
				Type:     schema.TypeString,
				Computed: true,
				Description: `The URI of the agent's avatar as returned from the API. Output only. To provide an image URL for the agent avatar,
the [avatarUri] field can be used.`,
			},
			"project":


analyzer
//! Book keeping for keeping diagnostics easily in sync with the client.
use lsp_types::{CodeActionOrCommand, Diagnostic, Range};
use ra_ide::FileId;
use std::{collections::HashMap, sync::Arc};

pub type CheckFixes = Arc<HashMap<FileId, Vec<Fix>>>;

#[derive(Debug, Default, Clone)]
pub struct DiagnosticCollection {
    pub native: HashMap<FileId, Vec<Diagnostic>>,
    pub check: HashMap<FileId, Vec<Diagnostic>>,
    pub check_fixes: CheckFixes,
}

#[derive(Debug, Clone)]
pub struct Fix {
    pub range: Range,
    pub action: CodeActionOrCommand,
}

#[derive(Debug)]
pub enum DiagnosticTask {
    ClearCheck,
    AddCheck(FileId, Diagnostic, Vec<CodeActionOrCommand>),
    SetNative(FileId, Vec<Diagnostic>),
}

impl DiagnosticCollection {
    pub fn clear_check(&mut self) -> Vec<FileId> {
        Arc::make_mut(&mut self.check_fixes).clear();
        self.check.drain().map(|(key, _value)| key).collect()
    }

    pub fn add_check_diagnostic(
        &mut self,
        file_id: FileId,
        diagnostic: Diagnostic,
        fixes: Vec<CodeActionOrCommand>,
    ) {
        let diagnostics = self.check.entry(file_id).or_default();
        for existing_diagnostic in diagnostics.iter() {
            if are_diagnostics_equal(&existing_diagnostic, &diagnostic) {
                return;
            }
        }

        let check_fixes = Arc::make_mut(&mut self.check_fixes);
        check_fixes
            .entry(file_id)
            .or_default()
            .extend(fixes.into_iter().map(|action| Fix { range: diagnostic.range, action }));
        diagnostics.push(diagnostic);
    }

    pub fn set_native_diagnostics(&mut self, file_id: FileId, diagnostics: Vec<Diagnostic>) {
        self.native.insert(file_id, diagnostics);
    }

    pub fn diagnostics_for(&self, file_id: FileId) -> impl Iterator<Item = &Diagnostic> {
        let native = self.native.get(&file_id).into_iter().flatten();
        let check = self.check.get(&file_id).into_iter().flatten();
        native.chain(check)
    }

    pub fn handle_task(&mut self, task: DiagnosticTask) -> Vec<FileId> {
        match task {
            DiagnosticTask::ClearCheck => self.clear_check(),
            DiagnosticTask::AddCheck(file_id, diagnostic, fixes) => {
                self.add_check_diagnostic(file_id, diagnostic, fixes);
                vec![file_id]
            }
            DiagnosticTask::SetNative(file_id, diagnostics) => {
                self.set_native_diagnostics(file_id, diagnostics);
                vec![file_id]
            }
        }
    }
}

fn are_diagnostics_equal(left: &Diagnostic, right: &Diagnostic) -> bool {
    left.source == right.source
        && left.severity == right.severity
        && left.range == right.range
        && left.message == right.message
}
<filename>src/main.rs
// #![allow(unused)]

use rltk::{GameState, Rltk, VirtualKeyCode, RGB};
use specs::prelude::*;
use specs_derive::Component;
use std::cmp::{max, min};

// The derive macro brings a lot of boilerplate for the Component
// so we don't have to repeat us over and over again.
// For example:
// `impl Component for Position` and for Renderable and so on.
#[derive(Component)]
struct Position {
    x: i32,
    y: i32,


 XY) gpu.Vec2 { return gpu.NewVec2Expression(gpu.Fn("intBitsToFloat", a)) } //glsl:intBitsToFloat(ivec2)vec

func either[T gpu.AnyInt | XY](v T) gpu.Evaluator {
	rvalue := reflect.ValueOf(v)
	switch {
	case rvalue.Type().ConvertibleTo(reflect.TypeOf(XY{})):
		return rvalue.Convert(reflect.TypeOf(XY{})).Interface().(XY)
	case rvalue.Type().ConvertibleTo(reflect.TypeOf(gpu.Int{})):
		return gpu.NewInt(rvalue.Convert(reflect.TypeOf(gpu.Int{})).Interface().(gpu.Int))
	default:
		return gpu.NewInt(rvalue.Int())
	}
}

func Abs(a XY) XY  { return gpu.NewVec2iExpression(gpu.Fn("abs", a)) }  //glsl:abs(ivec2)ivec2
func Sign(a XY) XY { return gpu.NewVec2iExpression(gpu.Fn("sign", a)) } //glsl:sign(ivec2)ivec2
func Min[B gpu.AnyInt | XY](a XY, b B) XY { //glsl:min(ivec2,ivec2)ivec2 min(ivec2,int)ivec2
	return gpu.NewVec2iExpression(gpu.Fn("min", a, either(b)))
}
func Max[T gpu.AnyInt | XY](a XY, b T) XY { //glsl:max(ivec2,int)ivec2 max(ivec2,ivec2)ivec2
	return gpu.NewVec2iExpression(gpu.Fn("max", a, either(b)))
}
func Clamp[T XY | gpu.AnyInt](a XY, min, max T) XY { //glsl:clamp(ivec2,int,int)ivec2 clamp(ivec2,ivec2,ivec2)ivec2
	return gpu.NewVec2iExpression(gpu.Fn("clamp", a, either(min), either(max)))
}
func Equal(a, b XY) gpu.Vec2b    { return gpu.NewVec2bExpression(gpu.Fn("equal", a, b)) }    //glsl:equal(ivec2,ivec2)bvec
func LessThan(a, b XY) gpu.Vec2b { return gpu.NewVec2bExpression(gpu.Fn("lessThan", a, b)) } //glsl:lessThan(ivec2,ivec2)bvec
func LessThanEqual(a, b XY) gpu.Vec2b { //glsl:lessThanEqual(ivec2,ivec2)bvec
	return gpu.NewVec2bExpression(gpu.Fn("lessThanEqual", a, b))
}
func GreaterThan(a, b XY) gpu.Vec2b { //glsl:greaterThan(ivec2,ivec2)bvec
	return gpu.NewVec2bExpression(gpu.Fn("greaterThan", a, b))
}
func GreaterThanEqual(a, b XY) gpu.Vec2b { //glsl:greaterThanEqual(ivec2,ivec2)bvec
	return gpu.NewVec2bExpression(gpu.Fn("greaterThanEqual", a, b))
}
func NotEqual(a, b XY) gpu.Vec2b { return gpu.NewVec2bExpression(gpu.Fn("notEqual", a, b)) } //glsl:notEqual(ivec2,ivec2)bvec
package Spatial

import (
	"graphics.gd/shaders/bool"
	"graphics.gd/shaders/float"
	"graphics.gd/shaders/int"
	"graphics.gd/shaders/internal/gpu"
	"graphics.gd/shaders/mat4"
	"graphics.gd/shaders/uint"
	"graphics.gd/shaders/vec2"
	"graphics.gd/shaders/vec3"
	"graphics.gd/shaders/vec4


U+7693, U+76ef, U+7737, U+77a7, U+77b3, U+77bb, U+77da, U+77e2, U+77e9, U+77ef, U+7801, U+7940, U+797f, U+79a7, U+79b1, U+79bd, U+79cd, U+7a6b, U+7ac5, U+7b1b, U+7b77, U+7ca7, U+7dab, U+7db4, U+7db8, U+7dcb, U+7ddd, U+7de0, U+7e55, U+7e9c, U+7ed3, U+7ef4, U+803f, U+8046, U+8087, U+8116, U+81a8, U+8214, U+821c, U+82d4, U+831c, U+8339, U+8350, U+8354, U+8526, U+860a, U+86db, U+8713, U+873b, U+8822, U+8993, U+8a1f, U+8ab9, U+8ad7, U+8bcd, U+8e72, U+8f4e, U+8f9c, U+8fd0, U+8fd8, U+8fe6, U+9042, U+907c, U+91ba, U+9452, U+95e2, U+9631, U+9699, U+96b8, U+9709, U+978d, U+9830, U+98ce, U+9945, U+99ed, U+9a8c, U+9ad3, U+9baa, U+9be8, U+9c77, U+9cf6, U+9d72, U+9e1f, U+9ec4, U+fe31, U+fe55, U+ff03, U+ff20, U+ff3b, U+ff3d, U+1f3fb, U+1f44d, U+1f60d;
  }
  /* [104] */
  @font-face {
    font-family: 'Noto Sans TC';
    font-style: normal;
    font-weight: 400;
    src: local('Noto Sans TC Regular'), local('NotoSansTC-Regular'), url(https://fonts.gstatic.com/s/notosanstc/v9/-nF7OG829Oofr2wohFbTp9iFOisNA_cTyNromxqQuEMQ2wHYwbnmy1R1jDujLebozBXCo2qYhRo.104.woff2) format('woff2');
    unicode-range: U+10c, U+161, U+e44, U+2728, U+3081, U+4e13, U+4e19, U+4e1c, U+4e1e, U+4e5c, U+4ea7, U+4ed7, U+4f20, U+4f8d, U+4ffe, U+5021, U+50d5, U+515c, U+51a4, U+51e0, U+521b, U+522b, U+532a, U+534e, U+5355, U+537f, U+5398, U+541f, U+543c, U+544e, U+5509, U+5598, U+5622, U+563f, U+5641, U+566a, U+5695, U+569f, U+56ae, U+56da, U+573a, U+574e, U+584c, U+5885, U+58ae, U+5a1f, U+5ac2, U+5b24, U+5bb0, U+5bde, U+5be1, U+5bfc, U+5c39, U+5c4c, U+5c60, U+5cfb, U+5d11, U+5e


Time of minimum temperature
			// 6  Maximum temperature
			// 7  Time of maximum temperature
			// 8  Minimum sea level pressure
			// 9  Time of minimum pressure
			// 10  Maximum sea level pressure
			// 11  Time of maximum pressure
			// 12  Maximum rainfall rate
			// 13  Time of maximum rainfall rate
			// 14  Total rainfall for the day
			// 15  Average temperature for the day
			// 16  Total wind run
			// 17  Highest average wind speed
			// 18  Time of highest average wind speed
			// 19  Lowest humidity
			// 20  Time of lowest humidity
			// 21  Highest humidity
			// 22  Time of highest humidity
			// 23  Total evapotranspiration
			// 24  Total hours of sunshine
			// 25  High heat index
			// 26  Time of high heat index
			// 27  High apparent temperature
			// 28  Time of high apparent temperature
			// 29  Low apparent temperature
			// 30  Time of low apparent temperature
			// 31  High hourly rain
			// 32  Time of high hourly rain
			// 33  Low wind chill
			// 34  Time of low wind chill
			// 35  High dew point
			// 36  Time of high dew point
			// 37  Low dew point
			// 38  Time of low dew point
			// 39  Dominant wind bearing
			// 40  Heating degree days
			// 41  Cooling degree days
			// 42  High solar radiation
			// 43  Time of high solar radiation
			// 44  High UV Index
			// 45  Time of high UV Index
			// 46  High Feels like
			// 47  Time of high feels like
			// 48  Low feels like
			// 49  Time of low feels like
			// 50  High Humidex
			// 51  Time of high Humidex
			// 52  Chill hours
			// 53  Max Rain 24 hours
			// 54  Max Rain 24 hours Time

			double AvgTemp;
			if (tempsamplestoday > 0)
				AvgTemp = TempTotalToday / tempsamplestoday;
			else
				AvgTemp = 0;

			// save the value for yesterday
			YestAvgTemp = AvgTemp;

			var inv = CultureInfo.InvariantCulture;
			var sep = ",";

			var datestring = timestamp.AddDays(-1).ToString("dd/MM/yy", inv);
			// NB this string is just for logging, the dayfile update code is further down
			var strb = new StringBuilder(300);
			strb.Append(datestring);
			strb.Append(sep + HiLoToday.HighGust.ToString(cumulus.WindFormat, inv));
			strb.Append(sep + HiLoToday.HighGustBearing);
			strb.Append(sep + HiLoToday.HighGustTime.ToString("HH:mm", inv));
			strb.Append(sep + HiLoToday.LowTemp.ToString(cumulus.TempFormat, inv));
			strb.Append(sep + HiLoToday.LowTempTime.ToString("HH:mm", inv));
			strb.Append(sep + HiLoToday.HighTemp.ToString(cumulus.TempFormat, inv));
			strb.Append(sep + HiLoToday.HighTempTime.ToString("HH:mm", inv));
			strb.Append(sep + HiLoToday.LowPress.ToString(cumulus.PressFormat, inv));
			strb.Append(sep + HiLoToday.LowPressTime.ToString("HH:mm", inv));
			strb.Append(sep + HiLoToday.HighPress.ToString(cumulus.PressFormat, inv));
			strb.Append(sep + HiLoToday.HighPressTime.ToString("HH:mm", inv));
			strb.Append(sep + HiLoToday.HighRainRate.ToString(cumulus.RainFormat, inv));
			strb.Append(sep + HiLoToday.HighRainRateTime.ToString("HH:mm", inv));
			strb.Append(sep + RainToday.ToString(cumulus.RainFormat, inv));
			strb.Append(sep + AvgTemp.ToString(cumulus.TempFormat, inv));
			strb.Append(sep + WindRunToday.ToString("F1", inv));
			strb.Append(sep + HiLoToday.HighWind.ToString(cumulus.WindAvgFormat, inv));
			strb.Append(sep + HiLoToday.High


xName() != 0 )
    {
        pfcbTable->Ptdb()->MemPool().DeleteEntry( pidb->ItagIndexName() );
    }
    if ( pidb->FIsRgidxsegInMempool() )
    {
        Assert( pidb->ItagRgidxseg() != 0 );
        pfcbTable->Ptdb()->MemPool().DeleteEntry( pidb->ItagRgidxseg() );
    }
    if ( pidb->FIsRgidxsegConditionalInMempool() )
    {
        Assert( pidb->ItagRgidxsegConditional() != 0 );
        pfcbTable->Ptdb()->MemPool().DeleteEntry( pidb->ItagRgidxsegConditional() );
    }

    ReleasePidb();
}

//  lookup an FCB by ifmp/pgnoFDP using the FCB hash-table and pin it by
//      adding 1 to the refcnt
//
//  returns pfcbNil if the FCB does not exist (or exists but is not visible)
//
//  for FCBs that are being initialized but are not finished, this code will
//      retry repeatedly until the initialization finished with success or
//      an error-code
//
//  for FCBs that failed to initialize, they are left in place until they
//      can be purged and recycled
//
//  NOTE: this is the proper channel for accessing an FCB; it uses the locking
//      protocol setup by the FCB hash-table and FCB latch

FCB *FCB::PfcbFCBGet( const IFMP ifmp, const PGNO pgnoFDP, FCBStateFlags* const pfcbsf, const BOOL fIncrementRefCount, const BOOL fInitForRecovery )
{
    FCBStateFlags   fcbsf = fcbsfNone;
    INST            *pinst = PinstFromIfmp( ifmp );
    FCB             *pfcbT;
    FCBHash::ERR    errFCBHash;
    FCBHash::CLock  lockFCBHash;
    FCBHashKey      keyFCBHash( ifmp, pgnoFDP );
    FCBHashEntry    entryFCBHash;
    ULONG           cRetries = 0;

RetrieveFCB:
    AssertTrack( cRetries != 100000, "TooManyFcbGetRetries" );

    //  lock the hash table

    pinst->m_pfcbhash->ReadLockKey( keyFCBHash, &lockFCBHash );

    //  update performance counter

    PERFOpt( cFCBCacheRequests.Inc( pinst ) );

    //  try to retrieve the entry

    errFCBHash = pinst->m_pfcbhash->ErrRetrieveEntry( &lockFCBHash, &entryFCBHash );

    if ( errFCBHash != FCBHash::ERR::errSuccess )
    {
        //  unlock the hash table

        pinst->m_pfcbhash->ReadUnlockKey( &lockFCBHash );

        pfcbT = pfcbNil;
        goto SetStateAndReturn;
    }

    //  update performance counter
    PERFOpt( cFCBCacheHits.Inc( pinst ) );

    //  the entry exists

    Assert( entryFCBHash.m_pgnoFDP == pgnoFDP );
    pfcbT = entryFCBHash.m_pfcb;
    Assert( pfcbNil != pfcbT );

    //  we must declare ourselves as an owner/waiter on the write latch
    //      to prevent the FCB from randomly disappearing (via the purge code)
    //      however, this is complicated due to us holding pinst->m_pfcbhash,
    //      which causes a rank violation if we have to actually wait for the
    //      lock.  So, we have to start by requesting a non-blocking
    //      exclusive latch (which either takes the latch or marks us as waiter),
    //      releasing the hash lock, then completing the exclusive latch and
    //      upgrading to writer.
    //
    //  Note:


// Occurred error to stop iteration
}

// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *SynapseCCTPFeesEventsChainGasAirdroppedIterator) Next() bool {
	// If the iterator failed, stop iterating
	if it.fail != nil {
		return false
	}
	// If the iterator completed, deliver directly whatever's available
	if it.done {
		select {
		case log := <-it.logs:
			it.Event = new(SynapseCCTPFeesEventsChainGasAirdropped)
			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
				it.fail = err
				return false
			}
			it.Event.Raw = log
			return true

		default:
			return false
		}
	}
	// Iterator still in progress, wait for either a data or an error event
	select {
	case log := <-it.logs:
		it.Event = new(SynapseCCTPFeesEventsChainGasAirdropped)
		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
			it.fail = err
			return false
		}
		it.Event.Raw = log
		return true

	case err := <-it.sub.Err():
		it.done = true
		it.fail = err
		return it.Next()
	}
}

// Error returns any retrieval or parsing error occurred during filtering.
func (it *SynapseCCTPFeesEventsChainGasAirdroppedIterator) Error() error {
	return it.fail
}

// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *SynapseCCTPFeesEventsChainGasAirdroppedIterator) Close() error {
	it.sub.Unsubscribe()
	return nil
}

// SynapseCCTPFeesEventsChainGasAirdropped represents a ChainGasAirdropped event raised by the SynapseCCTPFeesEvents contract.
type SynapseCCTPFeesEventsChainGasAirdropped struct {
	Amount *big.Int
	Raw    types.Log // Blockchain specific contextual infos
}

// FilterChainGasAirdropped is a free log retrieval operation binding the contract event 0xf9b0951a3a6282341e1ba9414555d42d04e99076337702ee6dc484a706bfd683.
//
// Solidity: event ChainGasAirdropped(uint256 amount)
func (_SynapseCCTPFeesEvents *SynapseCCTPFeesEventsFilterer) FilterChainGasAirdropped(opts *bind.FilterOpts) (*SynapseCCTPFeesEventsChainGasAirdroppedIterator, error) {

	logs, sub, err := _SynapseCCTPFeesEvents.contract.FilterLogs(opts, "ChainGasAirdropped")
	if err != nil {
		return nil, err
	}
	return &SynapseCCTPFeesEventsChainGasAirdroppedIterator{contract: _SynapseCCTPFeesEvents.contract, event: "ChainGasAirdropped", logs: logs, sub: sub}, nil
}

// WatchChainGasAirdropped is a free log subscription operation binding the contract event 0xf9b0951a3a6282341e1ba9414555d42d04e99076337702ee6dc484a706bfd683.
//
// Solidity: event ChainGasAirdropped(uint256 amount)
func (_SynapseCCTPFeesEvents *SynapseCCTPFeesEventsFilterer) WatchChainGasAirdropped(opts *bind.WatchOpts, sink chan<- *SynapseCCTPFeesEventsChainGasAirdropped) (event.Subscription, error) {

	logs, sub, err := _SynapseCCTPFeesEvents.contract.WatchLogs(opts, "ChainGasAirdropped")
	if err != nil {
		return nil, err
	}
	return event.NewSubscription(func(quit <-chan struct{}) error {
		defer sub.Unsubscribe()
		for {
			select {
			case log := <-logs:
				// New log arrived, parse the event and forward to the user
				event := new(SynapseCCTPFeesEventsChainGasAirdropped)
				if err := _Sy


 -> GPIO_GPK0_PULL_CTRLR {
        GPIO_GPK0_PULL_CTRLR::_from({
            const MASK: u8 = 3;
            const OFFSET: u8 = 0;
            ((self.bits >> OFFSET) & MASK as u32) as u8
        })
    }
}
impl W {
    #[doc = r" Reset value of the register"]
    #[inline]
    pub fn reset_value() -> W {
        W { bits: 0 }
    }
    #[doc = r" Writes raw bits to the register"]
    #[inline]
    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
        self.bits = bits;
        self
    }
    #[doc = "Bits 20:21"]
    #[inline]
    pub fn gpio_gpea_pull_ctrl(&mut self) -> _GPIO_GPEA_PULL_CTRLW {
        _GPIO_GPEA_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 18:19"]
    #[inline]
    pub fn gpio_gpe9_pull_ctrl(&mut self) -> _GPIO_GPE9_PULL_CTRLW {
        _GPIO_GPE9_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 16:17"]
    #[inline]
    pub fn gpio_gpe8_pull_ctrl(&mut self) -> _GPIO_GPE8_PULL_CTRLW {
        _GPIO_GPE8_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 12:13"]
    #[inline]
    pub fn gpio_gpk7_pull_ctrl(&mut self) -> _GPIO_GPK7_PULL_CTRLW {
        _GPIO_GPK7_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 10:11"]
    #[inline]
    pub fn gpio_gpk5_pull_ctrl(&mut self) -> _GPIO_GPK5_PULL_CTRLW {
        _GPIO_GPK5_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 8:9"]
    #[inline]
    pub fn gpio_gpk4_pull_ctrl(&mut self) -> _GPIO_GPK4_PULL_CTRLW {
        _GPIO_GPK4_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 6:7"]
    #[inline]
    pub fn gpio_gpk3_pull_ctrl(&mut self) -> _GPIO_GPK3_PULL_CTRLW {
        _GPIO_GPK3_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 4:5"]
    #[inline]
    pub fn gpio_gpk2_pull_ctrl(&mut self) -> _GPIO_GPK2_PULL_CTRLW {
        _GPIO_GPK2_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 2:3"]
    #[inline]
    pub fn gpio_gpk1_pull_ctrl(&mut self) -> _GPIO_GPK1_PULL_CTRLW {
        _GPIO_GPK1_PULL_CTRLW { w: self }
    }
    #[doc = "Bits 0:1"]
    #[inline]
    pub fn gpio_gpk0_pull_ctrl(&mut self) -> _GPIO_GPK0_PULL_CTRLW {
        _GPIO_GPK0_PULL_CTRLW { w: self }
    }
}
<filename>vm/src/jack_os.rs<gh_stars>1-10
// The supplied "Operating System" source from the original Jack Virtual Machine.
// The Java implementation goes a step further and implements the OS interfaces
// inline in native Java. These impelemtantions are reasonably fast enough though.
pub const SOURCE: &str = "
function Array.new 0
push argument 0
push constant 0
gt
not
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 2
call Sys.error 1
pop temp 0
label IF_FALSE0
push argument 0
call Memory.alloc 1
return
function Array.dispose 0
push argument 0
pop pointer 0
push pointer 0
call Memory.deAlloc 1
pop temp 0
push constant 0
return
function Keyboard.init 0


byte 0x7265653A
	.4byte 0x2564200A
	.byte 0
.endobj lbl_804830EC
.balign 4
.obj lbl_80483120, local # Shift-JIS
	.4byte 0x82BE82B5
	.4byte 0x82BD2066
	.4byte 0x7265653A
	.4byte 0x2564200A
	.byte 0
.endobj lbl_80483120
.balign 4
.obj lbl_80483134, local # Shift-JIS
	.4byte 0x934782F0
	.4byte 0x8341838D
	.4byte 0x8362834E
	.4byte 0x20256495
	.4byte 0x43814066
	.4byte 0x7265653A
	.4byte 0x2564200A
	.byte 0
.endobj lbl_80483134
.balign 4
.obj lbl_80483154, local
	.asciz "** BIRTH FAILED !! ID:%d \n"
.endobj lbl_80483154
.balign 4
.obj lbl_80483170, local
	.asciz "too many pellet\n"
.endobj lbl_80483170
.balign 4
.obj lbl_80483184, local
	.asciz "PikiKillArg"
.endobj lbl_80483184
.balign 4
.obj lbl_80483190, local
	.asciz "CreatureKillArg"
.endobj lbl_80483190
.balign 4
.obj lbl_804831A0, local
	.asciz "PelletInitArg"
.endobj lbl_804831A0
.balign 4
.obj lbl_804831B0, local
	.asciz "PikiInitArg"
.endobj lbl_804831B0
.balign 4
.obj lbl_804831BC, local
	.asciz "# %d/%d\r\n"
.endobj lbl_804831BC

.section .data, "wa"  # 0x8049E220 - 0x804EFC20
.balign 8
.obj govNAN___Q24Game5P2JST, local
	.float 0.0
	.float 0.0
	.float 0.0
.endobj govNAN___Q24Game5P2JST
.obj lbl_804C0A4C, local # does not show in map. may be autogenerated due to pooled data
	.4byte 0x00000001
	.4byte 0x00000002
	.4byte 0x00000003
	.4byte 0x00000000
.endobj lbl_804C0A4C
.obj "sDirName__28@unnamed@singleGS_Zukan_cpp@", local
	.4byte lbl_80482E7C
	.4byte lbl_8051A100
	.4byte lbl_80482E88
	.4byte lbl_8051A108
.endobj "sDirName__28@unnamed@singleGS_Zukan_cpp@"
.obj lbl_804C0A6C, local
	.4byte 0x00000000
	.4byte 0xFFFFFFFF
	.4byte dvdloadA__Q34Game10SingleGame10ZukanStateFv
.endobj lbl_804C0A6C
.obj lbl_804C0A78, local
	.4byte 0x00000000
	.4byte 0xFFFFFFFF
	.4byte dvdloadB_teki__Q34Game10SingleGame10ZukanStateFv
.endobj lbl_804C0A78
.obj lbl_804C0A84, local
	.4byte 0x00000000
	.4byte 0xFFFFFFFF
	.4byte dvdloadB_pellet__Q34Game10SingleGame10ZukanStateFv
.endobj lbl_804C0A84
	.skip 0x84
.obj __vt__Q28Morimura19DispMemberZukanItem, weak
	.4byte 0
	.4byte 0
	.4byte getSize__Q28Morimura19DispMemberZukanItemFv
	.4byte getOwnerID__Q28Morimura19DispMemberZukanItemFv
	.4byte getMemberID__Q28Morimura19DispMemberZukanItemFv
	.4byte doSetSubMemberAll__Q32og6Screen14DispMemberBaseFv
.endobj __vt__Q28Morimura19


 -> bool {
		if let FileContent::Directory(subfiles) = &self.content {
			subfiles.is_empty()
		} else {
			panic!("Not a directory!");
		}
	}

	/// Adds the file with name `name` to the current file's subfiles. If the current file isn't a
	/// directory, the behaviour is undefined.
	pub fn add_subfile(&mut self, name: String) -> Result<(), Errno> {
		if let FileContent::Directory(subfiles) = &mut self.content {
			subfiles.push(name)
		} else {
			panic!("Not a directory!");
		}
	}

	/// Removes the file with name `name` from the current file's subfiles. If the current file
	/// isn't a directory, the behaviour is undefined.
	pub fn remove_subfile(&mut self, _name: String) {
		if let FileContent::Directory(_subfiles) = &mut self.content {
			// TODO
			todo!();
			// subfiles.remove(name);
		} else {
			panic!("Not a directory!");
		}
	}

	/// Returns the file's content.
	pub fn get_file_content(&self) -> &FileContent {
		&self.content
	}

	/// Sets the file's content, changing the file's type accordingly.
	pub fn set_file_content(&mut self, content: FileContent) {
		self.content = content;
	}

	/// Performs an ioctl operation on the file.
	pub fn ioctl(&mut self, request: u32, argp: *const c_void) -> Result<u32, Errno> {
		if let FileContent::CharDevice {
			major,
			minor,
		} = self.content {
			let dev = device::get_device(DeviceType::Char, major, minor).ok_or(errno::ENODEV)?;
			let mut guard = dev.lock(true);
			guard.get_mut().get_handle().ioctl(request, argp)
		} else {
			Err(errno::ENOTTY)
		}
	}

	/// Synchronizes the file with the device.
	pub fn sync(&self) {
		// TODO
	}

	/// Unlinks the current file.
	pub fn unlink(&mut self) {
		// TODO
	}
}

impl IO for File {
	fn get_size(&self) -> u64 {
		self.size
	}

	fn read(&self, off: u64, buff: &mut [u8]) -> Result<usize, Errno> {
		match &self.content {
			FileContent::Regular => {
				let location = self.location.as_ref().ok_or(errno::EIO)?;

				let mountpoint_mutex = location.get_mountpoint().ok_or(errno::EIO)?;
				let mut mountpoint_guard = mountpoint_mutex.lock(true);
				let mountpoint = mountpoint_guard.get_mut();

				let io_mutex = mountpoint.get_source().get_io().clone();
				let mut io_guard = io_mutex.lock(true);
				let io = io_guard.get_mut();

				let filesystem = mountpoint.get_filesystem();
				filesystem.read_node(io, location.get_inode(), off, buff)
			},

			FileContent::Directory(_subdirs) => {
				// TODO
				todo!();
			},

			FileContent::Link(_target) => {
				// TODO
				todo!();
			},

			FileContent::Fifo(_pipe) => {
				// TODO
				todo!();
			},

			FileContent::Socket(_socket) => {
				// TODO
				todo!();
			},

			FileContent::BlockDevice { .. } | FileContent::CharDevice { .. } => {
				let dev = match self.content {
					FileContent::BlockDevice { major, minor } => {
						device::get_device(DeviceType::Block, major, minor)
					},

					FileContent::CharDevice { major, minor } => {
						device::get_device(DeviceType::Char, major, minor)
					},


5px}.outline-2x{border-width:2px;padding:11px 1.25rem}.alert-notify-section .notify-alert{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media only screen and (max-width: 576px){.alert-dismissible .btn-close{font-size:10px}}.avatars .avatar{display:inline-block;margin-right:10px;position:relative;width:auto}.avatars .avatar:last-child{margin-right:0}.avatars .avatar .b-r-30{border-radius:30px}.avatars .avatar .b-r-35{border-radius:35px}.avatars .avatar .b-r-25{border-radius:25px}.avatars .avatar .b-r-15{border-radius:15px}.avatars .avatar.ratio img{width:auto}.avatars .avatar .status{position:absolute;background-color:#999;bottom:0;right:4px;border-radius:100%;border:1px solid #fff}.avatars .avatar .status{position:absolute;height:12%;width:12%;background-color:#7dc006;border-radius:100%;bottom:12%;right:4%}.customers ul{display:inline-block}.customers ul li img{border:2px solid #fff;-webkit-box-shadow:-2px 2px 4px 0px rgba(0,0,0,0.2);box-shadow:-2px 2px 4px 0px rgba(0,0,0,0.2);-webkit-transition:0.5s;transition:0.5s}.customers ul li img:hover{-webkit-transform:translateY(-4px) scale(1.02);transform:translateY(-4px) scale(1.02);-webkit-transition:0.5s;transition:0.5s}.customers ul li+li{margin-left:-10%}.customers ul li:nth-child(4){margin-left:-4px}.customers.avatar-group{margin-right:30px}.customers.avatar-group:last-child{margin-right:0}.avatar-showcase{margin-bottom:-10px}.avatar-showcase .avatars .avatar{margin-bottom:10px}.avatar-showcase .avatar-group{margin-bottom:10px}.avatar-showcase .ratio>*{position:relative;top:unset;left:unset}.avatar-showcase .add-friend .d-block{margin:8px 0}.badge{padding-top:5px;font-family:"Roboto",sans-serif,sans-serif;font-weight:500}.badge+.badge{margin-left:5px}.badge svg{width:15px;height:15px;padding-top:3px}.pill-badge-primary{background-color:var(--theme-deafult);-webkit-box-shadow:-0.5px 4.33px 16px 0px rgba(var(--theme-deafult), 0.25);box-shadow:-0.5px 4.33px 16px 0px rgba(var(--theme-deafult), 0.25);color:#fff;border-radius:0}.pill-badge-secondary{background-color:#89d4df;-webkit-box-shadow:-0.5px 4.33px 16px 0px rgba(137,212,223,0.25);box-shadow:-0.5px 4.33px 16px 0px rgba(137,212,223,0.25);color:#fff;border-radius:0}.pill-badge-success{background-color:#7dc006;-webkit-box-shadow:-0.5px 4.33px 16px 0px rgba(125,192,6,0.25);box-shadow:-0.5px 4.33px 16px 0px rgba(125,1


 pest::iterators::Pair<Rule>) -> TypeIdent {
    let inner = pair.into_inner().next().unwrap();

    TypeIdent::Option(Box::new(parse_type_ident(inner)))
}

/// Parse a result type.
fn parse_result_type(pair: pest::iterators::Pair<Rule>) -> TypeIdent {
    let mut tokens = pair.into_inner();
    let ok = tokens.next().unwrap();
    let err = tokens.next().unwrap();
    assert_eq!(tokens.next(), None);
    TypeIdent::Result(
        Box::new(parse_type_ident(ok)),
        Box::new(parse_type_ident(err)),
    )
}

/// Parse a map type.
fn parse_map_type(pair: pest::iterators::Pair<Rule>) -> TypeIdent {
    let mut inners = pair.into_inner();
    let key_type = inners.next().unwrap();
    let value_type = inners.next().unwrap();

    TypeIdent::Map(
        Box::new(parse_type_ident(key_type)),
        Box::new(parse_type_ident(value_type)),
    )
}

/// Parse a tuple definition.
fn parse_tuple_def(pair: pest::iterators::Pair<Rule>) -> TupleDef {
    TupleDef(pair.into_inner().map(parse_type_ident).collect())
}

/// Parse a spec item (`struct` or `enum`).
fn parse_spec_item(pair: pest::iterators::Pair<Rule>) -> SpecItem {
    match pair.as_rule() {
        Rule::struct_definition => SpecItem::StructDef(parse_struct_definition(pair)),
        Rule::enum_definition => SpecItem::EnumDef(parse_enum_definition(pair)),
        Rule::service_definition => SpecItem::ServiceDef(parse_service_definition(pair)),
        _ => unreachable!(dbg!(pair)),
    }
}
<filename>module/core/tests/core_tests.rs
use game_chess_core::*;

/*
cargo test test_trivial -- --show-output
cargo test test_export_and_import -- --show-output
*/

#[test]
fn test_trivial()
{
  let mut game = Game::default();
  let target_move = "a2a4";
  game.board_print();
  game.make_move(target_move.into());
  game.board_print();
  assert_eq!(game.status(), GameStatus::Continuing);
  assert_eq!(game.last_move().unwrap().0, target_move);
}

#[test]
fn test_board_to_fen()
{
  let mut board = Board::default();
  board = board.make_move("a2a4".into()).unwrap();
  assert_eq!(
    board.to_fen(),
    "rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1".to_string()
  );
}

#[test]
fn test_board_from_fen()
{
  //src is board after "a2a4" move from starting position
  let src = "rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1".to_string();
  let board = Board::from_fen(&src);
  assert_eq!(board.to_fen(), src);
}

#[test]
fn test_game_import()
{
  let src = r#"{"board":"rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1","history":[{"fen":"rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1","last_move":5640}],"date":{"secs_since_epoch":1643988263,"nanos_since_epoch":27317000}}"#;
  let game : Game = serde_json::from_str(src).unw


Fr.apply(void 0x0,[0x14e])){if(Ya9aEl8[_NNnpFr.apply(void 0x0,[0x14d])]==0x1ed){WmLZtz2(console[_NNnpFr(0x7)](_NNnpFr(0x14f)),$[_NNnpFr.call(undefined,sRGWwP(0x85))]=sRGWwP(0x96))}}WmLZtz2(console[_NNnpFr(sRGWwP(0x69))](String(wb11WXq)),console[_NNnpFr(0x7)](`${$[_NNnpFr(0x8)]} cookie API请求失败，请检查网路重试`))}else{let GFruW3=Cjt5X28[_NNnpFr(0x150)](/(活动已经结束)/)&&Cjt5X28[_NNnpFr(0x150)](/(活动已经结束)/)[sRGWwP(0x6a)]||'';if(GFruW3){WmLZtz2($[_NNnpFr[pA_Hbb(sRGWwP(0x79))](undefined,[sRGWwP(0x82)])]=sRGWwP(0x96),console[_NNnpFr(0x7)](_NNnpFr(0x151)))}csR4D3Z(Ya9aEl8)}}catch(e){$[_NNnpFr.apply(void 0x0,[0x152])](e,Ya9aEl8)}finally{zn4gdA()}})})}function csR4D3Z(WmLZtz2){if(WmLZtz2){if(WmLZtz2[_NNnpFr[sRGWwP(0x99)](sRGWwP(0x65),0x153)][_NNnpFr(0x154)]&&If6xY8.ZdsUozh[_NNnpFr(0x155)](0x0)==0x41){AgQz_Z='';for(let zn4gdA of WmLZtz2[_NNnpFr(0x153)][_NNnpFr(0x154)])vQsuxgt[zn4gdA[_NNnpFr(0x156)](sRGWwP(0xbf))[0x0][_NNnpFr(sRGWwP(0xc0))](sRGWwP(0x5d),zn4gdA[_NNnpFr(0x156)](';')[sRGWwP(0x5d)][_NNnpFr(sRGWwP(0xc1))]('='))]=zn4gdA[_NNnpFr(0x156)](sRGWwP(0xbf))[0x0][_NNnpFr.call(sRGWwP(0x65),sRGWwP(0xc0))](qk5Ziew(zn4gdA[_NNnpFr(0x156)](sRGWwP(0xbf))[sRGWwP(0x5d)][_NNnpFr(sRGWwP(0xc1))]('\u003d'),sRGWwP(0x6a),AlJFIz7(sRGWwP(0x81))));for(const wb11WXq of Object[_NNnpFr(0x159)](vQsuxgt))AgQz_Z+=qk5Ziew(wb11WXq+'\u003d'+vQsuxgt[wb11WXq],sRGWwP(0xbf),etlmHC=0x29);mLkMhE=AgQz_Z}}}async function k79FKHm(){$.UA=`jdapp;iPhone;10.1.4;13.1.2;${WTkR48(sRGWwP(0xc2))};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;


# CS_ARCH_HPPA, CS_MODE_HPPA_20+CS_MODE_BIG_ENDIAN, None
0x24,0x2a,0x10,0x14 = fldw   5(r1),fr20
0x24,0x2a,0x30,0x34 = fldw,mb        5(r1),fr20
0x24,0x2a,0x10,0x34 = fldw,ma        5(r1),fr20
0x24,0x22,0x00,0x14 = fldw   rp(r1),fr20
0x24,0x22,0x20,0x14 = fldw,s rp(r1),fr20
0x24,0x22,0x20,0x34 = fldw,sm        rp(r1),fr20
0x24,0x22,0x00,0x34 = fldw,m rp(r1),fr20
0x2c,0x2a,0x10,0x14 = fldd   5(r1),fr20
0x2c,0x2a,0x30,0x34 = fldd,mb        5(r1),fr20
0x2c,0x2a,0x10,0x34 = fldd,ma        5(r1),fr20
0x2c,0x22,0x00,0x14 = fldd   rp(r1),fr20
0x2c,0x22,0x20,0x14 = fldd,s rp(r1),fr20
0x2c,0x22,0x20,0x34 = fldd,sm        rp(r1),fr20
0x2c,0x22,0x00,0x34 = fldd,m rp(r1),fr20
0x24,0x5e,0x12,0x14 = fstw   fr20,0xf(rp)
0x24,0x5e,0x32,0x34 = fstw,mb        fr20,0xf(rp)
0x24,0x5e,0x12,0x34 = fstw,ma        fr20,0xf(rp)
0x24,0x41,0x06,0x14 = fstw,bc        fr20,r1(rp)
0x24,0x41,0x26,0x14 = fstw,s,bc      fr20,r1(rp)
0x24,0x41,0x26,0x34 = fstw,sm,bc     fr20,r1(rp)
0x24,0x41,0x06,0x34 = fstw,m,bc      fr20,r1(rp)
0x2c,0x5e,0x12,0x14 = fstd   fr20,0xf(rp)
0x2c,0x5e,0x32,0x34 = fstd,mb        fr20,0xf(rp)
0x2c,0x5e,0x12,0x34 = fstd,ma        fr20,0xf(rp)
0x2c,0x41,0x06,0x14 = fstd,bc        fr20,r1(rp)
0x2c,0x41,0x26,0x14 = fstd,s,bc      fr20,r1(rp)
0x2c,0x41,0x26,0x34 = fstd,sm,bc     fr20,r1(rp)
0x2


'''
    Copyright (C) 2021 Gitcoin Core

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published
    by the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.

'''
import time

from django.conf import settings
from django.core.management.base import BaseCommand
from django.utils import timezone

from app.utils import sync_profile
from dashboard.models import Bounty, Profile
from dashboard.utils import is_blocked
from marketing.common.utils import is_deleted_account

def does_need_refresh(handle):
    needs_refresh = False
    org = None
    try:
        org = Profile.objects.get(handle=handle)
        org.last_sync_date > timezone.now() - timezone.timedelta(weeks=1)
    except Exception:
        needs_refresh = True

    return needs_refresh

class Command(BaseCommand):

    help = 'syncs orgs with github'

    def add_arguments(self, parser):
        parser.add_argument(
            '-force', '--force',
            action='store_true',
            dest='force_refresh',
            default=False,
            help='Force the refresh'
        )

    def handle(self, *args, **options):
        # setup
        handles = set([b.org_name for b in Bounty.objects.current()])
        for handle in handles:
            handle = handle.lower()
            print(handle)
            if is_blocked(handle)or is_deleted_account(handle):
                print('not syncing, handle is blocked')
                continue

            # does this handle need a refresh
            needs_refresh = does_need_refresh(handle) or options['force_refresh']

            if not needs_refresh:
                print('- no refresh needed')
            else:
                try:
                    sync_profile(handle)
                except Exception as e:
                    print(e)

            if not settings.DEBUG:
                time.sleep(60)


imTooSmallForActiveBlocks,
    TooManyActiveBlocksInClaim,
    ConsoleOnlyCommand,
    WorldNotFound,
    AdjustBlocksAllSuccess,
    TooMuchIpOverlap
}
/*
    GriefPrevention Server Plugin for Minecraft
    Copyright (C) 2012 Ryan Hamshire

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package me.ryanhamshire.GriefPrevention;

import org.bukkit.entity.Player;

//kicks or bans a player
//need a task for this because async threads (like the chat event handlers) can't kick or ban.
//but they CAN schedule a task to run in the main thread to do that job
class PlayerKickBanTask implements Runnable
{
	//player to kick or ban
	private Player player;

	//message to send player.
	private String reason;

	//source of ban
	private String source;

	//whether to ban
	private boolean ban;

	public PlayerKickBanTask(Player player, String reason, String source, boolean ban)
	{
		this.player = player;
		this.reason = reason;
		this.source = source;
		this.ban = ban;
	}

	@Override
	public void run()
	{
		if(this.ban)
		{
			//ban
			GriefPrevention.banPlayer(this.player, this.reason, this.source);
		}
		else if(this.player.isOnline())
		{
			this.player.kickPlayer(this.reason);
		}
	}
}
/*
 * Created on 04/12/2004
 * Created by Paul Duran
 * Copyright (C) 2004 Aelitis, All Rights Reserved.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 * AELITIS, SARL au capital de 30,000 euros
 * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
 *
 */
package com.biglybt.ui.console.commands;

import java.util.List;

import com.biglybt.core.download.DownloadManager;
import com.biglybt.ui.console.ConsoleInput;

/**
 * console command to force start a torrent.
 * extracted out of the Torrent class written by tobias
 */
public class TorrentForceStart extends TorrentCommand {
	public TorrentForceStart()
	{
		super("forcestart", null, "Force Starting");
	}
	@Override
	protected boolean performCommand(ConsoleInput ci, DownloadManager dm, List args) {
		try {
	          dm.setForceStart(true);
        } catch (Exception e) {
          e.


mejor sí puedes hacer algo por la Mano, ahora que lo pienso. Seguro que puedes ayudar a Jes\'rimon.$b$bEn el Cráter de Un\'Goro hay raptores con unas garras mortales. Algunos las tienen blancas en vez de negras como la muerte. Hay “clientes” aficionados a las armas fabricadas con estas garras. Tráeme garras blancas y te pagaré bien. Si lo haces lo bastante rápido, a lo mejor puedo hacer algo más por ti.",
    ["O"] = "Lleva 8 garras de ravasaurio blanco a Jes\'rimon a Orgrimmar.",
    ["T"] = "Armas con filo de hueso",
  },
  [4301] = {
    ["D"] = "Mientras explorabas Un\'Goro, he visto algo que a $gun poderoso cazador:una poderosa cazadora; como tú seguramente le interese. Se trata del gorila más grande de entre todos los que habitan hacia el norte. Ya has estado antes en esa cueva, aunque ahora, temo que no sobrevivas a esta empresa si aceptas la tarea.$B$BLo llamo U\'cha, y es uno de los hijos pródigos de la Madre Tierra, de eso puedes estar $gseguro:segura;. Vence a U\'cha y tráeme su piel. Hazlo y demuestra que eres $gun:una; gran $gcazador:cazadora;.",
    ["O"] = "Llévale la piel de U\'cha a Torwa Abrecaminos, que está a la entrada del Cráter de Un\'Goro.",
    ["T"] = "El poderoso U\'cha",
  },
  [4321] = {
    ["D"] = "La información que me has dado sobre las torres es muy interesante...$B$BDame un minuto para hacer algunos cálculos, $n. Vuelve a hablar conmigo en un momento y tendré respuestas para todo lo que hemos estado buscando.",
    ["O"] = "Habla en un momento con J.D. Collie.",
    ["T"] = "Entender el significado",
  },
  [4322] = {
    ["D"] = "Tenemos que salir de aquí, $N. Ayúdame a recuperar mi equipo del área de suministros y a liberar a mis amigos. Si conseguimos escapar, irás a la Vigilia de Morgan y hablarás con el alguacil Maxwell. Él te dará más instrucciones.",
    ["O"] = "Ayuda al alguacil Windsor a recuperar su equipo y a liberar a sus amigos. Vuelve junto al alguacil Maxwell si lo consigues.",
    ["T"] = "La fuga de la prisión",
  },
  [4323] = {
    ["D"] = "I want some Hyena Pelts, and only the best will do!  Get me spotted Hyena pelts and I\'ll give you phat lewtz, yo.",
    ["O"] = "Bring 7 Spotted Hyena Pelts to TESTTAUREN at Freewind Post.",
    ["T"] = "<NYI> <TXT> Get those Hyenas!!!",
  },
  [4324] = {
    ["D"] = "Aunque mi hermano pequeño Ribbly ha sido un inútil toda su vida, ¡creo que por fin tiene algún valor! Pero... podríamos necesitar tu ayuda para sacar partido a ese nuevo valor de Ribbly.$B$BMi hermana Yuka lleva semanas buscándolo y la pista lleva a Las Estepas Ardientes. Me ha pedido que contrate ayuda.$B$BBueno, ¿qué me dices? ¿Quieres ayudar? Si estás de acuerdo, habla con mi hermana. La encontrarás escondida en el Peñasco Llamarada, una cueva al noroeste de la Roca Machacamiedo.",
    ["O"] = "Habla con Yuka


/*
 ***************************************************************************
 * Ralink Tech Inc.
 * 5F., No.36 Taiyuan St., Jhubei City,
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2011, Ralink Technology, Inc.
 *
 * All rights reserved. Ralink's source code is an unpublished work and the
 * use of a copyright notice does not imply otherwise. This source code
 * contains confidential trade secret material of Ralink Tech. Any attemp
 * or participation in deciphering, decoding, reverse engineering or in any
 * way altering the source code is stricitly prohibited, unless the prior
 * written consent of Ralink Technology, Inc. is obtained.
 ***************************************************************************

	Module Name:
	dot11v_wnm.h

	Revision History:
	Who 			When			What
	--------		----------		----------------------------------------------

*/

#ifndef __DOT11V_WNM_H__
#define __DOT11V_WNM_H__

enum WNM_ACTION_FIELD {
	EVENT_REQUEST,
	EVENT_REPORT,
	DIAGNOSTIC_REQ,
	DIAGNOSTIC_REPORT,
	LOCATION_CONF_REQ,
	LOCATION_CONF_RSP,
	BSS_TRANSITION_QUERY,
	BSS_TRANSITION_REQ,
	BSS_TRANSITION_RSP,
	FMS_REQ,
	FMS_RSP,
	COLLOCATED_INTERFERENCE_REQ,
	COLLOCATED_INTERFERENCE_REPORT,
	TFS_REQ,
	TFS_RSP,
	TFS_NOTIFY,
	WNM_SLEEP_MODE_REQ,
	WNM_SLEEP_MODE_RSP,
	TIM_BROADCAST_REQ,
	TIM_BROADCAST_RSP,
	QOS_TRAFFIC_CAPABILITY_UPDATE,
	CHANNEL_USAGE_REQ,
	CHANNEL_USAGE_RSP,
	DMS_REQ,
	DMS_RSP,
	TIMING_MEASUREMENT_REQ,
	WNM_NOTIFICATION_REQ,
	WNM_NOTIFICATION_RSP,
};

typedef struct GNU_PACKED _WNM_FRAME
{
	HEADER_802_11 Hdr;
	UCHAR Category;
	union {
		struct {
			UCHAR Action;
			UCHAR DialogToken;
			UCHAR Variable[0];
		} GNU_PACKED BTM_QUERY;

		struct {
			UCHAR Action;
			UCHAR DialogToken;
			UCHAR Variable[0];
		} GNU_PACKED BTM_REQ;

		struct {
			UCHAR Action;
			UCHAR DialogToken;
			UCHAR Variable[0];
		} GNU_PACKED BTM_RSP;

		struct {
			UCHAR Action;
			UCHAR DialogToken;
			UCHAR Type;
			UCHAR Variable[0];
		} GNU_PACKED WNM_NOTIFY_REQ;

		struct {
			UCHAR Action;
			UCHAR DialogToken;
			UCHAR RespStatus;
			UCHAR Variable[0];
		} GNU_PACKED WNM_NOTIFY_RSP;
	}u;
} WNM_FRAME, *PWNM_FRAME;

void PeerWNMAction(IN PRTMP_ADAPTER pAd,
				   IN MLME_QUEUE_ELEM *Elem);

#endif /* __DOT11V_WNM_H__ */


from tensorflow.keras import backend as K
from sklearn.metrics import jaccard_score,confusion_matrix

def IoU_coef(y_true, y_pred):
    y_true_f = K.flatten(y_true)
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (intersection + 1.0) / (K.sum(y_true_f) + K.sum(y_pred_f) - intersection + 1.0)

def IoU_loss(y_true, y_pred):
    return -IoU_coef(y_true, y_pred)

def dice_coef(y_true, y_pred):
    y_true_f = K.flatten(y_true)
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (2.0 * intersection + 1.0) / (K.sum(y_true_f) + K.sum(y_pred_f) + 1.0)

def dice_coef_loss(y_true, y_pred):
    return -dice_coef(y_true, y_pred)

def accuracy(y_true, y_pred):
    cm = confusion_matrix(y_true.flatten(),y_pred.flatten(), labels=[0, 1])
    acc = (cm[0,0]+cm[1,1])/(cm[0,0]+cm[0,1]+cm[1,0]+cm[1,1])
    return acc

def IoU(y_true, y_pred, labels = [0, 1]):
   IoU = []
   for label in labels:
      jaccard = jaccard_score(y_pred.flatten(),y_true.flatten(), pos_label=label, average='weighted')
      IoU.append(jaccard)
   return np.mean(IoU)


Signal: ${getter()}]`;
  }
  const node = getter[SIGNAL];
  const upgradedGetter = getter;
  upgradedGetter.set = (newValue) => linkedSignalSetFn(node, newValue);
  upgradedGetter.update = (updateFn) => linkedSignalUpdateFn(node, updateFn);
  upgradedGetter.asReadonly = signalAsReadonlyFn.bind(getter);
  return upgradedGetter;
}
function untracked(nonReactiveReadsFn) {
  const prevConsumer = setActiveConsumer(null);
  try {
    return nonReactiveReadsFn();
  } finally {
    setActiveConsumer(prevConsumer);
  }
}
var ViewContext = class {
  view;
  node;
  constructor(view, node) {
    this.view = view;
    this.node = node;
  }
  /**
   * @internal
   * @nocollapse
   */
  static __NG_ELEMENT_ID__ = injectViewContext;
};
function injectViewContext() {
  return new ViewContext(getLView(), getCurrentTNode());
}
var USE_MICROTASK_EFFECT_BY_DEFAULT = false;
var MicrotaskEffectScheduler = class _MicrotaskEffectScheduler extends ZoneAwareEffectScheduler {
  pendingTasks = inject(PendingTasksInternal);
  taskId = null;
  schedule(effect2) {
    super.schedule(effect2);
    if (this.taskId === null) {
      this.taskId = this.pendingTasks.add();
      queueMicrotask(() => this.flush());
    }
  }
  flush() {
    try {
      super.flush();
    } finally {
      if (this.taskId !== null) {
        this.pendingTasks.remove(this.taskId);
        this.taskId = null;
      }
    }
  }
  /** @nocollapse */
  static ɵprov = (
    /** @pureOrBreakMyCode */
    ɵɵdefineInjectable({
      token: _MicrotaskEffectScheduler,
      providedIn: "root",
      factory: () => new _MicrotaskEffectScheduler()
    })
  );
};
var EffectHandle = class {
  scheduler;
  effectFn;
  zone;
  injector;
  unregisterOnDestroy;
  watcher;
  constructor(scheduler, effectFn, zone, destroyRef, injector, allowSignalWrites) {
    this.scheduler = scheduler;
    this.effectFn = effectFn;
    this.zone = zone;
    this.injector = injector;
    this.watcher = createWatch((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
    this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
  }
  runEffect(onCleanup) {
    try {
      this.effectFn(onCleanup);
    } catch (err) {
      const errorHandler = this.injector.get(ErrorHandler, null, {
        optional: true
      });
      errorHandler?.handleError(err);
    }
  }
  run() {
    this.watcher.run();
  }
  schedule() {
    this.scheduler.schedule(this);
  }
  destroy() {
    this.watcher.destroy();
    this.unregisterOnDestroy?.();
  }
};
function effect$1() {
}
function microtaskEffect(effectFn, options) {
  performanceMarkFeature("NgSignals");
  ngDevMode && assertNotInReactiveContext(effect$1, "Call `effect` outside of a reactive context. For example, schedule the effect inside the component constructor.");
  !options?.injector && assertInInjectionContext(effect$1);
  const injector = options?.injector ?? inject(Injector);
  const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
  const handle = new EffectHandle(injector.get(MicrotaskEffectScheduler), effectFn


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
美股特殊日期获取工具
用于获取美联储议息日、ETF分红日、美股节日等特殊日期
"""

import pandas as pd
import numpy as np
from datetime import datetime, date, timedelta
import yfinance as yf
import requests
from typing import List, Dict, Optional, Set
import warnings
warnings.filterwarnings('ignore')

class USSpecialDates:
    """美股特殊日期获取类"""

    def __init__(self):
        """初始化"""
        self.fomc_dates = set()
        self.dividend_dates = {}
        self.market_holidays = set()

    def get_fomc_dates(self, start_year: int = 2020, end_year: int = 2025) -> Set[date]:
        """
        获取美联储FOMC会议日期

        参数:
            start_year: 开始年份
            end_year: 结束年份

        返回:
            FOMC会议日期集合
        """
        # 历史已知的FOMC会议日期（手动维护）
        fomc_dates_dict = {
            2020: [
                "2020-01-29", "2020-03-03", "2020-03-15", "2020-04-29",
                "2020-06-10", "2020-07-29", "2020-09-16", "2020-11-05", "2020-12-16"
            ],
            2021: [
                "2021-01-27", "2021-03-17", "2021-04-28", "2021-06-16",
                "2021-07-28", "2021-09-22", "2021-11-03", "2021-12-15"
            ],
            2022: [
                "2022-01-26", "2022-03-16", "2022-05-04", "2022-06-15",
                "2022-07-27", "2022-09-21", "2022-11-02", "2022-12-14"
            ],
            2023: [
                "2023-02-01", "2023-03-22", "2023-05-03", "2023-06-14",
                "2023-07-26", "2023-09-20", "2023-11-01", "2023-12-13"
            ],
            2024: [
                "2024-01-31", "2024-03-20", "2024-05-01", "2024-06-12",
                "2024-07-31", "2024-09-18", "2024-11-07", "2024-12-18"
            ],
            2025: [
                "2025-01-29", "2025-03-19", "2025-04-30", "2025-06-11",
                "2025-07-30", "2025-09-17", "2025-11-05", "2025-12-17"
            ]
        }

        fomc_dates = set()
        for year in range(start_year, end_year + 1):
            if year in fomc_dates_dict:
                for date_str in fomc_dates_dict[year]:
                    fomc_dates.add(datetime.strptime(date_str, "%Y-%m-%d").date())

        self.fomc_dates = fomc_dates
        print(f"获取到 {len(fomc_dates)} 个FOMC会议日期 ({start_year}-{end_year})")
        return fomc_dates

    def get_dividend_dates(self, symbol: str, start_date: date, end_date: date) -> Dict[date, float]:
        """
        获取ETF分红日期

        参数:
            symbol: 股票代码（如'QQQ'）
            start_date: 开始日期
            end_date: 结束日期

        返回:
            分红日期字典 {日期: 分红金额}
        """
        try:
            ticker = yf.Ticker(symbol)

            # 获取分红历史
            dividends = ticker.dividends

            if dividends.empty:
                print(f"未找到 {symbol} 的分红记录")
                return {}

            # 过滤日期范围
            dividends = dividends[(dividends.index.date >= start_date) &
                                (dividends.index.date <= end_date)]

            # 转换为字典
            dividend_dict = {}
            for div_date, div_amount in dividends.items():
                dividend_dict[div_date.date()] = float(div_amount)

            self.dividend_dates[symbol] = dividend_dict
            print(f"获取到 {symbol} 的 {len(dividend_dict)} 个分红日期")
            return dividend_dict

        except Exception as e:
            print(f"获取 {symbol} 分红数据时出错: {e}")
            return {}

    def get_us_market_holidays(self, start_year: int = 2020, end_year: int = 2025) -> Set[date]:
        """
        获取美股市场节日

        参数:
            start_year: 开始年份
            end_year: 结束年份

        返回:
            节日日期集合
        """
        holidays = set()

        # 美股主要节日（固定日期和相对日期）
        for year in range(start_year, end_year + 1):
            # 新年
            holidays.add(date(year, 1, 1))

            # 马丁·路德·金日（1月第三个星期一）
            mlk_day = self._get_nth_weekday(year, 1, 0, 3)  # 第三个星期一
            holidays.add(mlk_day)

            # 总统日（2月第三个星期一）
            presidents_day = self._get_nth_weekday(year, 2, 0, 3)
            holidays.add(presidents_day)

            # 阵亡将士纪念日（5月最后一个星期一）
            memorial_day = self._get_last_weekday(year, 5, 0)
            holidays.add(memorial_day)

            # 独立日
            independence_day = date(yea


cb6-11">  roles:
    - linux-system-roles.timesync

rpm-ostree

See README-ostree.md

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<TITLE
>Input/Output</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Video for Linux Two API Specification"
HREF="book1.htm"><LINK
REL="PREVIOUS"
TITLE="Reserved Format Identifiers"
HREF="x5665.htm"><LINK
REL="NEXT"
TITLE="Streaming I/O (Memory Mapping)"
HREF="x5791.htm">

Video for Linux Two API Specification: Revision 0.24

Prev		Next

Chapter 3. Input/Output

Table of Contents

3.1. Read/Write

3.2. Streaming I/O (Memory Mapping)

3.3. Streaming I/O (User Pointers)

3.4. Asynchronous I/O

3.5. Buffers

3.6. Field Order

The V4L2 API defines several different methods to read from or
write to a device. All drivers exchanging data with applications must
support at least one of them.

The classic I/O method using the read()
and write() function is automatically selected
after opening a V4L2 device. When the driver does not support this
method attempts to read or write will fail at any time.

Other methods must be negotiated. To select the streaming I/O
method with memory mapped or user buffers applications call the
VIDIOC_REQBUFS ioctl. The asynchronous I/O method is not defined
yet.

Video overlay can be con


->ClearList			();
}
//---------------------------------------------------------------------------

#include "stdafx.h"
#pragma hdrstop

#include "ESceneSectorTools.h"
#include "ESceneSectorControls.h"
#include "ui_leveltools.h"
#include "FrameSector.h"
#include "SceneObject.h"
#include "GroupObject.h"
#include "sector.h"

/* TODO 1 -oAlexMX -cTODO: Create tools as AI Map */

void ESceneSectorTool::CreateControls()
{
//	inherited::CreateControls();
    AddControl		(xr_new<TUI_ControlSectorSelect>(estDefault,etaSelect,	this));
    AddControl		(xr_new<TUI_ControlSectorAdd>	(estDefault,etaAdd,		this));
	// frame
    pFrame 			= xr_new<TfraSector>((TComponent*)0);
}
//----------------------------------------------------

void ESceneSectorTool::RemoveControls()
{
	inherited::RemoveControls();
}
//----------------------------------------------------
void ESceneSectorTool::_OnObjectRemove(CSceneObject* obj)
{
    if (obj && !m_Objects.empty())
    {
        EditMeshVec* meshes 		= obj->Meshes();
        for (EditMeshIt m_it= meshes->begin(); m_it!=meshes->end(); ++m_it)
        {
            for(ObjectIt _F=m_Objects.begin();_F!=m_Objects.end();++_F)
            {
                CSector* sector 	= dynamic_cast<CSector*>(*_F);
                VERIFY				(sector);
                if (sector->DelMesh(obj, *m_it))
                    break;
            }
        }
    }
}

void ESceneSectorTool::OnObjectRemove(CCustomObject* O, bool bDeleting)
{
	inherited::OnObjectRemove(O, bDeleting);

    if(bDeleting)
    {
        CSceneObject* obj = dynamic_cast<CSceneObject*>(O);
        if(!obj)
        {   /*
			CGroupObject* go = dynamic_cast<CGroupObject*>(O);
            if(go && !go->IsOpened())
            {
            	ObjectList 					lst;
                go->GetObjects				(lst);

                ObjectList::iterator it 	= lst.begin();
                ObjectList::iterator it_e 	= lst.end();
                for(; it!=it_e; ++it)
                {
        			CSceneObject* obj2 	= dynamic_cast<CSceneObject*>(*it);
					_OnObjectRemove(obj2);
                }
            } */
        }else
        	_OnObjectRemove(obj);

    }
}

void ESceneSectorTool::OnBeforeObjectChange(CCustomObject* O)
{
	inherited::OnBeforeObjectChange(O);

    CSceneObject* obj = dynamic_cast<CSceneObject*>(O);
    if (obj&&!m_Objects.empty()){
	    EditMeshVec* meshes = obj->Meshes();
        for (EditMeshIt m_it= meshes->begin(); m_it!=meshes->end(); m_it++){
	        for(ObjectIt _F=m_Objects.begin();_F!=m_Objects.end();_F++){
    	        CSector* sector = dynamic_cast<CSector*>(*_F); VERIFY(sector);
                if (sector->DelMesh(obj, *m_it)) break;
            }
        }
	}
}

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

void ESceneSectorTool::FillProp(LPCSTR pref, PropItemVec& items)
{
	PHelper().CreateFlag32(items, PrepareKey(pref,"Common\\Draw Solid"),&m_Flags,			flDrawSolid);
	inherited::FillProp	(pref, items);
}
//----------------------------------


r/> | Windows 2000 Professional \[desktop apps only\]
                              |
| Minimum supported server
 | Windows 2000 Server \[desktop apps only\]
                                    |
| Header
                   |

Shobjidl.h

   |
| IDL
                      |

Shobjidl.idl

 |

---
description: Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.
external help file: Microsoft.FailoverClusters.PowerShell.dll-Help.xml
Module Name: FailoverClusters
ms.date: 12/20/2016
online version: https://learn.microsoft.com/powershell/module/failoverclusters/add-clustervmmonitoreditem?view=windowsserver2019-ps&wt.mc_id=ps-gethelp
schema: 2.0.0
title: Add-ClusterVMMonitoredItem
---

# Add-ClusterVMMonitoredItem

## SYNOPSIS
Configures monitoring for a service or an Event Tracing for Windows (ETW) event so that it is monitored on a virtual machine.

## SYNTAX

### VirtualMachine (Default)
```
Add-ClusterVMMonitoredItem [-Service <StringCollection>] [-EventLog <String>] [-EventSource <String>]
 [-EventId <Int32>] [-OverrideServiceRecoveryActions] [[-VirtualMachine] <String>] [-Wait <Int32>]
 [-Cluster <String>] [<CommonParameters>]
```

### VMId
```
Add-ClusterVMMonitoredItem [-Service <StringCollection>] [-EventLog <String>] [-EventSource <String>]
 [-EventId <Int32>] [-OverrideServiceRecoveryActions] [-VMId <Guid>] [-Wait <Int32>] [-Cluster <String>]
 [<CommonParameters>]
```

### InputObject
```
Add-ClusterVMMonitoredItem [-Service <StringCollection>] [-EventLog <String>] [-EventSource <String>]
 [-EventId <Int32>] [-OverrideServiceRecoveryActions] [-Wait <Int32>] [-InputObject <PSObject>]
 [-Cluster <String>] [<CommonParameters>]
```

## DESCRIPTION
The **Add-ClusterVMMonitoredItem** cmdlet configures monitoring for a service or an Event Tracing for Windows (ETW) event so that it is monitored on a virtual machine.
If the service fails or the event occurs, then the system responds by taking an action based on the failover configuration for the virtual machine resource.
For example, the configuration might specify that the virtual machine be restarted.

## EXAMPLES

### Example 1
```
PS C:\> Add-ClusterVMMonitoredItem -VirtualMachine test-VM11 -EventLog "Microsoft-Windows-FailoverClustering-Manager/Admin" -EventSource "Microsoft-Windows-FailoverClustering-Manager" -EventId 4708
Name
----
Microsoft-Windows-FailoverClustering-Manager+Admin,Microsoft-Windows-FailoverClustering-Manager,4708
```

This example adds monitoring for the ETW event ID 4708.

### Example 2
```
PS C:\> Add-ClusterVMMonitoredItem -VirtualMachine test-VM11 -Service spooler
Name
----
Spooler
```

This example configures monitoring for the print spooler service.

## PARAMETERS

### -Cluster
Specifies the name of the cluster on which to run this cmdlet.
If the input for this parameter is `.` or it is omitted, then the cmdlet runs on the local cluster.

```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -EventId
Specifies the event identifier (ID) of the event to be monitored.

```yaml
Type: Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```


 Folder in which the action occurred
   * @return folder
  **/
  @Schema(example = "Folder", description = "Folder in which the action occurred")
  public String getFolder() {
    return folder;
  }

  public void setFolder(String folder) {
    this.folder = folder;
  }

  public HistoryExportResultEntity src(String src) {
    this.src = src;
    return this;
  }

   /**
   * File move originated from this path
   * @return src
  **/
  @Schema(example = "SrcFolder", description = "File move originated from this path")
  public String getSrc() {
    return src;
  }

  public void setSrc(String src) {
    this.src = src;
  }

  public HistoryExportResultEntity destination(String destination) {
    this.destination = destination;
    return this;
  }

   /**
   * File moved to this destination folder
   * @return destination
  **/
  @Schema(example = "DestFolder", description = "File moved to this destination folder")
  public String getDestination() {
    return destination;
  }

  public void setDestination(String destination) {
    this.destination = destination;
  }

  public HistoryExportResultEntity ip(String ip) {
    this.ip = ip;
    return this;
  }

   /**
   * Client IP that performed the action
   * @return ip
  **/
  @Schema(example = "127.0.0.1", description = "Client IP that performed the action")
  public String getIp() {
    return ip;
  }

  public void setIp(String ip) {
    this.ip = ip;
  }

  public HistoryExportResultEntity username(String username) {
    this.username = username;
    return this;
  }

   /**
   * Username of the user that performed the action
   * @return username
  **/
  @Schema(example = "jerry", description = "Username of the user that performed the action")
  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public HistoryExportResultEntity action(String action) {
    this.action = action;
    return this;
  }

   /**
   * What action was taken. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`
   * @return action
  **/
  @Schema(example = "read", description = "What action was taken. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`")
  public String getAction() {
    return action;
  }

  public void setAction(String action) {
    this.action = action;
  }

  public HistoryExportResultEntity failureType(String failureType) {
    this


sighing,"
										+ " [npc.speech(Hi, [npc.pcName]. "
											+(father==null || father.equals(getSlave())
												?"I ended up getting pregnant"
												:father.getName("A")+" got me pregnant")
											+", so I'm going to take it easy for a while. Get one of the other slaves to cover for me, ok?)]");
								break;
							case NEUTRAL:
								sb.append(" sighing,"
										+ " [npc.speech(Hi, [npc.pcName]. "
											+(father==null || father.equals(getSlave())
												?"I ended up getting pregnant"
												:father.getName("A")+" got me pregnant")
											+", so I'm going to need to take it easy for a while, ok?)]");
								break;
							case OBEDIENT:
								sb.append(" obediently informing you of what happened,"
										+ " [npc.speech(Hello, [npc.pcName]. "
											+(father==null || father.equals(getSlave())
												?"I ended up getting pregnant"
												:father.getName("A")+" got me pregnant")
											+", but I won't let it get in the way of my duties!)]");
								break;
						}
						sb.append("
");
						sb.append(
								"
"
									+ "You [pc.step] up to your slave and run your [pc.hands] over [npc.her] pregnant belly."
									+ " Smiling reassuringly at the [npc.race], you tell [npc.herHim] that Lilaya will be able to help [npc.herHim] give birth once the time is right."
								+ "
"
								+ "
"
									+ "[npc.Name] acknowledges this with a nod, and so after you've stroked and caressed [npc.her] belly for a little while longer, you [pc.step] back and wonder what to do next..."
								+ "
");
					}

				} else {
					sb.append(
							"
"
								+ "As you look at the [npc.race], you see that [npc.sheIs] still sporting a round belly, and [npc.she] absent-mindedly strokes [npc.her] pregnant bump as [npc.she] returns your gaze,");
					switch(AffectionLevelBasic.getAffectionLevelFromValue(getSlave().getAffection(Main.game.getPlayer()))) {
						case DISLIKE:
							switch(ObedienceLevelBasic.getObedienceLevelFromValue(getSlave().getObedienceValue())) {
								case DISOBEDIENT:
									sb.append(" not bothering to even to try and conceal the look of hatred in [npc.her] [npc.eyes] as [npc.she] spits,"
											+ "[npc.speech(Eugh, it's you. What the hell do you want now?!)]");
									break;
								case NEUTRAL:
									sb.append(" trying to conceal the look of hatred in [npc.her] [npc.eyes] as [npc.she] remarks,"
											+ "[npc.speech(Oh, hello, [npc.pcName]. What is it that you want?)]");
									break;
								case OBEDIENT:
									sb.append(" obediently doing [npc.her] very best to conceal the look of hatred in [npc.her] [npc.eyes] as [npc.she] calls out,"
											+ " [npc.speech(Hello, [npc.pcName]. What can I do for you?)]");
									break;
							}
							break;
						case NEUTRAL:
							switch(ObedienceLevelBasic.getObedienceLevelFromValue(getSlave().getObedienceValue())) {
								case DISOBEDIENT:
									sb.append(" sighing,"
											+ " [npc.speech(Hi, [npc.pcName]. I'm taking it easy, what with the pregnancy and all, ok?)]");
									break;
								case NEUTRAL:
									sb.append(" sighing,"


#ifndef __LINUX__AIO_H
#define __LINUX__AIO_H

#include <linux/list.h>
#include <linux/workqueue.h>
#include <linux/aio_abi.h>

#include <asm/atomic.h>

#define AIO_MAXSEGS		4
#define AIO_KIOGRP_NR_ATOMIC	8

struct kioctx;

/* Notes on cancelling a kiocb:
 *	If a kiocb is cancelled, aio_complete may return 0 to indicate
 *	that cancel has not yet disposed of the kiocb.  All cancel
 *	operations *must* call aio_put_req to dispose of the kiocb
 *	to guard against races with the completion code.
 */
#define KIOCB_C_CANCELLED	0x01
#define KIOCB_C_COMPLETE	0x02

#define KIOCB_SYNC_KEY		(~0U)

/* ki_flags bits */
#define KIF_LOCKED		0
#define KIF_KICKED		1
#define KIF_CANCELLED		2

#define kiocbTryLock(iocb)	test_and_set_bit(KIF_LOCKED, &(iocb)->ki_flags)
#define kiocbTryKick(iocb)	test_and_set_bit(KIF_KICKED, &(iocb)->ki_flags)

#define kiocbSetLocked(iocb)	set_bit(KIF_LOCKED, &(iocb)->ki_flags)
#define kiocbSetKicked(iocb)	set_bit(KIF_KICKED, &(iocb)->ki_flags)
#define kiocbSetCancelled(iocb)	set_bit(KIF_CANCELLED, &(iocb)->ki_flags)

#define kiocbClearLocked(iocb)	clear_bit(KIF_LOCKED, &(iocb)->ki_flags)
#define kiocbClearKicked(iocb)	clear_bit(KIF_KICKED, &(iocb)->ki_flags)
#define kiocbClearCancelled(iocb)	clear_bit(KIF_CANCELLED, &(iocb)->ki_flags)

#define kiocbIsLocked(iocb)	test_bit(KIF_LOCKED, &(iocb)->ki_flags)
#define kiocbIsKicked(iocb)	test_bit(KIF_KICKED, &(iocb)->ki_flags)
#define kiocbIsCancelled(iocb)	test_bit(KIF_CANCELLED, &(iocb)->ki_flags)
/**
 * ͬ첽Io״̬
 */
struct kiocb {
	/**
	 * Ҫ²IOָ롣
	 */
	struct list_head	ki_run_list;
	/**
	 * ־
	 */
	long			ki_flags;
	/**
	 * ü
	 */
	int			ki_users;
	/**
	 * 첽IOʶͬIOʶΪ0xffffffff
	 */
	unsigned		ki_key;		/* id of this request */

	/**
	 * IOصļָ
	 */
	struct file		*ki_filp;
	/**
	 * 첽IOָ
	 */
	struct kioctx		*ki_ctx;	/* may be NULL for sync ops */
	/**
	 * ȡ첽IoʱĻص
	 */
	int			(*ki_cancel)(struct kiocb *, struct io_event *);
	/**
	 * 첽IOʱĻص
	 */
	ssize_t			(*ki_retry)(struct kiocb *);
	/**
	 * kiocbʱĻص
	 */
	void			(*ki_dtor)(struct kiocb *);

	/**
	 * 첽£ǰеIOָ롣
	 */
	struct list_head	ki_list;	/* the aio core uses this
						 * for cancellation */

	/**
	 * ָּͬ򷢳òĽָ롣
	 * 첽ָû̬ݽṹiocbָ롣
	 */
	union {
		void __user		*user;
		struct task_struct	*tsk;
	} ki_obj;
	/**
	 * û̷̬صֵ
	 */
	__u64			ki_user_data;	/* user's data for completion */
	/**
	 * ڽIOĵǰļλá
	 */
	loff_t			ki_pos;
	/* State that we remember to be able to restart/retry  */
	/**
	 * :read,write,sync
	 */
	unsigned short		ki_opcode;
	/**
	 * ֽ
	 */
	size_t			ki_nbytes; 	/* copy of iocb->aio_nbytes */
	/**
	 * û̬ĵǰλá
	 */
	char 			__user *ki_buf;	/* remaining iocb->aio_buf */
	/**
	 * ֽ
	 */
	size_t			ki_left; 	/* remaining bytes */
	/**
	 * 첽IOȴС
	 */
	wait_queue_t		ki_wait;
	long			ki_retried; 	/* just for testing */
	long			ki_kicked; 	/* just for testing */
	long			ki_queued; 	/* just for testing */

	/**
	 * ļϵͳʹá
	 */
	void			*private;
};

/**
 * ļдƿǷΪͬд
 * ǣôʹ첽д(aio_read)УҲȴдɡ
 */
#define is_sync_kiocb(iocb)	((iocb)->ki_key == KIOCB_SYNC_KEY)
#define init_sync_kiocb(x, filp)			\
	do {						\
		struct task_struct *tsk = current;	\
		(x)->ki_flags = 0;			\
		(x)->ki_users = 1;			\
		(x)->ki_key = KIOCB_SYNC_KEY;		\
		(x)->ki_filp = (filp);			\
		(x)->ki_ctx = &tsk->active_mm->default_kioctx;	\
		(x)->ki_cancel = NULL;			\
		(x)->ki_dtor = NULL;			\
		(x)->ki_obj.tsk = tsk;			\
		(x)->ki_user_data = 0;                  \
		init_wait((&(x)->ki_wait));             \
	} while (0)

#define AIO_RING_MAGIC			0xa10a10a1
#define AIO_RING_COMPAT_FEATURES	1
#define AIO_RING_INCOMPAT_FEATURES	0
struct aio_ring {
	unsigned	id;	/* kernel internal index number */
	unsigned	nr;	/* number of io_events */
	unsigned	head;
	unsigned	tail;

	unsigned	magic;
	unsigned	compat_features;
	unsigned	incompat_features;
	unsigned	header_length;	/* size of aio_ring */

	struct io_event		io_events[0];
}; /* 128 bytes + ring size */

#define aio_ring_avail(info, ring)	(((ring)->head + (info)->nr - 1 - (ring)->tail) % (info)->nr)

#define AIO_RING_PAGES	8
struct aio_ring_info {
	unsigned long		mmap_base;
	unsigned long		mmap_size;

	struct page		**ring_pages;
	spinlock_t		ring_lock;
	long			nr_pages;

	unsigned		nr, tail;

	struct page		*internal_pages[AIO_RING_PAGES];
};

struct kioctx {
	atomic_t		users;
	int			dead;
	struct mm_struct	*mm;

	/* This needs improving */
	unsigned long		user_id;
	struct kioctx		*next;

	wait_queue_head_t	wait;

	spinlock_t		ctx_lock;

	int			reqs_active;
	struct list_head	active_reqs;	/* used for cancellat


description LIKE :search', { search: `%${search}%` })
      // LIKE is smilar to equal but it supports partial values
      //% support for partial input values
    }
    try {
      let tasks = await query.getMany();
      return tasks;
    }
    catch (e) {
      this.logger.error('Failed to get tasks',e.stack)
      throw new InternalServerErrorException(e.message)
    }

  }

  async getTaskById(id: number, tokenUser?: any): Promise<TaskEntity> {
    let task = await this.taskRepository.findOne({ where: { id, userId: tokenUser.id } });
    if (!task) {
      throw new NotFoundException(`Task with ID ${id} not found`)
    }
    return task;
  }

  async createTask(dto: CreateTaskDto, tokenUser: User): Promise<TaskEntity> {
    const { name, description } = dto; //es6 syntax
    let task = await this.taskRepository.create(Object.assign({}, dto, { user: tokenUser }))
    console.log("Tastk Created _____", task);
    return task.save();
  }

  async updateTaskStatus(id: number, dto, tokenUser) {
    console.log(id, dto);

    let task = await this.getTaskById(id, tokenUser);
    let updatedTask = await this.taskRepository.update(id, { status: dto })
    return updatedTask;
  }

  async deleteTaskById(id: number, tokenUser) {
    const found = await this.getTaskById(id, tokenUser);
    let task = await this.taskRepository.delete({ id: id.toString() });
    return task;
  }

  // private tasks: Task[] = [];

  // getAllTasks(): Task[] {
  //   return this.tasks;
  // }

  // getTaskWithFilters(dto: GetTasksWithFilter): Task[] {
  //   let tasks = this.tasks;
  //   console.log(dto, "dto");

  //   const { status, name, search } = dto
  //   console.log(status);
  //   console.log(name);
  //   console.log(search);

  //   if (status) {
  //     tasks = tasks.filter((task) =>
  //       task.status == dto.status
  //     )
  //   }
  //   if (name) {
  //     console.log("inside servcei");

  //     tasks = tasks.filter((task) =>
  //       task.name == dto.name
  //     )
  //     console.log("tasks ===", tasks);

  //   }
  //   if (search) {
  //     tasks = tasks.filter((task) =>
  //       task.name.includes(search)
  //       // task.status.includes(search) ||
  //       // task.description.includes(search)
  //     )
  //   }
  //   return tasks;

  // }

  // getTaskById(id: string): Task {
  //   let task = this.tasks.find((task) => task.id == id);
  //   if (!task) {
  //     throw new NotFoundException(`Task with ID ${id} not found`)
  //   }
  //   return task;
  // }

  // deleteTaskById(id: string) {
  //   const found = this.getTaskById(id);
  //   this.tasks = this.tasks.filter((task) => task.id !== found.id)
  //   return this.tasks;
  // }

  // createTask(dto: CreateTaskDto): Task {
  //   const { name, description } = dto; //es6 syntax

  //   let task: Task = {
  //     id: uuid.v4(),
  //     name,
  //     description,
  //     status: TaskStatus.OPEN
  //   }
  //   this.ta


extended by ">jjil.core.PipelineStage
      jjil.algorithm.RgbSelect2Gray

public class RgbSelect2Gray
extends PipelineStage

 Transforms a RgbImage into a Gray8Image by selecting one of the three
 bands. The pixel value chosen is adjusted from the range 0->255 to the
 range -128->127.

    Usage:

        RgbImage imageRgb = ...;

        RgbSelect2Gray rgb = new RgbSelect2Gray(RgbSelect2Gray.RED);

        rgb.push(imageRgb);

Author:

webb

Nested Class Summary

static class
RgbSelect2Gray.ColorClass

          Used to represent the three colors red, green, or blue.

Field Summary

static RgbSelect2Gray.ColorClass
BLUE

          The class represents the color blue.

static RgbSelect2Gray.ColorClass
GREEN

      &


{
  margin-right: 0; }

.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(7n+0) {
  margin-right: 6px; }

.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(8n+0) {
  margin-right: 0; }

.colorpicker-horizontal .colorpicker-swatch:nth-of-type(6n+0) {
  margin-right: 0; }

.colorpicker-horizontal .colorpicker-swatch:nth-of-type(7n+0) {
  margin-right: 6px; }

.colorpicker-horizontal .colorpicker-swatch:nth-of-type(8n+0) {
  margin-right: 6px; }

.colorpicker-swatch:last-of-type:after {
  content: "";
  display: table;
  clear: both; }

*[dir='rtl'] .colorpicker-element input,
.colorpicker-element[dir='rtl'] input,
.colorpicker-element input[dir='rtl'] {
  direction: ltr;
  text-align: right; }

/*# sourceMappingURL=bootstrap-colorpicker.css.map */
/*!
 * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}.flag-icon-background {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
}
.flag-icon {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
  position: relative;
  display: inline-block;
  width: 1.33333333em;
  line-height: 1em;
}
.flag-icon:before {
  content: '\00a0';
}
.flag-icon.flag-icon-squared {
  width: 1em;
}
.flag-icon-ad {
  background-image: url(../flags/4x3/ad.svg);
}
.flag-icon-ad.flag-icon-squared {
  background-image: url(../flags/1x1/ad.svg);
}
.flag-icon-ae {
  background-image: url(../flags/4x3/ae.svg);
}
.flag-icon-ae.flag-icon-squared {
  background-image: url(../flags/1x1/ae.svg);
}
.flag-icon-af {
  background-image: url(../flags/4x3/af.svg);
}
.flag-icon-af.flag-icon-squared {
  background-image: url(../flags/1x1/af.svg);
}
.flag-icon-ag {
  background-image: url(../flags/4x3/ag.svg);
}
.flag-icon-ag.flag-icon-squared {
  background-image: url(../flags/1x1/ag.svg);
}
.flag-icon-ai {
  background-image: url(../flags/4x3/ai.svg);
}
.flag-icon-ai.flag-icon-squared {
  background-image: url(../flags/1x1/ai.svg);


2/characters/version_1_1.rs<gh_stars>1-10
use crate::sim2::state::State;
use crate::sim2::timeline::{ActionState, Timeline};
use crate::sim2::attack::{Attack, CharacterAttack, AtkQueue};
use crate::sim2::types::{CharacterAction, DamageType, Vision, FieldCharacterIndex, WeaponType, FieldEnergy, Particle, VecFieldEnergy, ToNaAction};
use crate::sim2::element::{ElementalGauge, PHYSICAL_GAUGE, PYRO_GAUGE1A, PYRO_GAUGE2B, HYDRO_GAUGE1A, HYDRO_GAUGE2B, ELECTRO_GAUGE1A, ELECTRO_GAUGE2B, CRYO_GAUGE1A, CRYO_GAUGE2B, ANEMO_GAUGE1A, ANEMO_GAUGE2B, GEO_GAUGE1A, GEO_GAUGE2B, GEO_GAUGE4C, DENDRO_GAUGE1A, DENDRO_GAUGE2B};
use crate::sim2::record::{CharacterRecord, CharacterData, Enemy};

use WeaponType::*;
use Vision::*;

// version 1.1

// Extends Riptide duration by 8s.

// When Tartaglia is in Foul Legacy: Raging Tide's Melee stance, on dealing a
// CRIT hit, Normal and Charged Attacks apply the Riptide status effects to
// opponents.
#[derive(Debug)]
pub struct Tartaglia {
    riptide: f32,
}

impl Tartaglia {
    pub fn record() -> CharacterRecord {
        CharacterRecord::default()
            .name("Tartaglia").vision(Hydro).weapon(Bow).version(1.1)
            .base_hp(13103.0).base_atk(301.0).base_def(815.0)
            .hydro_dmg(28.8)
            .energy_cost(60.)
    }

    pub fn new() -> Self {
        Self {
            riptide: -99.,
        }
    }

    fn riptide_attack(&mut self, time: f32, event: &CharacterAction, data: &CharacterData, atk_queue: &mut Vec<Attack>, state: &mut State, enemy: &mut Enemy) -> () {
        // riptide deals damage if on field
        if data.idx.0 == 0 && time - self.riptide >= 1.5 {
            atk_queue.add_skill(119.0, &HYDRO_GAUGE1A, time, event, data, state);
            self.riptide = time;
        }
    }
}

impl Timeline for Tartaglia {
    // perform an action
    fn decide_action(&mut self, state: &ActionState, data: &mut CharacterData) -> CharacterAction {
        // check if skill can be used
        if state.rel_time.press >= 30. {
            CharacterAction::PressSkill
        // is burst CD off and has enough energy
        } else if state.rel_time.burst >= 15. && state.energy >= 60. {
            CharacterAction::Burst
        // check if normal attacks can be used (both animations are ended)
        } else if state.rel_time.na >= 0.4025 {
            // 6 attacks in 2.415 seconds
            data.na_idx.to_na(6, state.na_carryover(0.4025))
        } else if data.idx.is_on_field() && state.rel_time.ca >= 10. {
            CharacterAction::Ca(state.ca_carryover(10.))
        } else {
            CharacterAction::StandStill
        }
    }

    // generate energy and modify acceleration states according to the event
    fn accelerate(&mut self, field_energy: &mut Vec<FieldEnergy>, event: &CharacterAction, state: &mut ActionState, data: &CharacterData) -> () {
        match event {
            CharacterAction::PressSkill => field_energy.push_p(Particle::new(data.character.vision, 10.)),
            _ => (),
        }
    }
}

impl CharacterAttack for Tartaglia {
    fn burst(&mut self, time: f32, event: &CharacterAction, data: &CharacterData, atk_queue: &mut Vec<Attack>, state:


cateTrusted(targetContext, getTestCert()))

        openSection(pref_servers, pref_server_summary, pref_forget_known_hosts)
        onView(withText(pref_forget_known_hosts)).doClick()
        onView(withText(pref_forget_known_hosts_question)).checkWillBeDisplayed()
        onView(withText(title_forget)).doClick()
        onView(withText(msg_done)).checkWillBeDisplayed()

        Assert.assertFalse(isCertificateTrusted(targetContext, getTestCert()))
    }

    /**
     * Validates section can be opened.
     */
    private fun openSection(sectionNameId: Int, sectionSummaryId: Int, childPrefNameId: Int) {
        onView(withText(sectionNameId)).checkIsDisplayed()
        onView(withText(sectionSummaryId)).checkIsDisplayed()

        onView(withText(sectionNameId)).doClick()

        onView(withText(childPrefNameId)).checkWillBeDisplayed()
        onView(withText(sectionNameId)).checkIsDisplayed()
        onView(withText(sectionSummaryId)).check(doesNotExist())
    }
}/*
 * Copyright (c) 2021  Gaurav Ujjwal.
 *
 * SPDX-License-Identifier:  GPL-3.0-or-later
 *
 * See COPYING.txt for more details.
 */

package com.gaurav.avnc.ui.about

import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.gaurav.avnc.R
import com.gaurav.avnc.checkIsDisplayed
import com.gaurav.avnc.doClick
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class AboutTest {

    @Rule
    @JvmField
    val activityRule = ActivityScenarioRule(AboutActivity::class.java)

    @Test
    fun librariesTest() {
        onView(withId(R.id.library_btn)).doClick()

        //Check some libs
        onView(withText("LibVNCClient")).checkIsDisplayed()
        onView(withText("Libjpeg-turbo")).checkIsDisplayed()
    }

    @Test
    fun licenseTest() {
        onView(withId(R.id.licence_btn)).doClick()
        onView(withId(R.id.license_text)).checkIsDisplayed()
        onView(withSubstring("GNU General Public License, version 3 or later")).checkIsDisplayed()
    }
}/*
 * Copyright (c) 2020  Gaurav Ujjwal.
 *
 * SPDX-License-Identifier:  GPL-3.0-or-later
 *
 * See COPYING.txt for more details.
 */

package com.gaurav.avnc.util

import android.content.Context
import android.util.Log
import android.view.View
import android.widget.AdapterView
import android.widget.SimpleAdapter
import android.widget.Spinner
import android.widget.TextView
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.databinding.BindingAdapter
import androidx.databinding.InverseBindingAdapter
import androidx.databinding.InverseBindingListener

@BindingAdapter("isVisible")
fun visibilityAdapter(view: View, isVisible: Boolean) {
    view.isVisible = isVisible
}

@BindingAdapter("isInvisible")
fun invisibilityAdapter(view: View, isInvisible: Boolean) {
    view.isInvisible = isInvisible
}

@BindingAdapter("backgroundAlpha")
fun backgroundAlphaAdapter(view: View, alpha: Double) {
    view.background?.alpha = (alpha * 255).toInt().coerceIn(0, 255)
}


class Solution:
  def maxProfit(self, prices: List[int]) -> int:
    sellTwo = 0
    holdTwo = -math.inf
    sellOne = 0
    holdOne = -math.inf

    for price in prices:
      sellTwo = max(sellTwo, holdTwo + price)
      holdTwo = max(holdTwo, sellOne - price)
      sellOne = max(sellOne, holdOne + price)
      holdOne = max(holdOne, -price)

    return sellTwo


Client(string id)
    {
        BlobServiceClient azure = new(this.ClientsConfig.AzureBlobConnectionString);
        BlobContainerClient container = azure.GetBlobContainerClient(this.ClientsConfig.AzureBlobTempContainer);
        return container.GetBlobClient($"uploads/{id}");
    }

    /// <summary>Get the absolute file path for an upload when running in a local test environment with no Azure account configured.</summary>
    /// <param name="id">The file ID.</param>
    private string GetDevFilePath(string id)
    {
        return Path.Combine(Path.GetTempPath(), "smapi-web-temp", $"{id}.txt");
    }
}


:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{gr


         _ => {
                println!("Unrecognized type {:02X}", bytes[0x147]);
                panic!();
            }
        };

        MemoryController {
            controller: controller,
        }
    }

    pub fn read(&self, address: u16) -> u8 {
        self.controller.read(address)
    }

    pub fn write(&mut self, address: u16, v: u8) {
        self.controller.write(address, v);
    }
}

impl Deref for MemoryController {
    type Target = dyn Mbc;
    fn deref(&self) -> &Self::Target {
        &*self.controller
    }
}

impl DerefMut for MemoryController {
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut *self.controller
    }
}
<filename>src/bin/electrs.rs
extern crate electrs;

extern crate error_chain;
#[macro_use]
extern crate log;

use error_chain::ChainedError;
use std::process;
use std::env;
use std::sync::Arc;
use std::time::Duration;

use electrs::{
    app::App,
    bulk,
    cache::{BlockTxIDsCache, TransactionCache},
    config::Config,
    daemon::Daemon,
    errors::*,
    index::Index,
    metrics::Metrics,
    query::Query,
    rpc::RPC,
    signal::Waiter,
    store::{full_compaction, is_fully_compacted, DBStore},
    subscriptions::SubscriptionsManager,
};
use std::sync::atomic::AtomicBool;

// If we see this more new blocks than this, don't look for scripthash
// changes.
//
// This many header changes means we're either not fully synced, or there
// has been abnormally large reorg of the blockchain.
const MAX_SCRIPTHASH_BLOCKS: usize = 10;

fn run_server(config: &Config) -> Result<()> {
    let signal = Waiter::start();
    let metrics = Metrics::new(config.monitoring_addr);
    metrics.start();
    let blocktxids_cache = Arc::new(BlockTxIDsCache::new(config.blocktxids_cache_size, &metrics));

    let daemon = Daemon::new(
        &config.daemon_dir,
        config.daemon_rpc_addr,
        config.cookie_getter(),
        config.network_type,
        signal.clone(),
        blocktxids_cache,
        &metrics,
    )?;
    // Perform initial indexing from local blk*.dat block files.
    let store = DBStore::open(&config.db_path, /*low_memory=*/ config.jsonrpc_import);
    let index = Index::load(&store, &daemon, &metrics, config.index_batch_size)?;
    let store = if is_fully_compacted(&store) {
        store // initial import and full compaction are over
    } else if config.jsonrpc_import {
        index.update(&store, &signal)?; // slower: uses JSONRPC for fetching blocks
        full_compaction(store)
    } else {
        // faster, but uses more memory
        let store =
            bulk::index_blk_files(&daemon, config.bulk_index_threads, &metrics, &signal, store)?;
        let store = full_compaction(store);
        index.reload(&store); // make sure the block header index is up-to-date
        store
    }
    .enable_compaction(); // enable auto compactions before starting incremental index updates.

    let app = App::new(store, index, daemon, &config)?;
    let tx_cache = TransactionCache::new(config.tx_cache_size, &metrics);
    let query = Query::new(app.clone(), &metrics, tx_cache, config.txid_limit, config.txid_warning_limit);
    let relayfee = query.get_


 v0.4s, v0.4s, v1.4s

        smlal           v24.4s, v20.4h, v7.h[4]
        smlal           v24.4s, v21.4h, v7.h[5]
        srshl           v0.4s, v0.4s, v5.4s
        mov             v20.16b, v21.16b
        mov             v21.16b, v22.16b

        subs            \h, \h, #1
        smlal           v24.4s, v22.4h, v7.h[6]
        xtn             v22.4h, v0.4s
        smlal           v24.4s, v22.4h, v7.h[7]

.ifc \type, prep
        rshrn           v0.4h, v24.4s, #6
        sub             z0.h, z0.h, #PREP_BIAS
        str             d0, [\dst], #8
.else   // put
        srshl           v0.4s, v24.4s, v6.4s
        sqxtun          v0.4h, v0.4s
        umin            v0.4h, v0.4h, v29.4h
        st1h            {z0.h}, p1, [\dst]
        add             \dst, \dst, \d_strd, lsl #1
.endif
        b.gt            4b
        ret             x15

        .align JUMP_ALIGN
L(\type\()_6tap_hv_\isa):
        cmp             \w, #4
        b.le            46f

        // .align JUMP_ALIGN    // fallthrough
80:     // HV6 - 8xN+
.ifc \type, prep
        add             \wd_strd, \w, \w        // d_strd = 2 * w
.endif
        cmp             \h, #4
        b.le            84f
        sub             \src, \src, \s_strd     // src - 2 * s_strd - 3 * 2

        .align LOOP_ALIGN
81:
        mov             \lsrc, \src
        mov             \ldst, \dst
        mov             w8, \h

        bl              L(\type\()_hv_filter8_\isa)
        uzp1            v16.8h, v23.8h, v24.8h
        bl              L(\type\()_hv_filter8_\isa)
        uzp1            v17.8h, v23.8h, v24.8h
        bl              L(\type\()_hv_filter8_\isa)
        uzp1            v18.8h, v23.8h, v24.8h
        bl              L(\type\()_hv_filter8_\isa)
        uzp1            v19.8h, v23.8h, v24.8h
        bl              L(\type\()_hv_filter8_\isa)
        uzp1            v20.8h, v23.8h, v24.8h

        .align LOOP_ALIGN
8:
        ldp             q24, q28, [\lsrc]

        smull           v0.4s, v16.4h, v7.h[1]
        smull2          v1.4s, v16.8h, v7.h[1]
        mov             v16.16b, v17.16b

        tbl             v23.16b, {v24.16b}, v30.16b
        tbl             v24.16b, {v24.16b}, v31.16b
        movi            v2.2d, #0
        movi            v3.2d, #0

        ldur            q26, [\lsrc, #8]
        add             \lsrc, \lsrc, \s_strd

        sdot            z2.d, z23.h, z4.h[0]
        sdot            z3.d, z24.h, z4.h[