re_rectangle = 1;
//        public const int GL_TEXTURE_RECTANGLE_ARB = 0x84F5;
//        public const int GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6;
//        public const int GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7;
//        public const int GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8;
//        public const int GL_ARB_texture_rg = 1;
//        public const int GL_ARB_texture_rgb10_a2ui = 1;
//        public const int GL_ARB_texture_stencil8 = 1;
//        public const int GL_ARB_texture_storage = 1;
//        public const int GL_ARB_texture_storage_multisample = 1;
//        public const int GL_ARB_texture_swizzle = 1;
//        public const int GL_ARB_texture_view = 1;
//        public const int GL_ARB_timer_query = 1;
//        public const int GL_ARB_transform_feedback2 = 1;
//        public const int GL_ARB_transform_feedback3 = 1;
//        public const int GL_ARB_transform_feedback_instanced = 1;
//        public const int GL_ARB_transform_feedback_overflow_query = 1;
//        public const int GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC;
//        public const int GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED;
//        public const int GL_ARB_transpose_matrix = 1;
//        public const int GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3;
//        public const int GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4;
//        public const int GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5;
//        public const int GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6;
//        public const int GL_ARB_uniform_buffer_object = 1;
//        public const int GL_ARB_vertex_array_bgra = 1;
//        public const int GL_ARB_vertex_array_object = 1;
//        public const int GL_ARB_vertex_attrib_64bit = 1;
//        public const int GL_ARB_vertex_attrib_binding = 1;
//        public const int GL_ARB_vertex_blend = 1;
//        public const int GL_MAX_VERTEX_UNITS_ARB = 0x86A4;
//        public const int GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5;
//        public const int GL_WEIGHT_SUM_UNITY_ARB = 0x86A6;
//        public const int GL_VERTEX_BLEND_ARB = 0x86A7;
//        public const int GL_CURRENT_WEIGHT_ARB = 0x86A8;
//        public const int GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9;
//        public const int GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA;
//        public const int GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB;
//        public const int GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC;
//        public const int GL_WEIGHT_ARRAY_ARB = 0x86AD;
//        public const int GL_MODELVIEW0_ARB = 0x1700;
//        public const int GL_MODELVIEW1_ARB = 0x850A;
//        public const int GL_MODELVIEW2_ARB = 0x8722;
//        public const int GL_MODELVIEW3_ARB = 0x8723;
//        public const int GL_MODELVIEW4_ARB = 0


interProblem<TKey> {
    key?: TKey;
    error?: string;
    code?: string;
    location?: {
        start: {
            column: number;
            line: number;
        },
        end: {
            column: number;
            line: number;
        }
    };
    loc?: jsonToAst.AstLocation;
}
// Объявляем глобально функцию линтера
declare function lint<T>(json: string): LinterProblem<T>[];

export function makeLint<TProblemKey>(
    json: string,
    validateProperty: (property: jsonToAst.AstProperty) => LinterProblem<TProblemKey>[],
    validateObject: (obj: jsonToAst.AstObject) => LinterProblem<TProblemKey>[]
): LinterProblem<TProblemKey>[] {

    function walk(
        node: jsonToAst.AstJsonEntity,
        cbProp: (property: jsonToAst.AstProperty) => void,
        cbObj: (obj: jsonToAst.AstObject) => void
    ) {
        switch (node.type) {
            case 'Array':
                node.children.forEach((item: jsonToAst.AstJsonEntity) => {
                    walk(item, cbProp, cbObj);
                });
                break;
            case 'Object':
                cbObj(node);

                node.children.forEach((property: jsonToAst.AstProperty) => {
                    cbProp(property);
                    walk(property.value, cbProp, cbObj);
                });
                break;
        }
    }

    function parseJson(json: string):JsonAST  {return jsonToAst(json); }

    const errors: LinterProblem<TProblemKey>[] = [];

    // Если json невалиден, оставляем пустой массив
    try {
        const ast: JsonAST = parseJson(json);

        if (ast) {
            walk(ast,

                // .concat не изменяет массив, а возвращает новый массив, состоящий из массива, на котором он был вызван
                // правильно здесь использовать push с деструктуризацей массива
                (property: jsonToAst.AstProperty) => errors.push(...validateProperty(property)),
                (obj: jsonToAst.AstObject) => errors.push(...validateObject(obj)));
        }

        // добавляем ошибки с подключенного линтера
        errors.push(...lint<TProblemKey>(json));
    } catch(e) {
        //
    }

    return errors;
}

declare var MediaRecorder: any;

// tod: define a set of modes

export class MediaStreamRecorder {
    data: Array<Blob>;
    recorder: any;
    mediaStream: MediaStream;
    /**
     * Get a BlobURL from data
     *
     * @returns {string}
     * @memberof MediaStreamRecorder
     */
    getBlobUrl(): string {
        let blob = new Blob(this.data, {
            type: 'video/webm; codecs="vp8"'
        });
        return URL.createObjectURL(blob);
    }
    /**
     * Get recorded data as Blob
     *
     * @returns {Blob}
     * @memberof MediaStreamRecorder
     */
    getBlob(): Blob {
        let blob = new Blob(this.data, {
            type: 'video/webm'
        });
        return blob;
    }
    getParts(): Blob {
        let blob = new Blob([this.data[0]], {
            type: 'video/webm'
        });
        return blob;
    }
    /**
     *Creates an instance of MediaStreamRecorder.
     * @param {Array<MediaStreamTrack>} tracks
     * @memberof MediaStreamRecorder
     */
    constructor(public tracks: Array<MediaStreamTrack>) {
        this.mediaStream = new MediaStream(tr


ge:pointycastle/signers/ecdsa_signer.dart';
import 'package:pointycastle/pointycastle.dart';
import 'package:hex/hex.dart';
import 'package:sprintf/sprintf.dart';

import 'exceptions.dart';

/// Sign bitcoin transactions and verify signatures.
///
///
class SVSignature {
    final ECDomainParameters _domainParams =  ECDomainParameters('secp256k1');
    static final SHA256Digest _sha256Digest = SHA256Digest();
    final ECDSASigner _dsaSigner =  ECDSASigner(null, HMac(_sha256Digest, 64));

    ECSignature? _signature;
    BigInt? _r = null;
    BigInt? _s = null;
    String? _rHex;
    String? _sHex;
    int _nhashtype = 0;
    int? _i;
    bool _compressed = false;

    SVPrivateKey? _privateKey;
    SVPublicKey? _publicKey;

    /// Construct a  instance from the R and S components of an ECDSA signature.
    ///
    /// [r] - The r component of the signature
    ///
    /// [s] - The s component of the signature
    SVSignature.fromECParams(this._r, this._s) {
        _signature = ECSignature(_r! , _s!);
    }

    /// Constructs a signature for it's bitcoin-transaction-encoded form.
    ///
    /// [buffer] - A hexadecimal string containing the signature from a bitcoin transaction.
    SVSignature.fromTxFormat(String buffer) {

        //allow empty signatures
        if (buffer.length == 0){
            _r = BigInt.one;
            _s = BigInt.one;
            _signature = ECSignature(_r!, _s!);
            _nhashtype = 1;
            return;
        }

        var decoded = HEX.decode(buffer);
        var nhashtype = decoded[decoded.length - 1];

        var derbuf = decoded.sublist(0, decoded.length - 1);
        _nhashtype = nhashtype; //this is OK. SighashType is already represented as HEX. No decoding needed

        // _parseDER(HEX.encode(derbuf));
        _decodeFlexDER(derbuf, false);

    }

    /// Constructs a signature from it's DER-encoded form
    ///
    /// [derBuffer] - Hex-encoded DER string containing the signature
    SVSignature.fromDER(String derBuffer, {SVPublicKey? publicKey = null}) {
        _publicKey = publicKey;
        _parseDER(derBuffer);
    }

    /// Construct a signature instance from a PrivateKey for signing purposes.
    SVSignature.fromPrivateKey(SVPrivateKey privateKey) {
        ECPrivateKey privKey =  ECPrivateKey(privateKey.privateKey, _domainParams);

        _privateKey = privateKey;
        _compressed = privateKey.isCompressed;

        _dsaSigner.init(true, PrivateKeyParameter(privKey));
    }

    /// Constructs a signature instance from PublicKey for verification *ONLY*.
    SVSignature.fromPublicKey(SVPublicKey publicKey){
        ECPublicKey pubKey =  ECPublicKey(publicKey.point, _domainParams);
        _publicKey = publicKey;
        _dsaSigner.init(false, PublicKeyParameter(pubKey));
    }

    /// Construct the Signature and recover the public key.
    /// With the public key recovered we can use this signature for *verification only*
    ///
    /// This paper (secion 4.1.6) describes an algorithm for recovering the public key from an ECDSA signature:
    /// (http://www.secg.org/sec1-v2.pdf)
    ///
    /// [buffer] -


// GanttTreeList.h: interface for the CGanttTreeList class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GANTTMSG_H__016B94F3_1D28_4532_97EF_95F1D9D5CE55__INCLUDED_)
#define AFX_GANTTMSG_H__016B94F3_1D28_4532_97EF_95F1D9D5CE55__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////

// WPARAM = Hit test, LPARAM = Task ID
const UINT WM_GTLC_DATECHANGE				= ::RegisterWindowMessage(_T("WM_GTLC_DATECHANGE"));

// WPARAM = Drag Mode, LPARAM = Task ID
const UINT WM_GTLC_DRAGCHANGE				= ::RegisterWindowMessage(_T("WM_GTLC_DRAGCHANGE"));

// WPARAM = HWND, LPARAM = TRUE/FALSE
const UINT WM_GTLC_COMPLETIONCHANGE			= ::RegisterWindowMessage(_T("WM_GTLC_COMPLETIONCHANGE"));

// WPARAM = , LPARAM =
const UINT WM_GTLC_NOTIFYZOOM				= ::RegisterWindowMessage(_T("WM_GTLC_NOTIFYZOOM"));

// WPARAM = , LPARAM =
const UINT WM_GTLC_NOTIFYSORT				= ::RegisterWindowMessage(_T("WM_GTLC_NOTIFYSORT"));

// WPARAM = , LPARAM =
const UINT WM_GTLC_PREFSHELP				= ::RegisterWindowMessage(_T("WM_GTLC_PREFSHELP"));

// WPARAM = LPCTSTR (Task Icon), LPARAM = int* (imageIndex), return HIMAGELIST
const UINT WM_GTLC_GETTASKICON				= ::RegisterWindowMessage(_T("WM_GTLC_GETTASKICON"));

// WPARAM = HWND, LPARAM =
const UINT WM_GTLC_EDITTASKICON				= ::RegisterWindowMessage(_T("WM_GTLC_EDITTASKICON"));

// WPARAM = 0, LPARAM = IUITASKMOVE*
const UINT WM_GTLC_MOVETASK					= ::RegisterWindowMessage(_T("WM_GTLC_MOVETASK"));

// WPARAM = 0, LPARAM = Task ID
const UINT WM_GTLC_EDITTASKTITLE			= ::RegisterWindowMessage(_T("WM_GTLC_EDITTASKTITLE"));

/////////////////////////////////////////////////////////////////////////////

// WPARAM = GCDD_MODE, LPARAM = HWND
const UINT WM_GANTTDEPENDDLG_CLOSE			= ::RegisterWindowMessage(_T("WM_GANTTDEPENDDLG_CLOSE"));

/////////////////////////////////////////////////////////////////////////////

#endif // !defined(AFX_GANTTMSG_H__016B94F3_1D28_4532_97EF_95F1D9D5CE55__INCLUDED_)


def solution(arr):
    stk = []
    i = 0
    while i < len(arr):
        if len(stk) == 0:
            stk.append(arr[i])
            i += 1
        else:
            if stk[-1] < arr[i]:
                stk.append(arr[i])
                i += 1
            else:
                stk.pop()
    return stk


bindings.go_to_cwd] = go_to_cwd_action(opts),
      [config.keybindings.go_to_parent] = go_to_parent_action(opts),
      [config.keybindings.find_folders] = find_folders_action(opts),
      [config.keybindings.delete_files] = delete_files_action(opts),
      [config.keybindings.open_vsplit] = open_vsplit_action(opts),
      [config.keybindings.open_hsplit] = open_hsplit_action(opts)
    }
  }

  -- Store the original fzf state for resume detection
  explorer_state.last_fzf_opts = fzf_opts

  -- Hook into fzf completion to detect resume
  local original_on_complete = fzf_opts.fn_post_fzf
  fzf_opts.fn_post_fzf = function(...)
    -- Check if clipboard should be restored on next resume
    if #explorer_state.cut_files > 0 or #explorer_state.copy_files > 0 then
      -- Set a flag that we had clipboard visible
      explorer_state.had_clipboard = true
    end

    if original_on_complete then
      return original_on_complete(...)
    end
  end

  -- Hook to restore clipboard after picker opens
  local original_fn_pre_fzf = fzf_opts.fn_pre_fzf
  fzf_opts.fn_pre_fzf = function(...)
    -- If this looks like a resume and we had clipboard, restore it
    if explorer_state.had_clipboard and (#explorer_state.cut_files > 0 or #explorer_state.copy_files > 0) then
      vim.schedule(function()
        show_clipboard_buffer()
      end)
    end

    if original_fn_pre_fzf then
      return original_fn_pre_fzf(...)
    end
  end

  -- Use core.fzf_exec like files() does for proper icon handling
  core.fzf_exec(entries, fzf_opts)
end

return M


 = &buf[table1[algo][3]];
	in [2] = &buf[table1[algo][4]];
	out[2] = &buf[table1[algo][5]];

	op[0].ResetFB();
	algo_ = algo;
}

//  合成
ISample Channel4::Calc()
{
	int r;
	switch (algo_)
	{
	case 0:
		op[2].Calc(op[1].Out());
		op[1].Calc(op[0].Out());
		r = op[3].Calc(op[2].Out());
		op[0].CalcFB(fb);
		break;
	case 1:
		op[2].Calc(op[0].Out() + op[1].Out());
		op[1].Calc(0);
		r = op[3].Calc(op[2].Out());
		op[0].CalcFB(fb);
		break;
	case 2:
		op[2].Calc(op[1].Out());
		op[1].Calc(0);
		r = op[3].Calc(op[0].Out() + op[2].Out());
		op[0].CalcFB(fb);
		break;
	case 3:
		op[2].Calc(0);
		op[1].Calc(op[0].Out());
		r = op[3].Calc(op[1].Out() + op[2].Out());
		op[0].CalcFB(fb);
		break;
	case 4:
		op[2].Calc(0);
		r = op[1].Calc(op[0].Out());
		r += op[3].Calc(op[2].Out());
		op[0].CalcFB(fb);
		break;
	case 5:
		r =  op[2].Calc(op[0].Out());
		r += op[1].Calc(op[0].Out());
		r += op[3].Calc(op[0].Out());
		op[0].CalcFB(fb);
		break;
	case 6:
		r  = op[2].Calc(0);
		r += op[1].Calc(op[0].Out());
		r += op[3].Calc(0);
		op[0].CalcFB(fb);
		break;
	case 7:
		r  = op[2].Calc(0);
		r += op[1].Calc(0);
		r += op[3].Calc(0);
		r += op[0].CalcFB(fb);
		break;
	default:
		assert(false);
		r = 0;
		break;
	}
	return r;
}

//  合成
ISample Channel4::CalcL()
{
	chip_->SetPMV(pms[chip_->GetPML()]);

	int r;
	switch (algo_)
	{
	case 0:
		op[2].CalcL(op[1].Out());
		op[1].CalcL(op[0].Out());
		r = op[3].CalcL(op[2].Out());
		op[0].CalcFBL(fb);
		break;
	case 1:
		op[2].CalcL(op[0].Out() + op[1].Out());
		op[1].CalcL(0);
		r = op[3].CalcL(op[2].Out());
		op[0].CalcFBL(fb);
		break;
	case 2:
		op[2].CalcL(op[1].Out());
		op[1].CalcL(0);
		r = op[3].CalcL(op[0].Out() + op[2].Out());
		op[0].CalcFBL(fb);
		break;
	case 3:
		op[2].CalcL(0);
		op[1].CalcL(op[0].Out());
		r = op[3].CalcL(op[1].Out() + op[2].Out());
		op[0].CalcFBL(fb);
		break;
	case 4:
		op[2].CalcL(0);
		r = op[1].CalcL(op[0].Out());
		r += op[3].CalcL(op[2].Out());
		op[0].CalcFBL(fb);
		break;
	ca


# 5 - Verificando a Média do Aluno:
# Crie um algoritmo que peça quatro notas de um aluno, calcule a
# média e exiba se o aluno foi aprovado ou reprovado (média >= 6).

print('------------------ School -------------------')
c = 0
n = 0
md = 0
alu = input('Nome do aluno: ')
while c < 4:
  n = float(input('Digite a nota: '))
  if n < 0:
    print('Insira uma nota valida. ')
    break
  c += 1


  title={FLoRA: Enhancing Vision-Language Models with Parameter-Efficient Federated Learning},
  author={Nguyen, Duy Phuong and Munoz, J Pablo and Jannesari, Ali},
  journal={arXiv preprint arXiv:2404.15182},
  year={2024}
}
@inproceedings{104sun2024towards,
  title={Towards Multi-modal Transformers in Federated Learning},
  author={Sun, Guangyu and Mendieta, Matias and Dutta, Aritra and Li, Xin and Chen, Chen},
  booktitle={European Conference on Computer Vision},
  pages={1--17},
  year={2024},
  organization={Springer}
}
@article{jin2024decoagent,
  title={DeCoAgent: Large Language Model Empowered Decentralized Autonomous Collaboration Agents Based on Smart Contracts},
  author={Jin, Anan and Ye, Yuhang and Lee, Brian and Qiao, Yuansong},
  journal={IEEE Access},
  year={2024},
  publisher={IEEE}
}
@inproceedings{106zeng2024open,
  title={Open-Vocabulary Federated Learning with Multimodal Prototyping},
  author={Zeng, Huimin and Yue, Zhenrui and Wang, Dong},
  booktitle={Proceedings of the 2024 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
  pages={1--12},
  year={2024}
}
@misc{gibiansky2017bringing,
  title={Bringing HPC techniques to deep learning},
  author={Gibiansky, Andrew},
  year={2017},
  note={Available at \url{https://eng.uber.com/horovod/}},
}
@article{sergeev2018horovod,
  title={Horovod: fast and easy distributed deep learning in TensorFlow},
  author={Sergeev, Alexander and Del Balso, Mike},
  journal={arXiv preprint arXiv:1802.05799},
  year={2018}
}
@article{rasley2020deepspeed,
  title={Deepspeed: System optimizations enable training deep learning models with over 100 billion parameters},
  author={Rasley, Jeff and Rajbhandari, Samyam and Ruwase, Olatunji and Yang, Shaden and Zhang, Yong and He, Yuxiong},
  journal={arXiv preprint arXiv:2007.00072},
  year={2020}
}
@article{ouyang2022training,
  title={Training language models to follow instructions with human feedback},
  author={Ouyang, Long and Wu, Jeffrey and Jiang, Xu and Almeida, Diogo and Wainwright, Carroll and Mishkin, Pamela and Zhang, Chong and Agarwal, Sandhini and Slama, Katarina and Ray, Alex and others},
  journal={arXiv preprint arXiv:2203.02155},
  year={2022}
}
@inproceedings{christiano2017deep,
  title={Deep reinforcement learning from human preferences},
  author={Christiano, Paul F and Leike, Jan and Brown, Tom B and Martic, Miljan and Legg, Shane and Amodei, Dario},
  booktitle={Advances in Neural Information Processing Systems},
  pages={4299--4307},
  year={2017}
}
@inproceedings{brants2009distributed,
  title={Distributed language models},
  author={Brants, Thorsten and Xu, Peng},
  booktitle={Proceedings of Human Language Technologies: The 2009 Annual Conference of the North American Chapter of the Association for Computational Linguistics, Companion Volume: Tutorial Abstracts},
  pages={3--4},
  year={2009}
}
@inproceedings{Brown2020language,
  author = {Brown, T. and others},
  title = {Language Models Are Few-Shot Learners},
  booktitle = {NeurIPS},


;
pub use tx_lookup::TxLookup;
use super::constants::*;
use super::{SigAction, SigNum};
use crate::prelude::*;

pub fn do_rt_sigaction(signum: SigNum, new_sa: Option<SigAction>) -> Result<SigAction> {
    println!(
        "do_rt_sigaction: signum: {:?}, new_sa: {:?}",
        &signum, &new_sa
    );

    if (signum == SIGKILL || signum == SIGSTOP) && new_sa.is_some() {
        return_errno!(
            EINVAL,
            "The actions for SIGKILL or SIGSTOP cannot be changed"
        );
    }

    let thread = current!();
    let process = thread.process();
    let mut sig_dispositions = process.sig_dispositions().write().unwrap();
    let old_sa = sig_dispositions.get(signum);
    if let Some(new_sa) = new_sa {
        sig_dispositions.set(signum, new_sa);
    }
    Ok(old_sa)
}
<gh_stars>0
//  Copyright 2021. The Tari Project
//
//  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
//  following conditions are met:
//
//  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
//  disclaimer.
//
//  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
//  following disclaimer in the documentation and/or other materials provided with the distribution.
//
//  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
//  products derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
//  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
//  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
//  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
//  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
//  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
//  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

use std::{
    io,
    io::{Read, Write},
};

use serde::{Deserialize, Serialize};
use tari_common_types::types::PublicKey;

use crate::{
    consensus::{ConsensusDecoding, ConsensusEncoding, ConsensusEncodingSized, MaxSizeVec},
    transactions::transaction_components::TemplateParameter,
};

#[derive(Debug, Clone, Hash, PartialEq, Deserialize, Serialize, Eq)]
pub struct AssetOutputFeatures {
    pub public_key: PublicKey,
    // TODO: remove in favour of template args
    pub template_ids_implemented: Vec<u32>,
    pub template_parameters: Vec<TemplateParameter>,
}

impl ConsensusEncoding for AssetOutputFeatures {
    fn consensus_encode<W: Write>(&self, writer: &mut W) -> Result<(), io::Error> {
        self.public_key.consensus_encode(writer)?;
        self.template_ids_implemented.consensus_encode(writer)?;
        self.template_parameters.consensus_encode(writer)?;
        Ok(())
    }


ud.Items.interfaces.ClanItem.ClanItemType;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;

import java.util.*;

import com.planet_ink.coffee_mud.Libraries.interfaces.*;
import com.planet_ink.coffee_mud.Libraries.interfaces.AchievementLibrary.Event;

/*
   Copyright 2021-2025 Bo Zimmerman

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

	   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
public class GenClanCastle extends GenCastle implements ClanItem
{
	@Override
	public String ID()
	{
		return "GenClanCastle";
	}

	private Environmental	riteOwner		= null;
	protected ClanItemType	ciType			= ClanItemType.SPECIALOTHER;
	protected String		myClan			= "";
	protected volatile int	holesInWalls	= 0;
	protected volatile int  lastPctHealth	= 100;
	protected volatile Room targetRoom		= null;
	protected volatile long	targetExpire	= 0;

	public GenClanCastle()
	{
		super();
		setName("a castle");
		setDisplayText("a castle is here.");
		setMaterial(RawMaterial.RESOURCE_STONE);
		this.doorName="portcullis";
	}

	@Override
	public Environmental rightfulOwner()
	{
		return riteOwner;
	}

	@Override
	public void setRightfulOwner(final Environmental E)
	{
		riteOwner = E;
	}

	@Override
	public ClanItemType getClanItemType()
	{
		return ciType;
	}

	@Override
	public void setClanItemType(final ClanItemType type)
	{
		ciType = type;
	}

	@Override
	public String clanID()
	{
		return myClan;
	}

	@Override
	public void setClanID(final String ID)
	{
		myClan = ID;
	}

	@Override
	public void executeMsg(final Environmental myHost, final CMMsg msg)
	{
		if (StdClanItem.stdExecuteMsg(this, msg))
			super.executeMsg(myHost, msg);
	}

	@Override
	public boolean okMessage(final Environmental myHost, final CMMsg msg)
	{
		if (!StdClanItem.stdOkMessage(this, msg))
			return false;

		if((msg.target()==this)
		&&(msg.targetMinor()==CMMsg.TYP_SIT)
		&&hasADoor()
		&&(!isOpen())
		&&(holesInWalls>0)
		&&(msg.sourceMessage().indexOf(mountString(CMMsg.TYP_SIT,msg.source()))>0)
		&&(clanID().length()>0))
		{
			final MOB srcM=msg.source().getGroupLeader();
			final Clan C=CMLib.clans().getClan(clanID());
			if((C!=null)
			&&(!CMLib.clans().isClanFriendly(srcM, C))
			&&(!CMLib.flags().isSneaking(msg.source())))
			{


   ARG_TARGET => *SYSTEM_ADDR,
            ARG_AMOUNT => U512::from(TRANSFER_AMOUNT)
        },
    )
    .build();

    let validator_1_fund_request = ExecuteRequestBuilder::standard(
        *DEFAULT_ACCOUNT_ADDR,
        CONTRACT_TRANSFER_TO_ACCOUNT,
        runtime_args! {
            ARG_TARGET => *VALIDATOR_1_ADDR,
            ARG_AMOUNT => U512::from(TRANSFER_AMOUNT)
        },
    )
    .build();

    let validator_2_fund_request = ExecuteRequestBuilder::standard(
        *DEFAULT_ACCOUNT_ADDR,
        CONTRACT_TRANSFER_TO_ACCOUNT,
        runtime_args! {
            ARG_TARGET => *VALIDATOR_2_ADDR,
            ARG_AMOUNT => U512::from(TRANSFER_AMOUNT)
        },
    )
    .build();

    let validator_3_fund_request = ExecuteRequestBuilder::standard(
        *DEFAULT_ACCOUNT_ADDR,
        CONTRACT_TRANSFER_TO_ACCOUNT,
        runtime_args! {
            ARG_TARGET => *VALIDATOR_3_ADDR,
            ARG_AMOUNT => U512::from(TRANSFER_AMOUNT)
        },
    )
    .build();

    let validator_1_add_bid_request = ExecuteRequestBuilder::standard(
        *VALIDATOR_1_ADDR,
        CONTRACT_ADD_BID,
        runtime_args! {
            ARG_AMOUNT => U512::from(VALIDATOR_1_STAKE),
            ARG_DELEGATION_RATE => DELEGATION_RATE,
            ARG_PUBLIC_KEY => VALIDATOR_1.clone(),
        },
    )
    .build();

    let validator_2_add_bid_request = ExecuteRequestBuilder::standard(
        *VALIDATOR_2_ADDR,
        CONTRACT_ADD_BID,
        runtime_args! {
            ARG_AMOUNT => U512::from(VALIDATOR_2_STAKE),
            ARG_DELEGATION_RATE => DELEGATION_RATE,
            ARG_PUBLIC_KEY => VALIDATOR_2.clone(),
        },
    )
    .build();

    let validator_3_add_bid_request = ExecuteRequestBuilder::standard(
        *VALIDATOR_3_ADDR,
        CONTRACT_ADD_BID,
        runtime_args! {
            ARG_AMOUNT => U512::from(VALIDATOR_3_STAKE),
            ARG_DELEGATION_RATE => DELEGATION_RATE,
            ARG_PUBLIC_KEY => VALIDATOR_3.clone(),
        },
    )
    .build();

    let post_genesis_requests = vec![
        system_fund_request,
        validator_1_fund_request,
        validator_2_fund_request,
        validator_3_fund_request,
        validator_1_add_bid_request,
        validator_2_add_bid_request,
        validator_3_add_bid_request,
    ];

    let mut timestamp_millis =
        DEFAULT_GENESIS_TIMESTAMP_MILLIS + DEFAULT_LOCKED_FUNDS_PERIOD_MILLIS;

    let mut builder = InMemoryWasmTestBuilder::default();

    builder.run_genesis(&DEFAULT_RUN_GENESIS_REQUEST);

    // initial token supply
    let initial_supply = builder.total_supply(None);
    let expected_total_reward = *GENESIS_ROUND_SEIGNIORAGE_RATE * initial_supply;
    let expected_total_reward_integer = expected_total_reward.to_integer();

    for request in post_genesis_requests {
        builder.exec(request).commit().expect_success();
    }

    for _ in 0..5 {
        builder.run_auction(timestamp_millis, Vec::new());
        timestamp_millis += TIMESTAMP


swiper22 .swiper-slide .img-box::before {
    display: block;
    content: '';
    left: 0;top: 0;
    width: 417px;
    height: 284px;
    position: absolute;
    background: linear-gradient(to bottom, transparent, 85%, rgba(0,0,0,0.7));
    /* background-color: #d13043; */
    z-index: 2;
}
/* .swiper-slide-active {
    border: 6px solid #d13043;
    width: 100%;
    height: 100%;
} */
.swiper-slide-thumb-active {
    border: 6px solid #d13043;
    width: 100%;
    height: 100%;
}
.section5 .inner .swiper22 .swiper-slide:hover .img-box::after{
    display: block;
    content: '';
    border:6px solid #d13043;
    width: 410px;
    height: 278px;
    z-index: 3;
    top: 0;left: -1px;
    position: absolute;
}
.section5 .inner .swiper-inner .swiper-pagination-progressbar.swiper-pagination-horizontal {
    position: absolute;
    top:168%;
    width: 1589px;
    height: 2px;
}
.section5 .inner .swiper-inner .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background-color: #000000;
    height: 4px;
    top: -1px;
}
.section5 .inner .swiper-inner .swiper-button-next {
    position: absolute;
    top: 168%;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    background: url('../images/tour_next.png')no-repeat center;
}
.section5 .inner .swiper-inner .swiper-button-prev {
    position: absolute;
    top: 168%;
    left: 92%;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    background: url('../images/tour_prev.png')no-repeat center;
}
.section5 .inner .swiper-inner .swiper-button-next:after,
.section5 .inner .swiper-inner .swiper-button-prev:after {
    display: none;
}

.section5 .inner .swiper22 {
    position: relative;
}
.section5 .inner .swiper22 .text {
    position: absolute;
    bottom: 20px;
    left: 20px;
    font-size: 1.5rem;
    color: #fff;
    z-index: 2;
    font-family: 'scd';
}

/* main */

/* footer */
footer .container {
    width: 100%;
    height: 268px;
    background-color: #222;
}
footer .container .inner {
    width: 1440px;
    height: 104px;
    display: flex;
    margin: 0 auto;
    justify-content: right;
    align-items: center;
}
footer .container .inner .foot-text:nth-child(1) a {
    font-size: .9rem;
    color: #f05567;
    margin: 0 20px 0 0;
    padding: 0 20px 0 0 ;
    font-family: 'scd';
    border-right: 1px solid #fff;
}
footer .container .inner .foot-text:nth-child(2) a {
    font-size: .9rem;
    color: #ffffffb3;
    margin: 0 20px 0 0;
    font-family: 'scd';
}
footer .


event_handlers.PowerRelease = function()
        if not UIManager._entered_poweroff_stage then
            UIManager:unschedule(UIManager.poweroff_action)
            -- resume if we were suspended
            if self.screen_saver_mode then
                if self.screen_saver_lock then
                    UIManager.event_handlers.Suspend()
                else
                    UIManager.event_handlers.Resume()
                end
            else
                UIManager.event_handlers.Suspend()
            end
        end
    end
    UIManager.event_handlers.Charging = function()
        self:_beforeCharging()
    end
    UIManager.event_handlers.NotCharging = function()
        self:_afterNotCharging(


OD）暴伤提升至60%，自身每点速度，造成伤害+0.5%',	'6',	'3022003',	'',	'0',	'one',	'',	'2500',	'0',	'20',	'3',	'1',	'1',	'',	'0',	'1',	'1',	'4',	'',	'0',	'3.2',	'2',	'2',	'6',	'6',	'',	'12004',	'OnActionBegin',	'403100301',	'OnAfterHurt',	'403100310',	'OnBefourHurt',	'403100314',	'',	'',	'',	'1',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'403100305',	'',	'',	'4031003',	'星辰勘测',	'1',	'3',	'2',	'',	'cast2',	'5',	'提升30%暴伤，对敌方单体4段射击累计造成攻击320%能量伤害，每段伤害25%概率击退20%行动条。若在超速模式下则每段伤害击退概率提升至50%；超速模式下将目标击退至行动条末端，则剩余攻击造成伤害+200%（OD）暴伤提升至60%，自身每点速度，造成伤害+0.5%',	'6',	'3022003',	'',	'0',	'one',	'',	'2500',	'0',	'20',	'3',	'1',	'1',	'',	'0',	'1',	'1',	'4',	'',	'0',	'3.2',	'2',	'2',	'6',	'6',	'',	'12004',	'OnActionBegin',	'403100301',	'OnAfterHurt',	'403100310',	'OnBefourHurt',	'403100315',	'',	'',	'',	'1',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'403101301',	'',	'403101302',	'4031013',	'星辰勘测（OD）',	'1',	'4',	'2',	'',	'cast2',	'1',	'提升60%暴伤，对敌方单体4段射击累计造成攻击280%能量伤害，每段伤害25%概率击退20%行动条。若在超速模式下则每段伤害击退概率提升至50%；超速模式下将目标击退至行动条末端，则剩余攻击造成伤害+100%，自身每点机动值，造成伤害提升0.6%',	'6',	'3022003',	'',	'0',	'one',	'',	'2500',	'0',	'20',	'3',	'1',	'1',	'',	'0',	'1',	'1',	'4',	'',	'0',	'


0x1
	ldmia sp!, {r4-r11,lr}
	bx lr
_020D38AC:
	cmp r4, r2
	beq _020D38CC
	cmp r1, r0
	beq _020D38CC
	cmp r6, r8
	beq _020D38CC
	cmp r5, r3
	bne _020D38DC
_020D38CC:
	add sp, sp, #0x4
	mov r0, #0x1
	ldmia sp!, {r4-r11,lr}
	bx lr
_020D38DC:
	bl OS_DisableInterrupts
	ldrh r1, [sp, #0x2c]
	ldr r3, _020D3A80 ; =0x04000280
	ldr fp, _020D3A84 ; =0x04000290
	str r1, [sp, #0x0]
	ldr r2, [sp, #0x0]
	ldrh r1, [sp, #0x34]
	sub r9, r6, r2
	mov r2, #0x0
	mov r12, r9, lsl #0x8
	strh r2, [r3, #0x0]
	str r12, [r11, #0x0]
	ldrh r8, [sp, #0x30]
	ldrh r10, [sp, #0x38]
	ldrh r9, [sp, #0x28]
	ldr fp, _020D3A88 ; =0x04000298
	sub r12, r4, r1
	str r12, [r11, #0x0]
	str r2, [r11, #0x4]
	sub r11, r5, r8
	sub r2, r9, r10
_020D3930:
	ldrh r12, [r3, #0x0]
	ands r12, r12, #0x8000
	bne _020D3930
	ldr ip, _020D3A8C ; =0x040002A0
	mov r11, r11, lsl #0x8
	ldr lr, [r12, #0x0]
	mov r12, #0x0
	strh r12, [r3, #0x0]
	ldr r3, _020D3A84 ; =0x04000290
	cmp lr, #0x8000
	str r11, [r3, #0x0]
	ldr r3, _020D3A88 ; =0x04000298
	str r2, [r3, #0x0]
	mov r2, r3
	str r12, [r2, #0x4]
	bge _020D3980
	mov r2, #0x8000
	rsb r2, r2, #0x0
	cmp lr, r2
	bge _020D3994
_020D3980:
	bl OS_RestoreInterrupts
	add sp, sp, #0x4
	mov r0, #0x1
	ldmia sp!, {r4-r11,lr}
	bx lr
_020D3994:
	strh lr, [r7, #0x4]
	ldrsh r11, [r7, #0x4]
	add r3, r4, r1
	ldr r1, [sp, #0x0]
	add r4, r6, r1
	mul r1, r11, r3
	mov r3, r4, lsl #0x8
	sub r1, r3, r1
	mov r1, r1, lsl #0x9
	mov r1, r1, asr #0x10
	cmp r1, #0x8000
	bge _020D39CC
	cmp r1, r2
	bge _020D39E0
_020D39CC:
	bl OS_RestoreInterrupts
	add sp, sp, #0x4
	mov r0, #0x


 ID to be a valid identifier")
		return 0
	}

	userIDs := l.CheckTable(2)
	if userIDs == nil {
		l.ArgError(2, "expects user IDs to be a table")
		return 0
	}

	uids := make([]uuid.UUID, 0, userIDs.Len())
	conversionError := false
	userIDs.ForEach(func(k lua.LValue, v lua.LValue) {
		if v.Type() != lua.LTString {
			l.ArgError(2, "expects each user ID to be a string")
			conversionError = true
			return
		}
		userID, err := uuid.FromString(v.String())
		if err != nil {
			l.ArgError(2, "expects each user ID to be a valid identifier")
			conversionError = true
			return
		}
		if userID == uuid.Nil {
			l.ArgError(2, "cannot promote the root user")
			conversionError = true
			return
		}
		uids = append(uids, userID)
	})
	if conversionError {
		return 0
	}

	if len(uids) == 0 {
		return 0
	}

	cid := uuid.Nil
	callerID := l.OptString(3, "")
	if callerID != "" {
		cid, err = uuid.FromString(callerID)
		if err != nil {
			l.ArgError(3, "expects caller ID to be empty or a valid identifier")
			return 0
		}
	}

	if err := PromoteGroupUsers(l.Context(), n.logger, n.db, n.router, cid, groupID, uids); err != nil {
		l.RaiseError("error while trying to promote users in a group: %v", err.Error())
	}
	return 0
}

// @group groups
// @summary Demote users in a group.
// @param groupID(type=string) The ID of the group whose members are being demoted.
// @param userIDs(type=table) Table of user IDs to demote.
// @param callerID(type=string, optional=true) User ID of the caller, will apply permissions checks of the user. If empty defaults to system user and permission checks are bypassed.
// @return error(error) An optional error value if an error occurred.
func (n *RuntimeLuaNakamaModule) groupUsersDemote(l *lua.LState) int {
	groupID, err := uuid.FromString(l.CheckString(1))
	if err != nil {
		l.ArgError(1, "expects group ID to be a valid identifier")
		return 0
	}

	userIDs := l.CheckTable(2)
	if userIDs == nil {
		l.ArgError(2, "expects user IDs to be a table")
		return 0
	}

	uids := make([]uuid.UUID, 0, userIDs.Len())
	conversionError := false
	userIDs.ForEach(func(k lua.LValue, v lua.LValue) {
		if v.Type() != lua.LTString {
			l.ArgError(2, "expects each user ID to be a string")
			conversionError = true
			return
		}
		userID, err := uuid.FromString(v.String())
		if err != nil {
			l.ArgError(2, "expects each user ID to be a valid identifier")
			conversionError = true
			return
		}
		if userID == uuid.Nil {
			l.ArgError(2, "cannot demote the root user")
			conversionError = true
			return
		}
		uids = append(uids, userID)
	})
	if conversionError {
		return 0
	}

	if len(uids) == 0 {
		return 0
	}

	cid := uuid.Nil
	callerID := l.OptString(3, "")
	if callerID != "" {
		cid, err = uuid.FromString(callerID)
		if err != nil {
			l.ArgError(3, "expects caller ID to be empty or a valid identifier")
			return 0
		}
	}

	if err :=


/*
 *  This file is part of the WebKit open source project.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library 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
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public License
 *  along with this library; see the file COPYING.LIB.  If not, write to
 *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301, USA.
 */

#ifndef WebKitDOMHTMLHtmlElementPrivate_h
#define WebKitDOMHTMLHtmlElementPrivate_h

#include <WebCore/HTMLHtmlElement.h>
#include <webkitdom/WebKitDOMHTMLHtmlElement.h>

namespace WebKit {
WebKitDOMHTMLHtmlElement* wrapHTMLHtmlElement(WebCore::HTMLHtmlElement*);
WebKitDOMHTMLHtmlElement* kit(WebCore::HTMLHtmlElement*);
WebCore::HTMLHtmlElement* core(WebKitDOMHTMLHtmlElement*);
} // namespace WebKit

#endif /* WebKitDOMHTMLHtmlElementPrivate_h */


111-harriet felt a satisfaction which settled [her]111-harriet with [her]111-harriet own mind , and convinced [her]111-harriet , that let [Mr. Knightley]92-mr. knightley think or say what [he]92-mr. knightley would , [she]111-harriet had done nothing which [woman]749-woman 's friendship and [woman]749-woman 's feelings would not justify .
[He]92-mr. knightley had frightened [her]111-harriet a little about [Mr. Elton]95-mr. elton ; but when [she]111-harriet considered that [Mr. Knightley]92-mr. knightley could not have observed [him]92-mr. knightley as [she]111-harriet had done , neither with the interest , nor ( [she]111-harriet must be allowed to tell [herself]111-harriet , in spite of [Mr. Knightley]92-mr. knightley 's pretensions ) with the skill of such [an observer]<font c


|cff888888(Before diminishing returns)|r";
CR_PARRY_TOOLTIP = "Parry of %d adds %.2f%% Parry\n|cff888888(Before diminishing returns)|r";
CR_RANGED_EXPERTISE_TOOLTIP = "Reduces chance to be dodged by %s\nExpertise %s (+%.2F%% expertise)";
CR_SPEED_TOOLTIP = "Increases movement speed.|n|nSpeed: %s [+%.2f%%]";
CR_STURDINESS_TOOLTIP = "Prevents durability loss on items.";
CR_VERSATILITY_TOOLTIP = "Increases damage and healing done by %.2f%% and decreases damage taken by %.2f%%.\n\nVersatility: %s [%.2f%%/%.2f%%]";
CTRL_KEY = "CTRL key";
CTRL_KEY_TEXT = "CTRL";
CTRL_KEY_TEXT_ABBR = "c";
CURRENCY = "Currency";
CURRENCY_AMOUNT_REFUND_FORMAT = "%d %s";
CURRENCY_BUTTON_TOOLTIP_CLICK_INSTRUCTION = "<Click to view options>";
CURRENCY_FILTER_TYPE_CHARACTER = "%s Only";
CURRENCY_FILTER_TYPE_TRANSFERABLE = "All Warband Transferable";
CURRENCY_FILTER_TYPE_TRANSFERABLE_TOOLTIP = "Include currencies owned by other members of your Warband";
CURRENCY_GAINED = "You receive currency: %s";
CURRENCY_GAINED_MULTIPLE = "You receive currency: %sx%d";
CURRENCY_GAINED_MULTIPLE_BONUS = "You receive currency: %sx%d (Bonus Objective)";
CURRENCY_GAINED_MULTIPLE_OVERFLOW = "You receive currency: %sx%d (You've earned the maximum amount of %s)";
CURRENCY_LOST_FROM_DEATH = "You've lost %sx%d.";
CURRENCY_QUANTITY_TEMPLATE = "%1$d %2$s";
CURRENCY_RECEIVED_THIS_WEEK = "%s you have received so far this week:";
CURRENCY_SEASON_TOTAL = "Season Total Earned: %s%s";
CURRENCY_SEASON_TOTAL_MAXIMUM = "Season Maximum: %s%s/%s";
CURRENCY_THIS_WEEK = "%s This Week";
CURRENCY_THIS_WEEK_WITH_AMOUNT = "%s This Week: %d/%d";
CURRENCY_TOTAL = "Total: %s%s";
CURRENCY_TOTAL_CAP = "Total Maximum: %s%s/%s";
CURRENCY_TRANSFER_AMOUNT_LABEL = "Amount to Transfer";
CURRENCY_TRANSFER_CANCEL_BUTTON_LABEL = "Cancel";
CURRENCY_TRANSFER_CONFIRM_BUTTON_LABEL = "Confirm";
CURRENCY_TRANSFER_COST_TOOLTIP = "%d currency will be lost in transfer.";
CURRENCY_TRANSFER_DESTINATION = "To %s";
CURRENCY_TRANSFER_DISABLED_MAX_QUANTITY = "You cannot carry any more of this currency";
CURRENCY_TRANSFER_DISABLED_NO_VALID_SOURCES = "Your Warband does not have enough of this currency to transfer to you.";
CURRENCY_TRANSFER_DISABLED_UNMET_REQUIREMENTS = "You do not meet the requirements to use this currency.";
CURRENCY_TRANSFER_IN_PROGRESS = "Transfer in progress";
CURRENCY_TRANSFER_LOG_CURRENCY_FORMAT = "%s %s";
CURRENCY_TRANSFER_LOG_EMPTY = "No transfers found.";
CURRENCY_TRANSFER_LOG_TIME_FORMAT = "%s ago";
CURRENCY_TRANSFER_LOG_TITLE = "Transfer Log";
CURRENCY_TRANSFER_LOSS = "|cnNORMAL_FONT_COLOR:Amount Lost in Transfer:|r |cnH


using System.Collections.Generic;
using System;
using UnityEngine;

namespace Unity.MLAgents.SideChannels
{
    /// <summary>
    /// Side channels provide an alternative mechanism of sending/receiving data from Unity
    /// to Python that is outside of the traditional machine learning loop. ML-Agents provides
    /// some specific implementations of side channels, but users can create their own.
    ///
    /// To create your own, you'll need to create two, new mirrored classes, one in Unity (by
    /// extending <see cref="SideChannel"/>) and another in Python by extending a Python class
    /// also called SideChannel. Then, within your project, use
    /// <see cref="SideChannelManager.RegisterSideChannel"/> and
    /// <see cref="SideChannelManager.UnregisterSideChannel"/> to register and unregister your
    /// custom side channel.
    /// </summary>
    public abstract class SideChannel
    {
        // The list of messages (byte arrays) that need to be sent to Python via the communicator.
        // Should only ever be read and cleared by a ICommunicator object.
        internal List<byte[]> MessageQueue = new List<byte[]>();

        /// <summary>
        /// An int identifier for the SideChannel. Ensures that there is only ever one side channel
        /// of each type. Ensure the Unity side channels will be linked to their Python equivalent.
        /// </summary>
        /// <returns> The integer identifier of the Side


other);
}
<reponame>rodrimati1992/const_format_crates
#![allow(unreachable_code)]

use cfmt_b::for_examples::{Point3, Unit};
use cfmt_b::{assertc, assertc_eq, assertc_ne, call_debug_fmt};

struct Foo;

assertc!(true, "Hello, world {:?}", {
    impl Foo {
        const BAR: u32 = 10;
    }
},);

assertc!(true, concat!("Hello", r#"world {:?}"#), {
    impl Foo {
        const BAZ: u32 = 11;
    }
},);

// braces in arguments that take a formatter should work
assertc!(
    true,
    "{foo}\n{}",
    |fmt| {
        impl Foo {
            const FMT_FOO: u32 = 12;
        }
        call_debug_fmt!(array, [100u8], fmt)
    },
    foo = |fmt| {
        impl Foo {
            const FMT_BAR: u32 = 13;
        }
        call_debug_fmt!(array, [Unit, Unit], fmt)
    },
);

// single expressions that take the formatter should also work
assertc!(
    true,
    "{foo}\n{foo:#?}\n{}",
    |fmt| call_debug_fmt!(array, [100u8], fmt),
    foo = |fmt| call_debug_fmt!(array, [Unit, Unit], fmt),
);

#[test]
fn assertc_emits_formatting() {
    assert_eq!(Foo::BAR, 10);
    assert_eq!(Foo::BAZ, 11);
    assert_eq!(Foo::FMT_FOO, 12);
    assert_eq!(Foo::FMT_BAR, 13);
}

// The formatting code should not run if the assertion is true
assertc!(true, "{}", {
    let _x: u32 = loop {};
    _x
});

#[allow(unused_variables)]
const _: () = {
    const POINT: Point3 = Point3 { x: 3, y: 5, z: 8 };
    const OTHER_POINT: Point3 = Point3 {
        x: 13,
        y: 21,
        z: 34,
    };

    ////////////////////////////////////////////////////////////////////////////////
    ////        assertc_eq

    assertc_eq!(POINT, POINT);
    assertc_eq!(OTHER_POINT, OTHER_POINT);

    assertc_eq!(Unit, Unit);

    assertc_eq!(0u8, 0u8);
    assertc_eq!("foo", "foo", "hello");
    assertc_eq!(Some("foo"), Some("foo"), "hello {}", {
        let x: u32 = loop {};
        x
    });
    assertc_eq!([false], [false], "{}", |f| {
        loop {}
        f.write_str("hello")
    });

    ////////////////////////////////////////////////////////////////////////////////
    ////        assertc_ne
    assertc_ne!(POINT, OTHER_POINT);
    assertc_ne!(OTHER_POINT, POINT);

    assertc_ne!(0u8, 3u8);
    assertc_ne!("foo", "bar", "hello");
    assertc_ne!(Some("foo"), Some("bar"), "hello {}", {
        let x: u32 = loop {};
        x
    });
    assertc_ne!([false], [true], "{}", |f| {
        loop {}
        f.write_str("hello")
    });
};
// Copyright (C) 2019 <NAME> <<EMAIL>>
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use crate::GLDisplayX11;
use glib::ffi::gpointer;
use glib::translate::*;
use libc::uintptr_t;

impl GLDis


# Copyright 2019-2024 The kikuchipy developers
#
# This file is part of kikuchipy.
#
# kikuchipy 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.
#
# kikuchipy 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 kikuchipy. If not, see <http://www.gnu.org/licenses/>.

"""Color palettes for plotting Kikuchi bands."""

# Kikuchi band color palette from EDAX TSL Data Collection version 7
RED = (1, 0, 0)
GREEN = (0, 1, 0)
BLUE = (0, 0, 1)
YELLOW = (1, 1, 0)
CYAN = (0, 1, 1)
PINK = (1, 0, 1)
BROWN = (0.5, 0, 0)
EARTH = (0.5, 0.5, 0)
PURPLE = (0.5, 0, 0.5)
DARK_GREEN = (0, 0.5, 0)
DARKER_GREEN = (0, 0.5, 0.5)
DARK_BLUE = (0, 0, 0.5)
TSL_COLORS: list[tuple] = [
    RED,
    YELLOW,
    GREEN,
    BLUE,
    PINK,
    CYAN,
    BROWN,
    DARK_GREEN,
    PURPLE,
    DARK_BLUE,
    EARTH,
    DARKER_GREEN,
]


/*=auto=========================================================================

  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.

  See COPYRIGHT.txt
  or http://www.slicer.org/copyright/copyright.txt for details.

  Program:   3D Slicer
  Module:    $RCSfile: vtkMRMLLabelMapVolumeDisplayNode.h,v $
  Date:      $Date: 2006/03/19 17:12:29 $
  Version:   $Revision: 1.3 $

=========================================================================auto=*/

#ifndef __vtkMRMLLabelMapVolumeDisplayNode_h
#define __vtkMRMLLabelMapVolumeDisplayNode_h

#include "vtkMRMLVolumeDisplayNode.h"

class vtkImageAlgorithm;
class vtkImageMapToColors;

/// \brief MRML node for representing a volume display attributes.
///
/// vtkMRMLLabelMapVolumeDisplayNode nodes describe how volume is displayed.
class VTK_MRML_EXPORT vtkMRMLLabelMapVolumeDisplayNode : public vtkMRMLVolumeDisplayNode
{
  public:
  static vtkMRMLLabelMapVolumeDisplayNode *New();
  vtkTypeMacro(vtkMRMLLabelMapVolumeDisplayNode,vtkMRMLVolumeDisplayNode);
  void PrintSelf(ostream& os, vtkIndent indent) override;

  vtkMRMLNode* CreateNodeInstance() override;

  ///
  /// Get node XML tag name (like Volume, Model)
  const char* GetNodeTagName() override {return "LabelMapVolumeDisplay";}

  ///
  /// alternative method to propagate events generated in Display nodes
  void ProcessMRMLEvents ( vtkObject * /*caller*/,
                                   unsigned long /*event*/,
                                   void * /*callData*/ ) override;
  ///
  /// set default labels colormap
  void SetDefaultColorMap() override;

  /// Set the pipeline input
  void SetInputImageDataConnection(vtkAlgorithmOutput *imageDataConnection) override;

  /// Get the pipeline input
  vtkImageData* GetInputImageData() override;

  /// Gets the pipeline output
  vtkAlgorithmOutput* GetOutputImageDataConnection() override;

  void UpdateImageDataPipeline() override;

protected:
  vtkMRMLLabelMapVolumeDisplayNode();
  ~vtkMRMLLabelMapVolumeDisplayNode() override;
  vtkMRMLLabelMapVolumeDisplayNode(const vtkMRMLLabelMapVolumeDisplayNode&);
  void operator=(const vtkMRMLLabelMapVolumeDisplayNode&);

  vtkImageMapToColors *MapToColors;

};

#endif


ndDimAmount)

                clickArray?.let { array ->
                    var i = 0
                    while (i < array.size()) {
                        contentView!!.findViewById<View?>(array.keyAt(i))
                            ?.setOnClickListener(ViewClickWrapper(popupWindow, array.valueAt(i)))
                        i++
                    }
                }

                // 将 PopupWindow 的生命周期和 Activity 绑定在一起
                getActivity()?.let { activity ->
                    PopupWindowLifecycle.with(activity, popupWindow)
                }
                createListener?.onCreate(popupWindow)
            }
            return popupWindow!!
        }

        /**
         * 显示为下拉
         */
        open fun showAsDropDown(anchor: View?) {
            getActivity()?.let {
                if (it.isFinishing || it.isDestroyed) {
                    return
                }
                if (!isCreated()) {
                    create()
                }
                popupWindow?.showAsDropDown(anchor, xOffset, yOffset, gravity)
            }
        }

        /**
         * 显示在指定位置
         */
        open fun showAtLocation(parent: View?) {
            getActivity()?.let {
                if (it.isFinishing || it.isDestroyed) {
                    return
                }
                if (!isCreated()) {
                    create()
                }
                popupWindow?.showAtLocation(parent, gravity, xOffset, yOffset)
            }
        }

        override fun getContext(): Context {
            return context
        }

        /**
         * 当前 PopupWindow 是否创建了
         */
        open fun isCreated(): Boolean {
            return popupWindow != null
        }

        /**
         * 当前 PopupWindow 是否显示了
         */
        open fun isShowing(): Boolean {
            return isCreated() && popupWindow!!.isShowing
        }

        /**
         * 销毁当前 PopupWindow
         */
        open fun dismiss() {
            getActivity()?.let {
                if (it.isFinishing || it.isDestroyed) {
                    return
                }
                popupWindow?.dismiss()
            }
        }

        /**
         * 创建 PopupWindow 对象（子类可以重写此方法来改变 PopupWindow 类型）
         */
        protected open fun createPopupWindow(context: Context): BasePopupWindow {
            return BasePopupWindow(context)
        }

        /**
         * 获取 PopupWindow 的根布局
         */
        open fun getContentView(): View? {
            return contentView
        }

        /**
         * 根据 id 查找 View
         */
        override fun <V : View?> findViewById(@IdRes id: Int): V? {
            if (contentView == null) {
                // 没有 setContentView 就想 findViewById ?
                throw IllegalStateException("are you ok?")
            }
            return contentView!!.findViewById(id)
        }

        /**
         * 获取当前 PopupWindow 对象
         */
        open fun getPopupWindow(): BasePopupWindow? {
            return popupWindow
        }

        /**
         * 延迟执行
         */
        open fun post(runnable: Runnable) {
            if (isShowing()) {
                popupWindow!!.post(runnable)
            } else {
                addOnShowListener(ShowPostWrapper(runnable))
            }
        }

        /**
         * 延迟一段时间执行
         */
        open fun postDelayed(runnable: Runnable, delayMillis: Long) {
            if (isShowing()) {
                popupWindow!!.postDelayed(runnable, delayMillis)
            } else {
                addOnShowListener(ShowPostDelayedWrapper(runnable, delayMillis))
            }
        }

        /**
         * 在指定的时间执行
         */
        open fun postAt


pg = pg or {}
pg.equip_data_statistics_368 = {
	[85283] = {
		id = 85283,
		damage = "61/wave",
		base = 85280,
		weapon_id = {
			85283
		}
	},
	[85284] = {
		id = 85284,
		damage = "68/wave",
		base = 85280,
		weapon_id = {
			85284
		}
	},
	[85285] = {
		id = 85285,
		damage = "75/wave",
		base = 85280,
		weapon_id = {
			85285
		}
	},
	[85286] = {
		id = 85286,
		damage = "82/wave",
		base = 85280,
		weapon_id = {
			85286
		}
	},
	[85287] = {
		id = 85287,
		damage = "89/wave",
		base = 85280,
		weapon_id = {
			85287
		}
	},
	[85288] = {
		id = 85288,
		damage = "96/wave",
		base = 85280,
		weapon_id = {
			85288
		}
	},
	[85289] = {
		id = 85289,
		damage = "103/wave",
		base = 85280,
		weapon_id = {
			85289
		}
	},
	[85290] = {
		id = 85290,
		damage = "110/wave",
		base = 85280,
		weapon_id = {
			85290
		}
	},
	[85291] = {
		anti_siren = 100,
		damage = "110/wave",
		base = 85280,
		id = 85291,
		weapon_id = {
			85291
		}
	},
	[85300] = {
		name = "Triple 406mm MK-1 Main Gun Mount",
		speciality = "Volley",
		type = 4,
		tech = 1,
		descrip = "No description",
		value_2 = 12,
		icon = "85300",
		attribute_2 = "cannon",
		rarity = 3,
		damage = "50 x 3",
		nationality = 7,
		ammo = 3,
		value_3 = 0,
		id = 85300,
		torpedo_ammo = 0,
		property_rate = {},
		ammo_icon = {
			1
		},
		ammo_info = {
			{
				2,
				1570
			}
		},
		equip_info = {
			1,
			2,
			6,
			10,
			11,
			12
		},


的存储库，以便更好地隔离不同阶段的工作[3][4]。
- **合并策略**：制定合并策略，确保不同分支之间的代码合并过程既安全又高效，可以采用自动化工具来辅助完成代码审查和合并操作[3][4]。

### 5. 清理和优化
- **清理无用文件**：定期清理项目中的无用文件，包括临时文件、编译产生的文件、废弃的代码等，减少项目的冗余和混乱，提高文件的可读性和可维护性[1][2]。
- **定期整理和优化文件**：定期检查项目文件，并删除不再需要的文件和代码片段，保持工作环境的整洁高效[2]。

### 6. 访问权限管理
- **实施访问权限管理**：根据“最小权限原则”，为不同级别的员工分配恰如其分的文件访问权限，确保信息安全和团队成员能够及时获取到他们工作所需的信息[2]。

### 7. 分层架构
- **采用分层架构**：将代码库划分为多个层级，并限制不同层级之间的依赖关系，依赖只能从上层流向下层，确保代码的可维护性和可扩展性[5]。

通过遵循这些最佳实践，可以更好地管理和组织代码文件，提高项目的效率和可维护性。

Citations:
[1] https://worktile.com/kb/ask/988022.html
[2] https://qycloud.360.cn/hyzx/8552.html
[3] https://www.163.com/dy/article/IR0MKC2G0518CPJB.html
[4] https://blog.csdn.net/dunniang/article/details/136121845
[5] https://www.21cto.com/article/5794051437444038

在进行Telegram Bot开发和Crypto量化交易时，可能用到的比较有名的库包括：

1. **CCXT**：一个统一的加密货币交易所API，支持多个交易所，提供实时市场数据、下单和管理交易功能[2][4]。

2. **Freqtrade**：一个加密货币交易库，支持多个交易所，提供回测、绘图、机器学习等功能，并支持通过Telegram进行控制[4][7]。

3. **Cryptofeed**：一个用于加密货币市场数据的库，提供实时市场数据和NBBO（National Best Bid and Offer）信息[2]。

4. **Pycoingecko**：一个用于访问CoinGecko API的库，提供实时加密货币价格和市场数据[1][3]。

5. **Backtrader**：一个用于回测和交易的Python框架，支持多个数据源和交易策略[4]。

6. **FinTA**：一个用于技术分析的库，提供多种技术指标和分析工具[4]。

7. **YFinance**：一个用于下载Yahoo Finance市场数据的库，提供历史数据和实时数据[4]。

这些库可以帮助开发者快速构建和部署Telegram Bot进行Crypto量化交易。

Citations:
[1] https://www.byd


	}
			else if (path == 'ulong.loadUInt') {
				w.uint8(WASM.OpCode.i64_load32_u)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'long.load' || path == 'ulong.load') {
				w.uint8(WASM.OpCode.i64_load)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'long.storeSByte' || path == 'ulong.storeByte') {
				w.uint8(WASM.OpCode.i64_store8)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'long.storeShort' || path == 'ulong.storeUShort') {
				w.uint8(WASM.OpCode.i64_store16)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'long.storeInt' || path == 'ulong.storeUInt') {
				w.uint8(WASM.OpCode.i64_store32)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'long.store' || path == 'ulong.store') {
				w.uint8(WASM.OpCode.i64_store)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'float.load') {
				w.uint8(WASM.OpCode.f32_load)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'float.store') {
				w.uint8(WASM.OpCode.f32_store)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'double.load') {
				w.uint8(WASM.OpCode.f64_load)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'double.store') {
				w.uint8(WASM.OpCode.f64_store)
				w.varuintN(2, 32)
				w.varuintN(0, 32)
			}
			else if (path == 'int.clz' || path == 'uint.clz') w.uint8(WASM.OpCode.i32_clz)
			else if (path == 'int.ctz' || path == 'uint.ctz') w.uint8(WASM.OpCode.i32_ctz)
			else if (path == 'int.popcnt' || path == 'uint.popcnt') w.uint8(WASM.OpCode.i32_popcnt)
			else if (path == 'int.eqz' || path == 'uint.eqz') w.uint8(WASM.OpCode.i32_eqz)
			else if (path == 'long.clz' || path == 'ulong.clz') w.uint8(WASM.OpCode.i64_clz)
			else if (path == 'long.ctz' || path == 'ulong.ctz') w.uint8(WASM.OpCode.i64_ctz)
			else if (path == 'long.popcnt' || path == 'ulong.popcnt') w.uint8(WASM.OpCode.i64_popcnt)
			else if (path == 'long.eqz' || path == 'ulong.eqz') w.uint8(WASM.OpCode.i64_eqz)
			else if (path == 'float.abs') w.uint8(WASM.OpCode.f32_abs)
			else if (path == 'float.


->Node->Parent->Index );
         }
         else
         {
            statusBar1->Text = "No parent node.";
         }
      }
      // </snippet2>

      // <snippet3>
   private:
      void treeView1_AfterCollapse( Object^ /*sender*/, TreeViewEventArgs^ e )
      {
         // Create a copy of the e.Node from its Handle.
         TreeNode^ tn = TreeNode::FromHandle( e->Node->TreeView, e->Node->Handle );
         tn->Text = String::Concat( tn->Text, "Copy" );

         // Remove the e.Node so it can be replaced with tn.
         e->Node->Remove();

         // Add tn to the TreeNodeCollection.
         treeView1->Nodes->Add( tn );
      }
      // </snippet3>
   };
}

[STAThread]
int main()
{
   Application::Run( gcnew Foo::Form1 );
}

#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>

// The following code example demonstrates the use of ListView.Clear()
// and ListViewItem.Selected members.
//
// This snippet example requires a form that contains a ListView
// called ListView1, on a form, with the View property set to Details.
// The form also requires a button called button1.

using namespace System::Windows::Forms;
using namespace System;

public ref class Form1: public System::Windows::Forms::Form
{
internal:
   System::Windows::Forms::Button^ Button1;
   System::Windows::Forms::ListView^ ListView1;

public:
   Form1()
      : Form()
   {
      InitializeListView();
      this->Button1 = gcnew System::Windows::Forms::Button;
      this->SuspendLayout();
      this->Button1->Location = System::Drawing::Point( 80, 192 );
      this->Button1->Name = "Button1";
      this->Button1->Size = System::Drawing::Size( 96, 32 );
      this->Button1->TabIndex = 1;
      this->Button1->Text = "See lunch menu";
      this->Button1->Click += gcnew System::EventHandler( this, &Form1::Button1_Click );
      this->ClientSize = System::Drawing::Size( 292, 266 );
      this->Controls->Add( this->Button1 );
      this->Controls->Add( this->ListView1 );
      this->ClientSize = System::Drawing::Size( 292, 266 );
      this->Name = "Form1";
      this->Text = "Meal Selection";
      this->ResumeLayout( false );
   }

   //<snippet1>
   //<snippet2>
private:
   void InitializeListView()
   {
      // Set up the inital values for the ListView and populate it.
      this->ListView1 = gcnew ListView;
      this->ListView1->Dock = DockStyle::Top;
      this->ListView1->Location = System::Drawing::Point( 0, 0 );
      this->ListView1->Size = System::Drawing::Size( 292, 130 );
      this->ListView1->View = View::Details;
      this->ListView1->FullRowSelect = true;
      array<String^>^breakfast = {"Continental Breakfast","Pancakes and Sausage","Denver Omelet","Eggs & Bacon","Bagel & Cream Cheese"};
      array<String^>^breakfastPrices = {"3.09","4.09","4.19","4.79","2.09"};
      PopulateMenu( "Breakfast", breakfast, breakfastPrices );
   }

   void PopulateMenu( String^ meal, array<String^>^menuItems, array<String^>^menuPrices )
   {
      ColumnHeader^ columnHeader1 = gcnew ColumnHeader;
      columnHeader1->Text = String::Concat( meal, " Choices" );
      columnHeader1->TextAlign = HorizontalAlignment::Left;
      columnHeader1->Width = 146;
      ColumnHeader^ columnHeader2 = gcnew ColumnHeader;
      columnHeader2->Text = "Price";
      columnHeader2->TextAlign = HorizontalAlignment::Center;
      columnHeader2->Width = 142;
      this->ListView1->Columns->Add( col


ngLiteral("allowWeb")] =
			m_history->hasFlag(SessionHistory::AllowWeb);
		config[QStringLiteral("preferWebSockets")] =
			m_config->getConfigBool(config::PreferWebSockets);
	}
#endif
	if(supportsAutoReset()) {
		config.insert(
			QStringLiteral("resetThresholdMin"),
			m_config->getConfigSize(config::MinimumAutoresetThreshold));
	}
	if(supportsSizeLimit()) {
		config.insert(
			QStringLiteral("maxSize"), int(m_history->currentSizeLimit()));
	}
	addToHistory(net::ServerReply::makeSessionConf(config, getHistoryIndex()));
	emit sessionAttributeChanged(this);
}

void Session::sendUpdatedBanlist(bool clearForNonOperators)
{
	// Normal users don't get to see the actual IP addresses, but moderators and
	// local users do, since they have access to the server itself anyway.
	class LazyBanList {
	public:
		const net::Message &get(SessionHistory *history, bool sensitive)
		{
			if(sensitive) {
				if(m_sensitiveMsg.isNull()) {
					m_sensitiveMsg = make(history, true);
					// Theoretically the ban list could be so large that the
					// full information doesn't fit into a message, but the
					// condensed version does. Try to fall back in that case.
					if(m_sensitiveMsg.isNull()) {
						m_sensitiveMsg = get(history, false);
					}
				}
				return m_sensitiveMsg;
			} else {
				if(m_normalMsg.isNull()) {
					m_normalMsg = make(history, false);
				}
				return m_normalMsg;
			}
		}

		const net::Message &getBlank()
		{
			if(m_blankMsg.isNull()) {
				m_blankMsg = net::ServerReply::makeSessionConf(
					{{QStringLiteral("banlist"), QJsonArray()}});
			}
			return m_blankMsg;
		}

	private:
		net::Message make(SessionHistory *history, bool showSensitive)
		{
			return net::ServerReply::makeSessionConf(
				{{QStringLiteral("banlist"),
				  history->banlist().toJson(showSensitive)}});
		}

		net::Message m_normalMsg;
		net::Message m_sensitiveMsg;
		net::Message m_blankMsg;
	} banlist;

	for(Client *c : m_clients) {
		bool mod = c->isModerator();
		if(mod || c->isOperator()) {
			c->sendDirectMessage(
				banlist.get(m_history, mod || c->peerAddress().isLoopback()));
		} else if(clearForNonOperators) {
			c->sendDirectMessage(banlist.getBlank());
		}
	}
}

void Session::sendUpdatedAnnouncementList()
{
	// The announcement list is not usually included in the sessionconf.
	QJsonArray announcements;
	for(const sessionlisting::Announcement &a :
		m_announcements->getAnnouncements(this)) {
		announcements.append(
			QJsonObject{
				{QStringLiteral("url"), a.apiUrl.toString()},
			});
	}
	directToAll(
		net::ServerReply::makeSessionConf(
			{{QStringLiteral("announcements"), announcements}}));
}

void Session::sendUpdatedMuteList()
{
	// The mute list is not usually included in the sessionconf.
	QJsonArray muted;
	for(const Client *c : m_clients) {
		if(c->isMuted()) {
			muted.append(c->id());
		}
	}
	directToAll(
		net::ServerReply::makeSessionConf({{QStringLiteral("muted"), muted}}));
}

void Session::sendUpdatedAuthList()
{
	QHash<QString, bool> onlineAuthIds;
	for(Client *c : m_clients) {
		const QString &authId = c->authId


lint ul").focus();
  return true;
};
var closeLintPanel = (view) => {
  let field = view.state.field(lintState, false);
  if (!field || !field.panel)
    return false;
  view.dispatch({ effects: togglePanel.of(false) });
  return true;
};
var nextDiagnostic = (view) => {
  let field = view.state.field(lintState, false);
  if (!field)
    return false;
  let sel = view.state.selection.main, next = field.diagnostics.iter(sel.to + 1);
  if (!next.value) {
    next = field.diagnostics.iter(0);
    if (!next.value || next.from == sel.from && next.to == sel.to)
      return false;
  }
  view.dispatch({ selection: { anchor: next.from, head: next.to }, scrollIntoView: true });
  return true;
};
var lintKeymap = [
  { key: "Mod-Shift-m", run: openLintPanel, preventDefault: true },
  { key: "F8", run: nextDiagnostic }
];
var lintConfig = /* @__PURE__ */ Facet.define({
  combine(input) {
    return Object.assign({ sources: input.map((i) => i.source) }, combineConfig(input.map((i) => i.config), {
      delay: 750,
      markerFilter: null,
      tooltipFilter: null,
      needsRefresh: null
    }, {
      needsRefresh: (a, b) => !a ? b : !b ? a : (u) => a(u) || b(u)
    }));
  }
});
function assignKeys(actions) {
  let assigned = [];
  if (actions)
    actions:
      for (let { name: name2 } of actions) {
        for (let i = 0; i < name2.length; i++) {
          let ch = name2[i];
          if (/[a-zA-Z]/.test(ch) && !assigned.some((c) => c.toLowerCase() == ch.toLowerCase())) {
            assigned.push(ch);
            continue actions;
          }
        }
        assigned.push("");
      }
  return assigned;
}
function renderDiagnostic(view, diagnostic, inPanel) {
  var _a3;
  let keys = inPanel ? assignKeys(diagnostic.actions) : [];
  return crelt("li", { class: "cm-diagnostic cm-diagnostic-" + diagnostic.severity }, crelt("span", { class: "cm-diagnosticText" }, diagnostic.renderMessage ? diagnostic.renderMessage() : diagnostic.message), (_a3 = diagnostic.actions) === null || _a3 === void 0 ? void 0 : _a3.map((action, i) => {
    let fired = false, click = (e) => {
      e.preventDefault();
      if (fired)
        return;
      fired = true;
      let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);
      if (found)
        action.apply(view, found.from, found.to);
    };
    let { name: name2 } = action, keyIndex = keys[i] ? name2.indexOf(keys[i]) : -1;
    let nameElt = keyIndex < 0 ? name2 : [
      name2.slice(0, keyIndex),
      crelt("u", name2.slice(keyIndex, keyIndex + 1)),
      name2.slice(keyIndex + 1)
    ];
    return crelt("button", {
      type: "button",
      class: "cm-diagnosticAction",
      onclick: click,
      onmousedown: click,
      "aria-label": ` Action: ${name2}${keyIndex < 0 ? "" : ` (access key "${keys[i]})"`}.`
    }, nameElt);
  }), diagnostic.source && crelt("div", { class: "cm-diagnosticSource" }, diagnostic.source));
}
var DiagnosticWidget = class extends WidgetType {
  constructor(diagnostic) {
    super();


_string.as_str().trim());
    }

    if let Some(processor_frequency_info) = cpuid.get_processor_frequency_info() {
        let processor_base_frequency = processor_frequency_info.processor_base_frequency();
        log!("CPU {} MHz\n", processor_base_frequency);
    }
}
<gh_stars>100-1000
use std::collections::HashMap;

use super::sharing_components::ShareComponents;
use crate::{
    analysis::LiveRangeAnalysis,
    ir::{self, traversal::Named},
};

/// Given a [LiveRangeAnalysis] that specifies the registers alive at each
/// group, minimize the registers used for each component.
///
/// This works by constructing an interference graph for each alive register.
/// If two registers are ever alive at the same time, then there is an edge
/// between them in the interference graph. Additionally, if two registers
/// are different sizes, then there is an edge between them.
///
/// A greedy graph coloring algorithm on the interference graph
/// is used to assign each register a name.
///
/// This pass only renames uses of registers. [DeadCellRemoval] should be run after this
/// to actually remove the register definitions.
#[derive(Default)]
pub struct MinimizeRegs {
    live: LiveRangeAnalysis,
    rewrites: HashMap<ir::Id, ir::RRC<ir::Cell>>,
}

impl Named for MinimizeRegs {
    fn name() -> &'static str {
        "minimize-regs"
    }
    fn description() -> &'static str {
        "use the fewest possible registers"
    }
}

impl ShareComponents for MinimizeRegs {
    fn initialize(
        &mut self,
        comp: &ir::Component,
        _sigs: &ir::LibrarySignatures,
    ) {
        self.live = LiveRangeAnalysis::new(comp, &*comp.control.borrow());
    }

    fn lookup_group_conflicts(&self, group_name: &ir::Id) -> Vec<ir::Id> {
        self.live.get(group_name).iter().cloned().collect()
    }

    fn cell_filter(&self, cell: &ir::Cell) -> bool {
        if let Some(name) = cell.type_name() {
            name == "std_reg"
        } else {
            false
        }
    }

    fn custom_conflicts<F>(&self, comp: &ir::Component, mut add_conflicts: F)
    where
        F: FnMut(Vec<ir::Id>),
    {
        for group in comp.groups.iter() {
            let conflicts = self.live.get(group.borrow().name());
            add_conflicts(conflicts.iter().cloned().collect());
        }
    }

    fn set_rewrites(&mut self, rewrites: HashMap<ir::Id, ir::RRC<ir::Cell>>) {
        self.rewrites = rewrites;
    }

    fn get_rewrites(&self) -> &HashMap<ir::Id, ir::RRC<ir::Cell>> {
        &self.rewrites
    }
}
<reponame>helloer/soldank
#![crate_type = "lib"]
#![crate_name = "gfx2d"]

#[macro_use]
extern crate gfx;
extern crate cgmath;
extern crate gfx_core;
extern crate gfx_device_gl;
extern crate gfx_window_glutin;
extern crate glutin;
extern crate image;

include!("gfx_types.rs");

mod batch;
mod color;
mod context;
mod spritesheet;
mod texture;
mod transform;

pub mod binpack;
pub mod math;

pub use batch::DrawBatch;
pub use batch::DrawSlice;
pub use color::Color;
pub use color::rgb;
pub use color::rgba;
pub use context::Gfx2dContext;
pub use context::Vertex;
pub use context::vertex;
pub use gfx


y>
    public float ScoreThreshold { get; set; }

    /// <summary>
    /// Parses a YAML mapping node into an NMS configuration object.
    /// </summary>
    /// <param name="config">The YAML mapping node containing NMS configuration settings.</param>
    /// <returns>An NMS configuration object.</returns>
    public static NMSConfig Parse(YamlMappingNode config)
    {
        return new NMSConfig
        {
            KeepTopK = int.Parse(((YamlScalarNode)config["keep_top_k"]).Value),
            Name = ((YamlScalarNode)config["name"]).Value,
            NmsThreshold = float.Parse(((YamlScalarNode)config["nms_threshold"]).Value),
            NmsTopK = int.Parse(((YamlScalarNode)config["nms_top_k"]).Value),
            ScoreThreshold = float.Parse(((YamlScalarNode)config["score_threshold"]).Value)
        };
    }
}


ide-layout-dashboard,
.workspace-tab-header[data-type="canvas"] svg.lucide-layout-dashboard,
.menu-item svg.lucide-layout-dashboard {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' data-name='Layer 1' viewBox='0 0 24 24' width='100%25' height='100%25'%3E%3Cpath d='M19,0H5C2.24,0,0,2.24,0,5v14c0,2.76,2.24,5,5,5h14c2.76,0,5-2.24,5-5V5c0-2.76-2.24-5-5-5Zm3,19c0,1.65-1.35,3-3,3H5c-1.65,0-3-1.35-3-3V5c0-1.65,1.35-3,3-3h14c1.65,0,3,1.35,3,3v14ZM5,7.5c0-1.38,1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5-1.12,2.5-2.5,2.5-2.5-1.12-2.5-2.5Zm9,1.5v-3c0-.55,.45-1,1-1h3c.55,0,1,.45,1,1v3c0,.55-.45,1-1,1h-3c-.55,0-1-.45-1-1Zm-3.83,6.34c.39,.39,.39,1.02,0,1.41l-2,2c-.39,.39-1.02,.39-1.41,0l-2-2c-.39-.39-.39-1.02,0-1.41l2-2c.39-.39,1.02-.39,1.41,0l2,2Zm9.28,2.19c.4,.64-.06,1.47-.81,1.47h-4.28c-.75,0-1.21-.83-.81-1.47l2.14-3.42c.38-.6,1.25-.6,1.63,0l2.14,3.42Z'/%3E%3C/svg%3E%0A");
}

// Graph Controls Setting Button Icon
.graph-controls-button[aria-label="Open graph settings"] svg.lucide-settings {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Outline' viewBox='0 0 24 24' width='100%25' height='100%25'%3E%3Cpath d='M1,4.75H3.736a3.728,3.728,0,0,0,7.195,0H23a1,1,0,0,0,0-2H10.931a3.728,3.728,0,0,0-7.195,0H1a1,1,0,0,0,0,2ZM7.333,2a1.75,1.75,0,1,1-1.75,1.75A1.752,1.752,0,0,1,7.333,2Z'/%3E%3Cpath d='M23,11H20.264a3.727,3.727,0,0,0-7.194,0H1a1,1,0,0,0,0,2H13.07a3.727,3.727,0,0,0,7.194,0H23a1,1,0,0,0,0-2Zm-6.333,2.75A1.75,1.75,0,1,1,18.417,12,1.752,1.752,0,0,1,16.667,13.75Z'/%3E%3Cpath d='M23,


delegates_11), (void*)value);
	}
};

// Native definition for P/Invoke marshalling of System.MulticastDelegate
struct MulticastDelegate_t_marshaled_pinvoke : public Delegate_t_marshaled_pinvoke
{
	Delegate_t_marshaled_pinvoke** ___delegates_11;
};
// Native definition for COM marshalling of System.MulticastDelegate
struct MulticastDelegate_t_marshaled_com : public Delegate_t_marshaled_com
{
	Delegate_t_marshaled_com** ___delegates_11;
};

// System.SystemException
struct SystemException_t5380468142AA850BE4A341D7AF3EAB9C78746782  : public Exception_t
{
public:

public:
};

// System.Type
struct Type_t  : public MemberInfo_t
{
public:
	// System.RuntimeTypeHandle System.Type::_impl
	RuntimeTypeHandle_t7B542280A22F0EC4EAC2061C29178845847A8B2D  ____impl_9;

public:
	inline static int32_t get_offset_of__impl_9() { return static_cast<int32_t>(offsetof(Type_t, ____impl_9)); }
	inline RuntimeTypeHandle_t7B542280A22F0EC4EAC2061C29178845847A8B2D  get__impl_9() const { return ____impl_9; }
	inline RuntimeTypeHandle_t7B542280A22F0EC4EAC2061C29178845847A8B2D * get_address_of__impl_9() { return &____impl_9; }
	inline void set__impl_9(RuntimeTypeHandle_t7B542280A22F0EC4EAC2061C29178845847A8B2D  value)
	{
		____impl_9 = value;
	}
};

struct Type_t_StaticFields
{
public:
	// System.Reflection.MemberFilter System.Type::FilterAttribute
	MemberFilter_t25C1BD92C42BE94426E300787C13C452CB89B381 * ___FilterAttribute_0;
	// System.Reflection.MemberFilter System.Type::FilterName
	MemberFilter_t25C1BD92C42BE94426E300787C13C452CB89B381 * ___FilterName_1;
	// System.Reflection.MemberFilter System.Type::FilterNameIgnoreCase
	MemberFilter_t25C1BD92C42BE94426E300787C13C452CB89B381 * ___FilterNameIgnoreCase_2;
	// System.Object System.Type::Missing
	RuntimeObject * ___Missing_3;
	// System.Char System.Type::Delimiter
	Il2CppChar ___Delimiter_4;
	// System.Type[] System.Type::EmptyTypes
	TypeU5BU5D_t7FE623A666B49176DE123306221193E888A12F5F* ___EmptyTypes_5;
	// System.Reflection.Binder System.Type::defaultBinder
	Binder_t4D5CB06963501D32847C057B57157D6DC49CA759 * ___defaultBinder_6;

public:
	inline static int32_t get_offset_of_FilterAttribute_0() { return static_cast<int32_t>(offsetof(Type_t_StaticFields, ___FilterAttribute_0)); }
	inline MemberFilter_t25C1BD92C42BE94426E300787C13C452CB89B381 * get_FilterAttribute_0() const { return ___FilterAttribute_0; }
	inline MemberFilter_t25C1BD92C42BE94426E300787C13C452CB89B381 ** get_address_of_FilterAttribute_0() { return &___FilterAttribute_0; }
	inline void set_FilterAttribute_0(MemberFilter_t25C1BD92C42BE94426E300787C13C45


as${rrollTimes} ${rrollName}` : `.rras ${rrollName}`;
                }
            }
        }
    }
];

module.exports = {
    rollDiceCommand: rollDiceCommand,
    initialize: initialize,
    getHelpMessage: getHelpMessage,
    prefixs: prefixs,
    gameType: gameType,
    gameName: gameName,
    discordCommand: discordCommand
};if (!process.env.mongoURL) return;

const oneMinute = (process.env.DEBUG) ? 1 : 60_000;
const THIRTY_MINUTES = (process.env.DEBUG) ? 1 : 60_000 * 30;
const checkMongodb = require('./dbWatchdog.js');
const schema = require('./schema.js');
exports.rollbase = require('../roll/rollbase');

const retry = { number: 0, times: 0 };
let tempSwitchV2 = [{ groupid: '', SwitchV2: false }];

async function EXPUP(groupid, userid, displayname, displaynameDiscord, membercount, tgDisplayname, discordMessage) {
    if (!groupid) return;

    if (retry.number >= 10 && (Date.now() - retry.times) < THIRTY_MINUTES) return;
    if (retry.number >= 10) retry.number = 0;

    let reply = { text: '', status: '' };

    const filterSwitchV2 = tempSwitchV2.find(group => group.groupid == groupid);
    if (filterSwitchV2 && !filterSwitchV2.SwitchV2) return;
    if (!checkMongodb.isDbOnline()) return;

    const gpInfo = await schema.trpgLevelSystem.findOne({ groupid, SwitchV2: true }).cache(60).catch(error => {
        console.error('level #26 mongoDB error:', error.name, error.reason);
        checkMongodb.dbErrOccurs();
        retry.number++;
        retry.times = new Date();
        if (retry.number > 20 && !checkMongodb.isDbOnline()) {
            reply.respawn = true;
            return reply;
        }
    });

    if (!filterSwitchV2) {
        tempSwitchV2.push({ groupid, SwitchV2: gpInfo ? gpInfo.SwitchV2 : false });
    }

    if (!gpInfo || !gpInfo.SwitchV2) return;
    if (!checkMongodb.isDbOnline()) return;

    let userInfo = await schema.trpgLevelSystemMember.findOne({ groupid, userid }).catch(error => {
        console.error('level #46 mongoDB error:', error.name, error.reason);
        checkMongodb.dbErrOccurs();
    });

    if (!userInfo) {
        await newUser(gpInfo, groupid, userid, displayname, displaynameDiscord, tgDisplayname);
        return;
    }

    userInfo.name = tgDisplayname || displaynameDiscord || displayname || '無名';
    if (userInfo.decreaseEXPTimes > 0) reply.status += "🧟♂🧟♀";
    if (userInfo.multiEXPTimes > 0) reply.status += "🧙♂🧙♀";
    if (userInfo.stopExp > 0) reply.status += "☢☣";

    if ((Date.now() - userInfo.LastSpeakTime) < oneMinute) return reply;

    if (userInfo.stopExp > 0) {
        userInfo.stopExp--;
        await userInfo.save();
        return reply;
    }

    let exp = await exports.rollbase.Dice(9) + 15;
    if (Number.isNaN(userInfo.decreaseEXPTimes)) userInfo.decreaseEXPTimes = 0;

    switch (true) {
        case (userInfo.decreaseEXPTimes > 0): {
            userInfo.EXP -= userInfo.decreaseEXP;
            userInfo.decreaseEXPTimes--;
            if (userInfo.decre


){const n=function(t,r){const n=t.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);if(n){const[t,e,o,i]=n.slice(1),a=r??parseFloat(i);return f.fromRGB({r:parseInt(t,10),g:parseInt(e,10),b:parseInt(o,10)},Number.isNaN(a)?void 0:a)}return null}(t,r);if(n)return n;const e=function(t,r){const n=t.match(/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i);if(n){const t=n[1];return f.fromHex(t,r)}return null}(t,r);if(e)return e;const o=function(t,r){const n=t.match(/^hsla?\\((\\d+),\\s*(\\d+)%,\\s*(\\d+)%(?:,\\s*(\\d*(?:\\.\\d+)?))?\\)$/);if(n){const[t,e,o,i]=n.slice(1),a=r??parseFloat(i);return f.fromHSL({h:parseInt(t,10),s:parseInt(e,10)/100,l:parseInt(o,10)/100},Number.isNaN(a)?void 0:a)}return null}(t,r);if(o)return o;throw new Error(`Invalid or unsupported CSS color: ${t}`)}toCSS(r){switch(r){case t.HEX:return`#${e((n=this).rgb.r)}${e(n.rgb.g)}${e(n.rgb.b)}`;case t.HEXA:return function(t){return`#${e(t.rgb.r)}${e(t.rgb.g)}${e(t.rgb.b)}${e(Math.floor(255*t.a))}`}(this);case t.RGB:return function(t){return`rgb(${t.rgb.r}, ${t.rgb.g}, ${t.rgb.b})`}(this);case t.RGBA:return function(t){return`rgba(${t.rgb.r}, ${t.rgb.g}, ${t.rgb.b}, ${t.a})`}(this);case t.HSL:return function(t){const{h:r,s:n,l:e}=t.hsl;return`hsl(${r}, ${o(n)}, ${o(e)})`}(this);case t.HSLA:return function(t){const{h:r,s:n,l:e}=t.hsl;return`hsla(${r}, ${o(n)}, ${o(e)}, ${t.a})`}(this);default:throw new Error("Invalid or unsupported CSSColorFormat!")}var n}contrastAdjust(t,r=4.5){let n=f.BLACK;return"light"===t&&(n=f.WHITE),function(t,r,n){if(r!==f.BLACK&&r!==f.WHITE)throw new Error("Only supports contrast calculation between black and white.");let e=c(t,r);if(e>=n)return t;let o=t.hsv.v,i=r===f.WHITE?-.02:.02,a=Number.MAX_VALUE,s=null;for(let r=0;r<100&&a>.07&&o>=0&&o<=1;r++){o=Math.min(o+i,1),s=f.fromHSV({h:


new_depth > depth[i] {
				depth[i] = new_depth;
				for c in self.successors(i).unwrap() {
					if c != i {
						stack.push((c, new_depth + 1))
					}
				}
			}
		}

		let mut ordered_components: Vec<_> = (0..self.components.len()).collect();
		ordered_components.sort_unstable_by_key(|i| depth[*i]);
		ordered_components
	}
}

fn strong_connect<G: ?Sized + SccGraph>(
	graph: &G,
	v: G::Vertex,
	stack: &mut Vec<G::Vertex>,
	map: &mut HashMap<G::Vertex, Data>,
	components: &mut Vec<Vec<G::Vertex>>,
) -> u32 {
	let index = map.len() as u32;
	stack.push(v);
	map.insert(
		v,
		Data {
			index,
			lowlink: index,
			on_stack: true,
			component: 0,
		},
	);

	// Consider successors of v
	for &w in graph.successors(v) {
		let new_v_lowlink = match map.get(&w) {
			None => {
				// Successor w has not yet been visited; recurse on it
				let w_lowlink = strong_connect(graph, w, stack, map, components);
				Some(std::cmp::min(map[&v].lowlink, w_lowlink))
			}
			Some(w_data) => {
				if w_data.on_stack {
					// Successor w is in stack S and hence in the current SCC
					// If w is not on stack, then (v, w) is an edge pointing to an SCC already found and must be ignored
					// Note: The next line may look odd - but is correct.
					// It says w.index not w.lowlink; that is deliberate and from the original paper
					Some(std::cmp::min(map[&v].lowlink, w_data.index))
				} else {
					None
				}
			}
		};

		if let Some(new_v_lowlink) = new_v_lowlink {
			map.get_mut(&v).unwrap().lowlink = new_v_lowlink;
		}
	}

	let lowlink = map[&v].lowlink;

	// If v is a root node, pop the stack and generate an SCC
	if lowlink == map[&v].index {
		// Start a new strongly connected component
		let mut component = Vec::new();

		loop {
			let w = stack.pop().unwrap();
			let w_data = map.get_mut(&w).unwrap();
			w_data.on_stack = false;
			w_data.component = components.len();

			// Add w to current strongly connected component
			component.push(w);

			if w == v {
				break;
			}
		}

		// Output the current strongly connected component
		components.push(component)
	}

	lowlink
}
<reponame>0xpr03/tsclientlib<gh_stars>0
//! This library implements the TeamSpeak3 protocol.
//!
//! For a usable library to build clients and bots, you should take a look at
//! [`tsclientlib`](https://github.com/ReSpeak/tsclientlib), which provides a
//! convenient interface to this library.
//!
//! If you are searching for a usable client, [Qint](https://github.com/ReSpeak/Qint)
//! is a cross-platform TeamSpeak client, which is using this library (more
//! correctly, it is using `tsclientlib`).
//!
//! For more info on this project, take a look at the
//! [tsclientlib README](https://github.com/ReSpeak/tsclientlib).

use std::fmt;
use std::num::ParseIntError;

use serde::de::{Unexpected, Visitor};
use serde::{Deserialize


_inner

	.byte		3	/* DW_LNS_advance_line */
	.sleb128	1	/* ... to 2 */

	.byte		1	/* DW_LNS_copy */

	.byte		0	/* DW_LNE_set_ad


"""add_original_schedule_name

Revision ID: 43f385b318d4
Revises: 15354d56545a
Create Date: 2023-09-26 07:56:45.008277

"""

import sqlalchemy as sa
from alembic import op
from sqlalchemy.orm import Session

from zimfarm_backend.db.models import RequestedTask, Schedule, Task

# revision identifiers, used by Alembic.
revision = "43f385b318d4"
down_revision = "15354d56545a"
branch_labels = None
depends_on = None

def upgrade() -> None:
    bind = op.get_bind()
    session = Session(bind=bind)

    # add original_schedule_name as nullable
    op.add_column(
        "requested_task",
        sa.Column("original_schedule_name", sa.String(), nullable=True),
    )

    # set original_schedule_name for requested tasks with existing schedule
    session.execute(
        sa.update(RequestedTask)
        .where(RequestedTask.schedule_id != None)  # noqa: E711
        .values(
            original_schedule_name=sa.select(Schedule.name)
            .where(Schedule.id == RequestedTask.schedule_id)
            .scalar_subquery()
        )
    )

    # set original_schedule_name for requested tasks without existing schedule
    session.execute(
        sa.update(RequestedTask)
        .where(RequestedTask.schedule_id == None)  # noqa: E711
        .values(original_schedule_name="<unknown>")
    )

    # set original_schedule_name as not nullable
    op.alter_column("requested_task", "original_schedule_name", nullable=False)

    # add original_schedule_name as nullable
    op.add_column(
        "task", sa.Column("original_schedule_name", sa.String(), nullable=True)
    )

    # set original_schedule_name for requested tasks with existing schedule
    session.execute(
        sa.update(Task)
        .where(Task.schedule_id != None)  # noqa: E711
        .values(
            original_schedule_name=sa.select(Schedule.name)
            .where(Schedule.id == Task.schedule_id)
            .scalar_subquery()
        )
    )

    # set original_schedule_name for requested tasks without existing schedule
    session.execute(
        sa.update(Task)
        .where(Task.schedule_id == None)  # noqa: E711
        .values(original_schedule_name="<unknown>")
    )

    # set original_schedule_name as not nullable
    op.alter_column("task", "original_schedule_name", nullable=False)

    # ### end Alembic commands ###

def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column("task", "original_schedule_name")
    op.drop_column("requested_task", "original_schedule_name")
    # ### end Alembic commands ###


in IDEA.

Fix tab closure code taking too long in the event thread.

Remove superfluous "blackd already started" notification.

0.6.0

Releases that are long overdue are becoming my jam! Oh, well.

Support for targeting Python 3.11

Support for --preview option.

Perform validation before running our own blackd instance (h/t to @KotlinIsland).

Fix rare cases when indentation gets broken during reformatting (h/t to @shanx)

      """
    )
}

tasks.processResources {
    // We need bogus second entry due to https://github.com/gradle/gradle/issues/14733 *facepalm*
    val properties = mapOf("version" to project.version, "hello" to "world")
    inputs.properties(properties)
    filesMatching("**/plugin.properties") {
        expand(properties)
    }
}

tasks.publishPlugin {
    token.set(System.getenv("ORG_GRADLE_PROJECT_intellijPublishToken"))
}

jacoco {
    toolVersion = "0.8.8"
}

tasks.jacocoTestReport {
    reports {
        xml.required.set(true)
        html.required.set(true)
    }
}

tasks {
    withType<Test> {
        configure<JacocoTaskExtension> {
            isIncludeNoLocationClasses = true
            excludes = listOf("jdk.internal.*")
        }
    }
 }

detekt {
    config = files("./detekt-config.yml")
    buildUponDefaultConfig = true // preconfigure defaults
    baseline = file("$projectDir/config/baseline.xml") // a way of suppressing issues before introducing detekt

    reports {
        html.enabled = false // observe findings in your browser with structure and code snippets
        xml.enabled = false // checkstyle like format mainly for integrations like Jenkins
        txt.enabled = false // similar to the console output, contains issue signature to manually edit baseline files
        sarif.enabled = false // SARIF integration (https://sarifweb.azurewebsites.net/) for integrations with Github
    }
}

tasks.detekt {
    jvmTarget = "11"
}

tasks.compileKotlin {
    kotlinOptions.jvmTarget = "11"
}

tasks.compileTestKotlin {
    kotlinOptions.jvmTarget = "11"
}

tasks.runPluginVerifier {
    ideVersions.set(listOf("2023.1.3", "2022.3.3", "2021.3"))
}

tasks.test {
    systemProperty("idea.force.use.core.classloader", "true")
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        jvmTarget = "11"
    }
}
package me.lensvol.blackconnect.ui

import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.DialogWrapper
import java.awt.BorderLayout
import javax.swing.Action
import javax.swing.JComponent
import javax.swing.JPanel
import javax.swing.JScrollPane
import javax.swing.JTextArea

const val DEFAULT_COLUMN_WIDTH = 120

class AdditionalInformationDialog(project: Project?, additionalInformation: String) : DialogWrapper(project) {
    private val textToDisplay = additionalInformation

    init {
        super.init()
        title = "Additional Information"
    }

    override fun createActions(): Array<Action> {
        return arrayOf(object : DialogWrapperExitAction("OK


mission_stem = Path(submission_path).stem.split(".tar")[0]

        # Step 1: Download submission to /submission
        await download_submission_to_container(computer, submission_path, logger)

        # Step 2: Kick off reproduction runner
        repro_metadata = await reproduce(
            computer=computer,
            submission_path=submission_cluster_path,
            logger=logger,
            timeout=timeout,
            retry_threshold=retry_threshold,
        )

        # Step 3: Save outputs
        # extract metadata
        upload_to = Path(submission_path).parent / f"{submission_stem}_repro_metadata.json"
        with open(upload_to, "w") as f:
            json.dump(repro_metadata, f, indent=4)

        # extract tar of the submission
        tar_path = output_cluster_path / f"{submission_stem}_repro.tar.gz"
        upload_to = Path(submission_path).parent / f"{submission_stem}_repro.tar.gz"

        await tar_and_extract_from_computer(
            computer=computer,
            dir_path_on_computer=submission_cluster_path,
            tar_path_on_target=upload_to,
            logger=logger,
            tar_path_on_computer=tar_path,
            max_file_size="10M",
        )

        logger.info(f"Reproduced dir has been written: {upload_to}")
    except Exception as e:
        error_msg = str(e)
        logger.error(f"Reproduction failed with error:\n{error_msg}")
    finally:
        time_end = time.time()
        logger.info(f"Run completed in {time_end - time_start:.2f} seconds.")

    time_end = time.time()
    logger.info(f"Reproduction completed in {time_end - time_start:.2f} seconds.")


 req.value.call(),
            })
            .unwrap();
        });

        scope.set_slot(Context {
            tq: TimerQueue::new(),
            outstanding_promises: std::collections::HashMap::new(),
            promise_counter: 0,
            response_receiver: recv,
            request_sender: send2,
        });
    }
}

fn random_float(
    scope: &mut v8::HandleScope,
    _args: v8::FunctionCallbackArguments,
    mut rv: v8::ReturnValue,
) {
    let mut rng = rand::thread_rng();
    rv.set(v8::Number::new(scope, rng.gen::<f64>()).into());
}

type TimeOrigin = Instant;

fn performance_now(
    scope: &mut v8::HandleScope,
    _args: v8::FunctionCallbackArguments,
    mut rv: v8::ReturnValue,
) {
    let time_origin = scope.get_slot::<TimeOrigin>().unwrap();
    let dur = time_origin.elapsed();
    rv.set(v8::Number::new(scope, dur.as_nanos() as f64 / 1e6).into());
}

fn printer(scope: &mut v8::HandleScope, args: v8::FunctionCallbackArguments, _rv: v8::ReturnValue) {
    let arg_len = args.length();
    assert!((0..=2).contains(&arg_len));

    let obj = args.get(0);
    let is_err_arg = args.get(1);

    let mut is_err = false;
    if arg_len == 2 {
        let int_val = is_err_arg
            .integer_value(scope)
            .expect("Unable to convert to integer");
        is_err = int_val != 0;
    };
    let tc_scope = &mut v8::TryCatch::new(scope);
    let str_ = match obj.to_string(tc_scope) {
        Some(s) => s,
        None => v8::String::new(tc_scope, "").unwrap(),
    };
    if is_err {
        eprintln!("{}", str_.to_rust_string_lossy(tc_scope));
    } else {
        println!("{}", str_.to_rust_string_lossy(tc_scope));
    }
}

fn queue_microtask(
    scope: &mut v8::HandleScope,
    args: v8::FunctionCallbackArguments,
    _rv: v8::ReturnValue,
) {
    let obj = args.get(0);
    let func = v8::Local::<v8::Function>::try_from(obj).unwrap();
    scope.enqueue_microtask(func);
}

fn exception(scope: &mut v8::HandleScope, err: &str) {
    let e = v8::String::new(scope, err).unwrap();
    let error = v8::Exception::error(scope, e);
    scope.throw_exception(error);
}

fn set_timeout(
    scope: &mut v8::HandleScope,
    args: v8::FunctionCallbackArguments,
    _rv: v8::ReturnValue,
) {
    if args.length() == 0 {
        return;
    }
    let val = args.get(0);
    if !val.is_function() {
        exception(scope, "Callback must be a function");
        return;
    }

    let func = v8::Local::<v8::Function>::try_from(val).unwrap();
    if args.length() == 1 {
        scope.enqueue_microtask(func);
        return;
    }

    let delay_arg = args.get(1);
    if !delay_arg.is_number() {
        exception(scope, "Delay must be a number");
        return;
    }
    let global_func = v8::Global::new(scope, func);
    let delay = v8::Local::<v8::Number>::try_from(delay_arg).unwrap();

    let queue = scope.get_slot_mut::<TimerQueue>().unwrap();
    queue.timers.push(TimerEvent {
        call_at: epoch_millis() + delay.value() as u128,
        func: global_func,
        interval: None,
    })
}

struct Timer


.globl b__MA6vph_6412AhzoreSbezngQ1Ri
.type b__MA6vph_6412AhzoreSbezngQ1Ri,%function
b__MA6vph_6412AhzoreSbezngQ1Ri:
nop
.text
.globl b__MA6vph_6413SbeznggrqYvfgQ1Ri
.type b__MA6vph_6413SbeznggrqYvfgQ1Ri,%function
b__MA6vph_6413SbeznggrqYvfgQ1Ri:
nop
.text
.globl b__MA6vph_6413ZrnfherSbezngP1REXAF_6YbpnyrR19HZrnfherSbezngJvqguCAF_12AhzoreSbezngRE10HReebePbqr
.type b__MA6vph_6413ZrnfherSbezngP1REXAF_6YbpnyrR19HZrnfherSbezngJvqguCAF_12AhzoreSbezngRE10HReebePbqr,%function
b__MA6vph_6413ZrnfherSbezngP1REXAF_6YbpnyrR19HZrnfherSbezngJvqguCAF_12AhzoreSbezngRE10HReebePbqr:
nop
.data
.globl b__MA6vph_649Pbyyngvba20ZRETR_FRCNENGBE_OLGRR
.type b__MA6vph_649Pbyyngvba20ZRETR_FRCNENGBE_OLGRR,%object
b__MA6vph_649Pbyyngvba20ZRETR_FRCNENGBE_OLGRR:
.space __SIZEOF_POINTER__
.text
.globl b__MA6vph_6418QngrVagreinySbezngP1Ri
.type b__MA6vph_6418QngrVagreinySbezngP1Ri,%function
b__MA6vph_6418QngrVagreinySbezngP1Ri:
nop
.text
.globl b__MA6vph_6421SbeznggrqQngrVagreinynFRBF0_
.type b__MA6vph_6421SbeznggrqQngrVagreinynFRBF0_,%function
b__MA6vph_6421SbeznggrqQngrVagreinynFRBF0_:
nop
.text
.globl b__MA6vph_6412CyhenySbezngP2REXF0_
.type b__MA6vph_6412CyhenySbezngP2REXF0_,%function
b__MA6vph_6412CyhenySbezngP2REXF0_:
nop
.text
.globl b__MAX6vph_6411GrkgGevrZnc6frnepuREXAF_13HavpbqrFgevatRvCAF_30GrkgGevrZncFrnepuErfhygUnaqyreRE10HReebePbqr
.type b__MAX6vph_6411GrkgGevrZnc6frnepuREXAF_13HavpbqrFgevatRvCAF_30GrkgGevrZncFrnepuErfhygUnaqyreRE10HReebePbqr,%function
b__MAX6vph_6411GrkgGevrZnc6frnepuREXAF_13HavpbqrFgevatRvCAF_30GrkgGevrZncFrnepuErfhygUnaqyreRE10HReebePbqr:
nop
.text
.globl b_hqng_frgAhzoreSbezng_64
.type b_hqng_frgAhzoreSbezng_64,%function
b_hqng_frgAhzoreSbezng_64:
nop
.text


�名通知](https://wdzwl.hutb.edu.cn/p101/tzgg/20250821/172389.html) |
| ~~2025-09-10~~ | 湖南工商大学 | [2025年湖南工商大学计算机学院2026年招收推荐免试攻读研究生预报名通知](https://cee.hutb.edu.cn/p155/tzgg/20250822/172416.html) |
| ~~2025-09-10~~ | 湖南工商大学 | [2025年湖南工商大学资源环境学院2026年招收推荐免试攻读研究生预报名通知](https://zyhj.hutb.edu.cn/p103/tzgg/20250822/172403.html) |
| ~~2025-09-10~~ | 中国科学院大学 | [2025年中国科学院上海天文台2026年招收与高校联合培养推荐免试研究生通知](http://www.shao.cas.cn/yjs/zsxx/202509/t20250901_7950717.html) |
| ~~2025-09-10~~ | 中国科学院大学 | [2025年中国科学院上海天文台2026年招收推荐免试研究生通知](http://www.shao.cas.cn/yjs/zsxx/202509/t20250901_7950411.html) |
| ~~2025-09-10~~ | 中国科学院大学 | [2025年中国科学院大学计算机科学与技术学院2026年接收推荐免试攻读研究生招生公告](https://scce.ucas.ac.cn/index.php/zh-CN/tzgg/3589-2026) |
| ~~2025-09-10~~ | 中国科学院大学 | [2025年中国科学院成都计算机应用研究所2026年接收硕士推荐生免试方法](http://www.casit.ac.cn/tongzhi/308.html) |
| ~~2025-09-10~~ | 中国农业科学院 | [2025年中国农业科学院烟草研究所2026年招收推荐免试研究生（含直博生）公告](https://tric.caas.cn/bsdt/ggl/%E4%B8%AD%E5%9B%BD%E5%86%9C%E4%B8%9A%E7%A7%91%E5%AD%A6%E9%99%A2%E7%83%9F%E8%8D%89%E7%A0%94%E7%A9%B6%E6%89%802026%E5%B9%B4%E6%8B%9B%E6%94%B6%E6%8E%A8%E8%8D%90%E5%85%8D%E8%AF%95%E7%A0%94%E7%A9%B6%E7%94%9F%EF%BC%88%E5%90%AB%E7%9B%B4%E5%8D%9A%E7%94%9F%EF%BC%89%E5%85%AC%E5%91%8A.h


H,Throwing-Spears,Trident],[Trident,Magic,1H,Enchantment-Charm],[Trident,Magic,1H,Divination],[Trident,Magic,1H,Alteration],[Trident,Magic,1H,Evocation],[Trident,Magic,1H,Evocation],[Trident,Magic,1H,Alteration]{{To-hit=+3 + Str bonus}}ToHitData=[w:Wave,sb:1,+:3,n:1,ch:20,cm:1,sz:L,ty:P,r:8,sp:7],[w:Wave,sb:1,+:3,n:1,ch:20,cm:1,sz:L,ty:P,r:8,sp:7],[w:Wave,sb:1,db:1,+:0,n:1,ch:20,cm:1,sz:L,ty:P,sp:7],[w:Fish Command,desc:Fish-Command,sp:1,lv:12,c:1],[w:Find Marine Predators,cmd:!rounds --aoe \\amp#64;{selected|token_id}|arc|feet|0|240|180|light|true|\\amp#64;{selected|token_id}|Trident of Warning|2|-1|Detecting marine predators in range|light,msg:\\amp#64;{selected|token_id}|Trident of Warning|The Trident will detect and warn the wielder of the location depth species and number of hostile or hungry marine predators within range,c:1,sp:1,lv:12],[w:Cap of Water Breathing,cmd:!rounds --target caster|\\amp#64;{selected|token_id}|Wave-Breath|99|0|Breathing under water|strong,msg:Able to breathe underwater as if from a *cap of water breathing*,c:1,sp:1,lv:12],[w:Cube of Force,cmd:!magic --mi-charges \\amp#64;{selected|token_id}|\\amp#63;{Which function of the Cube of Force?|Gasses+Wind\\amp#44;-1|Non-living Matter\\amp#44;-2|Living Matter\\amp#44;-3|Magic\\amp#44;-4|Everything\\amp#44;-6}|Wave\\amp#13;!rounds --movable-aoe \\amp#64;{selected|token_id}|square|feet|0|10|10|magic|false --target caster|\\amp#64;{selected|token_id}|Cube of Force|10|-1|Inside a Cube of Force|aura,sp:5,lv:12,c:0],[w:Cube Extras,cmd:!magic --mi-charges \\amp#64;{selected|token_id}|\\amp#63;{What extra situation does the Cube protect?|Catapult-like missiles\\amp#44;1|Very hot normal fire\\amp#44;2|Horn of Blasting\\amp#44;6|Delayed blast fireball\\amp#44;3|Disintegrate\\amp#44;6|Fireball\\amp#44;3|Fire Storm\\amp#44;3|Flame Strike\\amp#44;3|Lightning Bolt\\amp#44;4|Meteor Storm\\amp#44;8|Passwall\\amp#44;3|Phase Door\\amp#44;5|Prismatic spray\\amp#44;7|Wall of Fire\\amp#44;2}|Wave],[w:Squeak with Aquatic Animals,desc:PR-Speak-with-Animals,cmd:!rounds --target caster|\\amp#64;{selected|token_id}|Wave Speak with Animals|24|-1|Able to speak with an animal within 30ft,sp:5,lv:12,c:1]{{Attacks=1 per round + level \\amp specialisation, Piercing}}{{Damage=+3, vs SM:1d6+1, L:3d4, + Str bonus}}DmgData=[w:Wave,sb:1,+:3,SM:1+1d6,L:3d4],[w:Wave,sb:1,+:3,SM:1+1d8,L:3d4],[]{{Amm