_pause_device")) {
            return false;
        }

        return checkFunctions(provider, device, caps, new int[] {
            29, 30
        },
            "alcDevicePauseSOFT", "alcDeviceResumeSOFT"
        ) || reportMissing("ALC", "ALC_SOFT_pause_device");
    }

    private static boolean check_SOFT_reopen_device(FunctionProviderLocal provider, long device, PointerBuffer caps, Set<String> ext) {
        if (!ext.contains("ALC_SOFT_reopen_device")) {
            return false;
        }

        return checkFunctions(provider, device, caps, new int[] {
            31
        },
            "alcReopenDeviceSOFT"
        ) || reportMissing("ALC", "ALC_SOFT_reopen_device");
    }

    private static boolean check_SOFT_system_events(FunctionProviderLocal provider, long device, PointerBuffer caps, Set<String> ext) {
        if (!ext.contains("ALC_SOFT_system_events")) {
            return false;
        }

        return checkFunctions(provider, device, caps, new int[] {
            32, 33, 34
        },
            "alcEventIsSupportedSOFT", "alcEventControlSOFT", "alcEventCallbackSOFT"
        ) || reportMissing("ALC", "ALC_SOFT_system_events");
    }

}
package com.lwkandroid.imagepicker.ui.grid.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.lwkandroid.imagepicker.R;
import com.lwkandroid.imagepicker.base.adapter.IImagePickerItemView;
import com.lwkandroid.imagepicker.base.adapter.ImagePickerBaseAdapter;
import com.lwkandroid.imagepicker.base.adapter.ImagePickerViewHolder;
import com.lwkandroid.imagepicker.data.ImageDataModel;
import com.lwkandroid.imagepicker.data.ImageFolderBean;

/**
 * Created by LWK
 * TODO 文件夹适配器
 */
public class ImageFloderAdapter extends ImagePickerBaseAdapter<ImageFolderBean>
{
    private int mCurfloderPosition;

    public ImageFloderAdapter(Context context, int position)
    {
        super(context, ImageDataModel.getInstance().getAllFolderList());
        this.mCurfloderPosition = position;
        addItemView(new ImageFloerItemView());
    }

    private class ImageFloerItemView implements IImagePickerItemView<ImageFolderBean>
    {

        @Override
        public int getItemViewLayoutId()
        {
            return R.layout.layout_image_floder_listitem;
        }

        @Override
        public boolean isForViewType(ImageFolderBean item, int position)
        {
            return true;
        }

        @Override
        public void setData(ImagePickerViewHolder holder, ImageFolderBean imageFolderBean, int position, ViewGroup parent)
        {
            ImageView imgFirst = holder.findView(R.id.img_floder_listitem_firstImg);

            if (imageFolderBean != null)
            {
                ImageDataModel.getInstance().getDisPlayer().display(holder.getContext()
                        , imageFolderBean.getFirstImgPath(), imgFirst,
                        R.drawable.glide_default_picture, R.drawable.glide_default_picture,
                        300, 300);
                holder.setTvText(R.id.tv_floder_pop_listitem_name, imageFolderBean.getFolderName());
                holder.setTvText(R.id.tv_floder_pop_listitem_num,
                        holder.getContext().getResources().getString(R.string.imagepicker_folder_image_num
                                , String.valueOf(imageFolderBean.getNum())));
                if (position == mCurfloderPosition)
                    holder.setVisibility(R.


f)?;
        if len == 0 {
            return Ok(());
        }

        parser.parse(&buf[0..len], |action| match action {
            Action::Print(c) => print!("{}", c),
            Action::Control(c) => match c {
                ControlCode::HorizontalTab
                | ControlCode::LineFeed
                | ControlCode::CarriageReturn => print!("{}", c as u8 as char),
                _ => {}
            },
            _ => {}
        });
    }
}
use anyhow::Context;
use directories::ProjectDirs;
use serde::Deserialize;
use std::path::{Path, PathBuf};

#[derive(Deserialize)]
pub struct RakalyConfig {
    pub user: String,
    pub api_key: String,

    #[serde(default = "default_base_url")]
    pub base_url: String,
}

pub fn default_base_url() -> String {
    String::from("https://rakaly.com")
}

pub fn read_config<P: AsRef<Path>>(location: P) -> anyhow::Result<RakalyConfig> {
    let path = location.as_ref();
    let config_data =
        std::fs::read(path).with_context(|| format!("Failed to read {}", path.display()))?;
    let config = parse_config(&config_data)
        .with_context(|| format!("Malformatted config file: {}", path.display()))?;
    Ok(config)
}

pub fn parse_config(data: &[u8]) -> anyhow::Result<RakalyConfig> {
    toml::de::from_slice(data).context("unable to deserialize toml config")
}

pub fn default_config_path() -> Option<PathBuf> {
    if let Some(proj_dirs) = ProjectDirs::from("com", "Rakaly", "Rakaly") {
        let default_path = proj_dirs.config_dir().join("config.toml");
        if default_path.exists() {
            return Some(default_path);
        }
    }

    None
}
<reponame>Potato-Gaming/crystal<filename>league-client/src/models/matchmaking_lcds_match_maker_params.rs<gh_stars>1-10
/*
 *
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 *
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MatchmakingLcdsMatchMakerParams {
    #[serde(rename = "botDifficulty", skip_serializing_if = "Option::is_none")]
    pub bot_difficulty: Option<String>,
    #[serde(rename = "invitationId", skip_serializing_if = "Option::is_none")]
    pub invitation_id: Option<String>,
    #[serde(rename = "languages", skip_serializing_if = "Option::is_none")]
    pub languages: Option<String>,
    #[serde(rename = "lastMaestroMessage", skip_serializing_if = "Option::is_none")]
    pub last_maestro_message: Option<String>,
    #[serde(rename = "queueIds", skip_serializing_if = "Option::is_none")]
    pub queue_ids: Option<Vec<i32>>,
    #[serde(rename = "team", skip_serializing_if = "Option::is_none")]
    pub team: Option<Vec<i64>>,
    #[serde(rename = "teamId", skip_serializing_if = "Option::is_none")]
    pub team_id: Option<i64>,
}

impl MatchmakingLcdsMatchMakerParams {
    pub fn new() -> MatchmakingLcdsMatchMakerParams {
        MatchmakingLcdsMatchMakerParams {
            bot_difficulty: None,
            invitation_id: None,
            languages: None,
            last_maestro_message: None,
            queue_ids: None,
            team: None,
            team_id: None,
        }
    }
}

<filename>src/main.rs<gh_stars>0
#[macro_use] extern crate prettytable;


(buffer, offset, packet, parent)
  local length = memx_options_memo_sbe_v1_7.schema_id.size
  local range = buffer(offset, length)
  local value = range:uint()
  local display = memx_options_memo_sbe_v1_7.schema_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_memx_options_memo_sbe_v1_7.fields.schema_id, range, value, display)

  return offset + length, value
end

-- Template Id
memx_options_memo_sbe_v1_7.template_id = {}

-- Size: Template Id
memx_options_memo_sbe_v1_7.template_id.size = 1

-- Display: Template Id
memx_options_memo_sbe_v1_7.template_id.display = function(value)
  if value == 1 then
    return "Template Id: New Order Single Message (1)"
  end
  if value == 2 then
    return "Template Id: Short Two Sided Bulk Quote Message (2)"
  end
  if value == 3 then
    return "Template Id: Long Two Sided Bulk Quote Message (3)"
  end
  if value == 4 then
    return "Template Id: Short One Sided Bulk Quote Message (4)"
  end
  if value == 5 then
    return "Template Id: Long One Sided Bulk Quote Message (5)"
  end
  if value == 6 then
    return "Template Id: Order Cancel Replace Request Message (6)"
  end
  if value == 7 then
    return "Template Id: Order Cancel Request Message (7)"
  end
  if value == 8 then
    return "Template Id: Mass Cancel Request Message (8)"
  end
  if value == 9 then
    return "Template Id: Mass Cancel Clear Lockout Request Message (9)"
  end
  if value == 32 then
    return "Template Id: Mass Cancel Bulk Clear All Lockouts Request Message (32)"
  end
  if value == 33 then
    return "Template Id: Mass Cancel Bulk Clear Lockouts By Efid Or Underlier Request Message (33)"
  end
  if value == 10 then
    return "Template Id: Allocation Instruction Message (10)"
  end
  if value == 11 then
    return "Template Id: Execution Report New Message (11)"
  end
  if value == 12 then
    return "Template Id: Execution Report Bulk Quote Pending New Message (12)"
  end
  if value == 13 then
    return "Template Id: Execution Report Bulk Quote Component New Message (13)"
  end
  if value == 14 then
    return "Template Id: Execution Report Rejected Message (14)"
  end
  if value == 15 then
    return "Template Id: Execution Report Trade Message (15)"
  end
  if value == 16 then
    return "Template Id: Execution Report Pending Cancel Message (16)"
  end
  if value == 17 then
    return "Template Id: Execution Report Canceled Message (17)"
  end
  if value == 18 then
    return "Template Id: Execution Report Pending Replace Message (18)"
  end
  if value == 19 then
    return "Template Id: Execution Report Replaced Message (19)"
  end
  if value == 20 then
    return "Template Id: Execution Report Trade Correction Message (20)"
  end
  if value == 21 then
    return "Template Id: Execution Report Trade Break Message (21)"
  end
  if value == 22 then
    return "Template Id: Execution Report Restatement Message (22)"
  end
  if value == 23 then
    return "Template Id: Pending Mass Cancel Message (23)"
  end
  if value == 24 then
    return "Template Id: Mas


idebar {
            max-height: calc(
                100vh - var(--dim-header-height) - var(--dim-footer-height) -
                    2 * var(--dim-container-main-margin-y)
            );
            overflow: auto;
            position: sticky;
            top: calc(
                var(--dim-header-height) + var(--dim-container-main-margin-y)
            );
        }
        .site-menu {
            margin-top: 1rem;
        }
    }

    /* two sidebars */
    @media (min-width: 1200px) {
        .container-main {
            grid-template-columns:
                minmax(0, 1fr) minmax(0, 2.5fr) minmax(
                0,
                20rem
            );
            grid-template-areas: "sidebar content toc";
        }

        .col-sidebar {
            display: contents;
        }

        .page-menu {
            grid-area: toc;
            padding-left: 1rem;
        }
        .site-menu {
            grid-area: sidebar;
        }

        .site-menu {
            margin-top: 0rem;
        }

        .page-menu,
        .site-menu {
            max-height: calc(
                100vh - var(--dim-header-height) - var(--dim-footer-height) -
                    2 * var(--dim-container-main-margin-y)
            );
            overflow: auto;
            position: sticky;
            top: calc(
                var(--dim-header-height) + var(--dim-container-main-margin-y)
            );
        }
    }
}
/*!
 * Bootstrap v5.0.0 (https://getbootstrap.com/)
 * Copyright 2011-2021 The Bootstrap Authors
 * Copyright 2011-2021 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-primary: #EB1616;--bs-secondary: #191C24;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #6C7293;--bs-dark: #000;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0))}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:"Open Sans",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#6C7293;background-color:#000;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin-top:0;margin-bottom:.5rem;font-family:"Roboto",sans-serif;font-weight:700;line-height:1.2;color:#fff}h1,.h1{font-size:calc


# Copyright (c) 2002-2009 Tampere University.
#
# This file is part of TTA-Based Codesign Environment (TCE).
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
from ... import utils #import utils from pygccxml package

class BasicType(utils.enum):
    btNoType   = 0
    btVoid     = 1
    btChar     = 2
    btWChar    = 3
    btInt      = 6
    btUInt     = 7
    btFloat    = 8
    btBCD      = 9
    btBool     = 10
    btLong     = 13
    btULong    = 14
    btCurrency = 25
    btDate     = 26
    btVariant  = 27
    btComplex  = 28
    btBit      = 29
    btBSTR     = 30
    btHresult  = 31

#Adding code, that was not generated for some reason.
class UdtKind(utils.enum):
   UdtStruct, UdtClass, UdtUnion = (0, 1, 2)

class CV_access_e(utils.enum):
   CV_private, CV_protected, CV_public = (1, 2, 3)

class NameSearchOptions(utils.enum):
   nsNone               = 0
   nsfCaseSensitive     = 0x1
   nsfCaseInsensitive   = 0x2
   nsfFNameExt          = 0x4
   nsfRegularExpression = 0x8
   nsfUndecoratedName   = 0x10

   # For backward compabibility:
   nsCaseSensitive           = nsfCaseSensitive
   nsCaseInsensitive         = nsfCaseInsensitive
   nsFNameExt = nsfFNameExt
   nsRegularExpression       = nsfRegularExpression | nsfCaseSensitive
   nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive

class DataKind( utils.enum ):
   DataIsUnknown        = 0
   DataIsLocal          = 1
   DataIsStaticLocal    = 2
   DataIsParam          = 3
   DataIsObjectPtr      = 4
   DataIsFileStatic     = 5
   DataIsGlobal         = 6
   DataIsMember         = 7
   DataIsStaticMember   = 8
   DataIsConstant       = 9


/*
 * Copyright (c) 2011 Stephen A. Pratt
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
using System;
using System.Runtime.InteropServices;
#if NUNITY
using Vector3 = org.critterai.Vector3;
#else
using Vector3 = UnityEngine.Vector3;
#endif

namespace org.critterai.nav.rcn
{
    internal static class NavmeshEx
    {
        /*
         * Design note: In order to stay compatible with Unity iOS, all
         * extern methods must be unique and match DLL entry point.
         * (Can't use EntryPoint.)
         */

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern NavStatus dtnmBuildSingleTileMesh(
            NavmeshTileBuildData buildData
            , ref IntPtr resultMesh);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern NavStatus dtnmBuildDTNavMeshFromRaw([In] byte[] rawMeshData
            , int dataSize
            , bool safeStorage
            , ref IntPtr resultNavMesh);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern NavStatus dtnmInitTiledNavMesh(NavmeshParams config
            , ref IntPtr navmesh);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern void dtnmFreeNavMesh(ref IntPtr navmesh, bool freeTiles);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern void dtnmGetParams(IntPtr navmesh
            , [In, Out] NavmeshParams config);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern NavStatus dtnmAddTile(IntPtr navmesh
            , [In, Out] NavmeshTileData tileData
            , uint lastRef
            , ref uint resultRef);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern NavStatus dtnmRemoveTile(IntPtr navmesh
            , uint tileRef
            , ref IntPtr resultData
            , ref int resultDataSize);

        [DllImport(InteropUtil.PLATFORM_DLL)]
        public static extern void dtnmCalcTil


dialog, HtmlDialogElement,
		menu, HtmlMenuElement,
		summary, HtmlElement,

		slot, HtmlSlotElement,
		template, HtmlTemplateElement,
	],
	SVG => [
		svg, SvgsvgElement,
		// a, SvgAElement,
		animate, SvgAnimateElement,
		animateMotion, SvgAnimateMotionElement,
		animateTransform, SvgAnimateTransformElement,
		circle, SvgCircleElement,
		clipPath, SvgClipPathElement,
		// color-profile, color-SvgProfileElement,
		defs, SvgDefsElement,
		desc, SvgDescElement,
		// discard, SvgDiscardElement,
		ellipse, SvgEllipseElement,
		feBlend, SvgfeBlendElement,
		feColorMatrix, SvgfeColorMatrixElement,
		feComponentTransfer, SvgfeComponentTransferElement,
		feComposite, SvgfeCompositeElement,
		feConvolveMatrix, SvgfeConvolveMatrixElement,
		feDiffuseLighting, SvgfeDiffuseLightingElement,
		feDisplacementMap, SvgfeDisplacementMapElement,
		feDistantLight, SvgfeDistantLightElement,
		feDropShadow, SvgfeDropShadowElement,
		feFlood, SvgfeFloodElement,
		feFuncA, SvgfeFuncAElement,
		feFuncB, SvgfeFuncBElement,
		feFuncG, SvgfeFuncGElement,
		feFuncR, SvgfeFuncRElement,
		feGaussianBlur, SvgfeGaussianBlurElement,
		feImage, SvgfeImageElement,
		feMerge, SvgfeMergeElement,
		feMergeNode, SvgfeMergeNodeElement,
		feMorphology, SvgfeMorphologyElement,
		feOffset, SvgfeOffsetElement,
		fePointLight, SvgfePointLightElement,
		feSpecularLighting, SvgfeSpecularLightingElement,
		feSpotLight, SvgfeSpotLightElement,
		feTile, SvgfeTileElement,
		feTurbulence, SvgfeTurbulenceElement,
		filter, SvgFilterElement,
		foreignObject, SvgForeignObjectElement,
		g, SvggElement,
		// hatch, SvgHatchElement,
		// hatchpath, SvgHatchpathElement,
		image, SvgImageElement,
		line, SvgLineElement,
		linearGradient, SvgLinearGradientElement,
		marker, SvgMarkerElement,
		mask, SvgMaskElement,
		// mesh, SvgMeshElement,
		// meshgradient, SvgMeshgradientElement,
		// meshpatch, SvgMeshpatchElement,
		// meshrow, SvgMeshrowElement,
		metadata, SvgMetadataElement,
		mpath, SvgmPathElement,
		path, SvgPathElement,
		pattern, SvgPatternElement,
		polygon, SvgPolygonElement,
		polyline, SvgPolylineElement,
		radialGradient, SvgRadialGradientElement,
		rect, SvgRectElement,
		// script, SvgScriptElement,
		set, SvgSetElement,
		stop, SvgStopElement,
		// style, SvgStyleElement,
		switch, SvgSwitchElement,
		symbol, SvgSymbolElement,
		text, SvgTextElement,
		textPath, SvgTextPathElement,
		// title, SvgTitleElement,
		tspan, SvgtSpanElement,
		r#use, SvgUseElement,
		view, SvgViewElement,
	],
];
<gh_stars>100-1000
use similar::{capture_diff_slices, Algorithm};

fn main() {
    let old = vec![1, 2, 3];
    let new = vec![1, 2, 4];
    let ops = capture_diff_slices(Algorithm::Myers, &old, &new);

    for op in ops {
        for change in op.iter_changes(&old, &new) {
            println!("{:?}",


 --toffee-orange: #F1AE84;
	 --perfect-peach: #FBCFB3;
	 --sweet-salmon: #FDE4D1;
	 --fall-harvest: #C86638;
	 --pumpkin-cream: #D17042;
	 --orange-blossom: #DC8052;
	 --peachland: #F2AB85;
	 --summer-melon: #FBCCB3;
	 --peach-nectar: #FDE3D1;
	 --sun-kissed-peach: #FCEFE4;
	 --racing-orange: #CC5A32;
	 --orange-parrot: #D4653E;
	 --oriole: #E17751;
	 --peach-cobbler: #F5A386;
	 --malibu-peach: #FDC8B6;
	 --peach-cloud: #FFE0D3;
	 --sun-washed: #FDEEE5;
	 --fireball-orange: #C35232;
	 --tropical-orange: #CB5E3D;
	 --autumn-cover: #D56E4E;
	 --coral-spice: #EA9E82;
	 --teacup-rose: #F4C3B2;
	 --sunlit-coral: #F9DDCF;
	 --soft-white: #FAEDE3;
	 --navajo-red: #AB4830;
	 --fire-dance: #BD543D;
	 --adobe-orange: #D36651;
	 --aztec-brick: #A65330;
	 --pilgrimage-foliage: #AD5935;
	 --rust: #B66340;
	 --adobe-dust: #D48D6C;
	 --peach-blossom: #EAB59D;
	 --light-salmon: #F6D4C1;
	 --peach-parfait: #F9E7DA;
	 --san-clemente-rose: #DAB8A1;
	 --copper-mountain: #B17D60;
	 --butte-rock: #C8AB8B;
	 --serendipity: #D9B091;
	 --milk-and-honey: #D3A482;
	 --italianate: #CB9976;
	 --masada: #A3673E;
	 --firenze: #B87450;
	 --buttered-yam: #C37540;
	 --warmed-cognac: #965A3A;
	 --satchel: #804F31;
	 --salsa-dancing: #AB543F;
	 --jicama: #F2DEBC;
	 --flawless: #EDDBBD;
	 --handmade: #EED7B2;
	 --etruscan: #AF8255;
	 --farm-fresh: #C49F78;
	 --frontenac-brick: #BC8B6E;
	 --bed-and-breakfast: #C18872;
	 --indian-summer: #DCAA86;
	 --butter-rum: #F0C9A1;
	 --vellum: #E8D3A1;
	 --danse-du-soleil: #F9D795;
	 --butter-milk: #FBEBC1;
	 --maple-fudge: #E5C48B;
	 --french-toast: #EACFA0;
	 --spiced-rum: #9C6E49;
	 --sycamore: #E3C3A6;
	 --potters-clay: #B98766;
	 --toffee-cream: #D2AB88;
	 --rusty-nail: #9C6040;
	 --sundial: #EAD4B0;
	 --boardwalk: #D5B387;
	 --flower-pot: #B86D52;
	 --prairie-lily: #BD6448;
	 --from-the-archives: #E3CEAC;
	 --natural-leather: #D6B28D;
	 --warm-sunglow: #CC986B;
	 --byzantine: #AB7141;
	 --mexican-hot-chocolate: #8B5C2B;
	 --


n = this.confObj.attrNodeEnd;
        for( var i = 0; i < libn.length; i++ )
        {
            //取出一个，检查start之前有没有？最近的一个位置是哪里
            var nde = libn[i];
            var p = beforeStr.lastIndexOf(nde[0]);
            // Debug.trace("SeanHtmlEncode.checkAttrNodeEnd p:"+p);
            if( p != -1 )
            {
                //前面找到有这个标签，检查该标签与当前start点的距离，必须等于0才可以
                var pEnd = p + nde[0].length;
                var sum = pEnd - start;
                // Debug.trace("SeanHtmlEncode.checkAttrNodeEnd pEnd:"+pEnd+" sum:"+sum);
                if( sum == 0 )
                {
                    //添加当前属性
                    var attr = this.rebuildAttrValue(nde[1],nde[2]);
                    //该属性不得延续给子节点
                    // attr = attr + "-childno";

                    attrs.push(attr);
                    // Debug.trace("SeanHtmlEncode.checkAttrNodeEnd attr:"+attr);
                }
            }
        }

        // Debug.trace("SeanHtmlEncode.checkAttrNodeEnd attrs:");
        // Debug.trace(attrs);

        return attrs;
    }

    //查找str_html字符串中，start之后的内容里面出现的第num次key的位置
    public indexOfCount(key:string,str_html:string,start:number,num:number):number
    {
        // Debug.trace("SeanHtmlEncode.indexOfCount key:"+key+" start:"+start+" num:"+num);
        // Debug.trace("str_html:"+str_html);

        var x = str_html.indexOf(key,start);
        // Debug.trace("SeanHtmlEncode.indexOfCount x0:"+x);
        for(var i = 1; i < num; i++)
        {
            x = str_html.indexOf(key,x+1);
            // Debug.trace("SeanHtmlEncode.indexOfCount x1:"+x);
        }
        // Debug.trace("SeanHtmlEncode.indexOfCount x2:"+x);
        return x;
    }

    //提取标签节点的数量
    //在str_html字符串中的start到end之间，查找key的数量
    public getCountOf(key:string,start:number,end:number,str_html:string):number
    {
        var a = 0;

        var str = str_html.substring(start,end);
        // Debug.trace("SeanHtmlEncode.getCountOf key:"+key+" start:"+start+" end:"+end);
        // Debug.trace("SeanHtmlEncode.getCountOf str:"+str);

        a = str.split(key).length - 1;

        // Debug.trace("SeanHtmlEncode.getCountOf a:"+a);

        return a;
    }

    //是否有子节点
    public isHaveChildren(html:string):boolean
    {
        var libNodes = this.confObj.labels;

        //遍历所有支持节点，检查字符串中最近的一个是哪个节点
        for( var i = 0; i < libNodes.length; i++ )
        {
            var libNode = libNodes[i];
            var pos = html.indexOf( libNode.lb, 0 );
            if( pos >= 0 )
            {
                //有节点
                return true;
            }
        }

        return false;
    }

    //获取缺省属性
    public getDefaultAttr(parentNode:any):any
    {
        var attr = [];
        if( parentN


 unit tests do.
		StartExec(*mainClass, &MainThread, globPtr)

	} else { // for testing JACOBIN-732 use of new thread implementation
		mainClass := stringPool.GetStringPointer(mainClassNameIndex)
		main := thread.CreateMainThread()
		// the thread is registered in thread.Run()
		thread.Run(main, mainClass)
	}

	return shutdown.Exit(shutdown.OK)
}

// InitGlobalFunctionPointers initializes the global function pointers in the globals package.
// These circumvent circular dependencies. A JVM is a textbook example of circular dependencies:
// For example, the intepreter necessarily needs to deal with objects and to call exceptions;
// exceptions are objects in the JVM, and certain functions that the object package contains
// can throw exceptions. A typical golang solution is to stuff objects and exceptions into the
// same package, but we prefer to keep them separate for ease of comprehension and navigability,
// so we use global function pointers.
func InitGlobalFunctionPointers(globalPtr *globals.Globals) {
	globalPtr.FuncInstantiateClass = InstantiateClass
	globalPtr.FuncInvokeGFunction = gfunction.Invoke
	globalPtr.FuncMinimalAbort = exceptions.MinimalAbort
	globalPtr.FuncThrowException = exceptions.ThrowExNil
	globalPtr.FuncFillInStackTrace = gfunction.FillInStackTrace
}
/*
 * Jacobin VM - A Java virtual machine
 * Copyright (c) 2025 by  the Jacobin Authors. All rights reserved.
 * Licensed under Mozilla Public License 2.0 (MPL 2.0)  Consult jacobin.org.
 */

package jvm

import (
	"io"
	"jacobin/src/exceptions"
	"jacobin/src/frames"
	"jacobin/src/globals"
	"os"
	"strings"
	"testing"
)

// test the interpreter methods *other than those that execute bytecodes*
// bytecodes are tested in interpreter_xxx_test.go

func TestEmptyCodeSegment(t *testing.T) {
	fr := frames.CreateFrame(1)
	fr.Meth = []byte{} // empty code segment

	globals.InitGlobals("test")
	globalPtr := globals.GetGlobalRef()
	globalPtr.FuncMinimalAbort = exceptions.MinimalAbort
	globalPtr.FuncThrowException = exceptions.ThrowExNil

	normalStderr := os.Stderr
	r, w, _ := os.Pipe()
	os.Stderr = w

	fs := frames.CreateFrameStack()
	frames.PushFrame(fs, fr)
	interpret(fs)

	_ = w.Close()
	msg, _ := io.ReadAll(r)
	os.Stderr


lm) {
			var self = this, settings = self.settings;

			// Use callback instead
			if (settings.urlconverter_callback) {
				return self.execCallback('urlconverter_callback', url, elm, true, name);
			}

			// Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs
			if (!settings.convert_urls || (elm && elm.nodeName == 'LINK') || url.indexOf('file:') === 0 || url.length === 0) {
				return url;
			}

			// Convert to relative
			if (settings.relative_urls) {
				return self.documentBaseURI.toRelative(url);
			}

			// Convert to absolute
			url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host);

			return url;
		},

		/**
		 * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor.
		 *
		 * @method addVisual
		 * @param {Element} elm Optional root element to loop though to find tables etc that needs the visual aid.
		 */
		addVisual: function(elm) {
			var self = this, settings = self.settings, dom = self.dom, cls;

			elm = elm || self.getBody();

			if (self.hasVisual === undefined) {
				self.hasVisual = settings.visual;
			}

			each(dom.select('table,a', elm), function(elm) {
				var value;

				switch (elm.nodeName) {
					case 'TABLE':
						cls = settings.visual_table_class || 'mce-item-table';
						value = dom.getAttrib(elm, 'border');

						if ((!value || value == '0') && self.hasVisual) {
							dom.addClass(elm, cls);
						} else {
							dom.removeClass(elm, cls);
						}

						return;

					case 'A':
						if (!dom.getAttrib(elm, 'href', false)) {
							value = dom.getAttrib(elm, 'name') || elm.id;
							cls = settings.visual_anchor_class || 'mce-item-anchor';

							if (value && self.hasVisual) {
								dom.addClass(elm, cls);
							} else {
								dom.removeClass(elm, cls);
							}
						}

						return;
				}
			});

			self.fire('VisualAid', {element: elm, hasVisual: self.hasVisual});
		},

		/**
		 * Removes the editor from the dom and tinymce collection.
		 *
		 * @method remove
		 */
		remove: function() {
			var self = this;

			if (!self.removed) {
				self.save();
				self.removed = 1;
				self.unbindAllNativeEvents();

				// Remove any hidden input
				if (self.hasHiddenInput) {
					DOM.remove(self.getElement().nextSibling);
				}

				if (!self.inline) {
					// IE 9 has a bug where the selection stops working if you place the
					// caret inside the editor then remove the iframe
					if (ie && ie < 10) {
						self.getDoc().execCommand('SelectAll', false, null);
					}

					DOM.setStyle(self.id, 'display', self.orgDisplay);
					self.getBody().onload = null; // Prevent #6816
				}

				self.fire('remove');

				self.editorManager.remove(self);
				DOM.remove(self.getContainer());
				self._selectionOverrides.destroy();
				self.editorUpload.destroy();
				self.destroy();
			}
		},

		/**
		 * Destroys the editor instance by removing all events, element references or other resources
		 * that could leak memory. This method will be called automatically when the page is unloaded
		 * but you can also call it directly if you know what you are doing.
		 *
		 * @method destroy
		 * @param {Boolean} automatic Optional state if the destroy is an automatic destroy or user called one.
		 */
		destroy: function(automatic) {
			var self = this, form;

			// One time is enough
			if (self.destroyed)


？"}, {"給閃光平原上的維茲爾·銅栓捎去壹箱防撞頭盔。"}},
[1180] = {"地精贊助商", {"回到關於妳為何來這裏的話題上。我的確向普茲克保證過會幫他運壹臺新的調節器，但我現在還沒有收到這臺機器。藏寶海灣的裏維加茲說他已經把東西裝船運了過來，也許是在運輸過程當中出了什麽差錯。","如果是那樣的話，我們就無能為力了。現在我只知道它已經從藏寶海灣運了出來。","去找碼頭管理員羅茲基爾吧，他應該能幫妳查壹查出貨記錄。"}, {"和藏寶海灣的碼頭管理員羅茲基爾談壹談。"}},
[1181] = {"地精贊助商", {"恐怕我也只能幫妳這些了，<name>。如果妳還想了解更多事情的話，就直接去找大財主裏維加茲本人吧。還有誰能比裏維加茲對他自己的生意更了解呢？","妳到港口那邊的小酒館頂樓的房間裏就能找到他了。"}, {"與藏寶海灣的大財主裏維加茲談壹談。"}},
[1182] = {"地精贊助商", {"瞧，納菲瑞提湖那邊的地精風險投資公司的伐木機上都裝備了最新型號的燃料調節器。我覺得，普茲克要是能拿到調節器的詳細設計圖，壹定可以善加利用它。糟糕的是，那邊的工頭比我預計的要精明得多，要取得設計圖似乎並不容易。","妳看起來應該有能力去拿到那張設計圖。據我所知，他把那些東西都鎖在了屋子裏。"}, {"將燃料調節器的藍圖交給藏寶海灣的大財主裏維加茲。"}},
[1183] = {"地精贊助商", {"妳現在就趕快出發吧。替我向普茲克問好，順便告訴他，如果他需要什麽東西，就盡管跟我說。我期待著他能馬上打破記錄！"}, {"把燃料調節器的藍圖帶給閃光平原的普茲克。"}},
[1184] = {"蟲群的消息", {"返回奧格瑞瑪的貝爾戈洛姆那裏，告訴他摩克


using Unity.Burst;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;

namespace UnityEngine.Rendering.Universal
{
    [BurstCompile]
    struct LightMinMaxZJob : IJobFor
    {
        public Fixed2<float4x4> worldToViews;

        [ReadOnly]
        public NativeArray<VisibleLight> lights;
        public NativeArray<float2> minMaxZs;

        public void Execute(int index)
        {
            var lightIndex = index % lights.Length;
            var light = lights[lightIndex];
            var lightToWorld = (float4x4)light.localToWorldMatrix;
            var originWS = lightToWorld.c3.xyz;
            var viewIndex = index / lights.Length;
            var worldToView = worldToViews[viewIndex];
            var originVS = math.mul(worldToView, math.float4(originWS, 1)).xyz;
            originVS.z *= -1;

            var minMax = math.float2(originVS.z - light.range, originVS.z + light.range);

            if (light.lightType == LightType.Spot)
            {
                // Based on https://iquilezles.org/www/articles/diskbbox/diskbbox.htm
                var angleA = math.radians(light.spotAngle) * 0.5f;
                float cosAngleA = math.cos(angleA);


u59d4\u6307\u793a\uff0c\u7531\u5408\u5ddd\u53bf\u59d4\u901f\u9001\u6765\u91cd\u5e86\uff0c\u4ea4\u536b\u751f\u90e8\u8d1f\u8d23\u533b\u6cbb\u3002\u5176\u4ed6\u95ee\u9898\uff0c\u4ea6\u5e94\u8fc5\u901f\u89e3\u51b3\uff0c\u5e76\u660e\u786e\u544a\u8bc9\u5979\u3002", "type": "paragraph"}, {"text": "\u00a0\u5ed6\u4e95\u4e39 \u7a0b\u5b50\u50651951\u5e747\u670825\u65e5", "type": "paragraph"}]}
  </script>

    [返回索引页面]

   西南局秘书处转抄关于合川云门镇民政助理员汤孟凡谎报该镇小学校长杜先凤为反革命分子事件的报告

   日期：1951-7-25 作者：[待确定]

   关于合川云门镇民政助理员汤孟凡谎报该镇小学校长杜先凤为反革命分子事件的报告

    西南局：

   我们此次往合川视察土改，到云门镇后，曾邀集完小教师开座谈会，顺便了解小学教育情况。临开会时，才由工作团尚化雨同志处知道该镇完小校长被该区民政助理员汤孟凡挾私诬陷并逮捕拷打一案。座谈会中，杜先凤本拟提出这个问题，请求解决。我以为在座谈会上讨论不便，乃约她第二日到区委会另谈。得悉该案经过如下：

   杜先凤23岁，原系重庆女师学院学生。解


irma eilutė',
	invalidBorder: 'Reikšmė turi būti nurodyta skaičiumi.',
	invalidCellPadding: 'Reikšmė turi būti nurodyta skaičiumi.',
	invalidCellSpacing: 'Reikšmė turi būti nurodyta skaičiumi.',
	invalidCols: 'Skaičius turi būti didesnis nei 0.',
	invalidHeight: 'Reikšmė turi būti nurodyta skaičiumi.',
	invalidRows: 'Skaičius turi būti didesnis nei 0.',
	invalidWidth: 'Reikšmė turi būti nurodyta skaičiumi.',
	menu: 'Lentelės savybės',
	row: {
		menu: 'Eilutė',
		insertBefore: 'Įterpti eilutę prieš',
		insertAfter: 'Įterpti eilutę po',
		deleteRow: 'Šalinti eilutes'
	},
	rows: 'Eilutės',
	summary: 'Santrauka',
	title: 'Lentelės savybės',
	toolbar: 'Lentelė',
	widthPc: 'procentais',
	widthPx: 'taškais',
	widthUnit: 'pločio vienetas'
} );
/*
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'table', 'nl', {
	border: 'Randdikte',
	caption: 'Titel',
	cell: {
		menu: 'Cel',
		insertBefore: 'Voeg cel in voor',
		insertAfter: 'Voeg cel in na',
		deleteCell: 'Cellen verwijderen',
		merge: 'Cellen samenvoegen',
		mergeRight: 'Voeg samen naar rechts',
		mergeDown: 'Voeg samen naar beneden',
		splitHorizontal: 'Splits cel horizontaal',
		splitVertical: 'Splits cel vertikaal',
		title: 'Celeigenschappen',
		cellType: 'Celtype',
		rowSpan: 'Rijen samenvoegen',
		colSpan: 'Kolommen samenvoegen',
		wordWrap: 'Automatische terugloop',
		hAlign: 'Horizontale uitlijning',
		vAlign: 'Verticale uitlijning',
		alignBaseline: 'Tekstregel',
		bgColor: 'Achtergrondkleur',
		borderColor: 'Randkleur',
		data: 'Gegevens',
		header: 'Kop',
		yes: 'Ja',
		no: 'Nee',
		invalidWidth: 'De celbreedte moet een getal zijn.',
		invalidHeight: 'De celhoogte moet een getal zijn.',
		invalidRowSpan: 'Rijen samenvoegen moet een heel getal zijn.',
		invalidColSpan: 'Kolommen samenvoegen moet een heel getal zijn.',
		chooseColor: 'Kies'
	},
	cellPad: 'Celopvulling',
	cellSpace: 'Celafstand',
	column: {
		menu: 'Kolom',
		insertBefore: 'Voeg kolom in voor',
		insertAfter: 'Voeg kolom in na',
		deleteColumn: 'Kolommen verwijderen'
	},
	columns: 'Kolommen',
	deleteTable: 'Tabel verwijderen',
	headers: 'Koppen',


    height: 100%;
    transition: transform 0.4s ease-in-out; /* Плавная анимация */
    will-change: transform; /* Оптимизация анимации */
}

.slider-item {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    position: relative;
}

.slider-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
    display: block;
}

.slider-caption {
    position: absolute;
    bottom: 20px;
    left: 2%;
    width: 50%;
    text-align: left;
    color: #000000;
    background: #fff;
    padding: 10px;
    border-radius: 10px;
}

.slider-caption h5 {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 5px;
}

.slider-caption p {
    font-size: 16px;
    color: #000;
    margin-bottom: 10px;
}

.slider-caption .btn {
    padding: 5px 15px;
    font-size: 18px;
    border-radius: 8px;
    transition: all 0.3s ease-in-out;
}

.slider-caption .btn:hover {
    transform: scale(1.1);
    opacity: 0.9;
}

/* Адаптивность слайдера */
@media (max-width: 991px) {
    .slider-container {
        height: 575px;
    }
    .slider-caption {
    width: 80%;
    }
    .slider-caption h5 {
        font-size: 18px;
    }
    .slider-caption p {
        font-size: 14px;
    }
}

@media (max-width: 767px) {
    .slider-container {
        height: 500px;
    }
    .slider-caption {
    width: 96%;
    }
    .slider-caption h5 {
        font-size: 18px;
    }
    .slider-caption p {
        font-size: 14px;
    }
    .slider-control-prev,
    .slider-control-next {
        width: 30px;
        height: 30px;
    }
    .slider-control-next {
        left: 50px;
    }
    .slider-control-icon {
        width: 12px;
        height: 12px;
    }
}

/* 🌙 MAIN SLIDER - Тёмная тема */

[data-theme="dark"] .slider-caption {
    position: absolute;
    bottom: 20px;
    left: 2%;
    width: 50%;
    text-align: left;
    color: #ffffff; /* Белый текст для контраста на тёмном фоне */
    background: rgba(0, 0, 0, 0.7); /* Полупрозрачный чёрный фон */
    padding: 10px;
    border-radius: 10px;
}

[data-theme="dark"] .slider-caption p {
    font-size: 16px;
    color: #ffffff; /* Белый текст для тёмной темы */
    margin-bottom: 10px;
}

/* 🔹 6. BLOG SLIDER ----------------------------------------------------------------------------------------*/

.blog-slider {
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.blog-slider-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.blog-slider-wrapper {
    display: flex;
    transition: transform 0.4s ease-in-out;
}

.blog-slider-item {
    flex: 0 0 100%;
    display: flex;
    ju


{{ title }}

{% endblock %}

{%- block content %}

    {%- include "searchfield.html" %}
    {%- if display_toc %}

{{ _('On this page') }}

        {{ toc }}

    {%- endif %}

      {{ toctree(includehidden=True, maxdepth=3, titles_only=True) }}

  {%- block document %}

    {% block body %}{% endblock %}
    {{ prev_next() }}

  {%- endblock %}

{%- endblock %}

{%- block relbar2 %}{% endblock %}

{%- block footer %}

  {{ copyright_block() }}
  {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %}

{%- endblock %}

{% macro prev_next() %}

    {% if prev -%}

        <svg><use href="#svg-arrow-right"></use></svg>

            {{ _("Previous") }}

          {% if prev.link == pathto(root_doc) %}

{{ _("Home") }}

          {% else %}

{{ prev.title }}

          {% endif %}

    {%- else %}

    {%- endif %}
    {% if next -%}

            {{ _("Next") }}

{{ next.title }}

        <svg><use href="#svg-arrow-right"></use></svg>

    {%- endif %}

{% endmacro %}

{% macro svgs() %}
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  <symbol id="github" viewBox="0 0 16 16">
    <title>GitHub</title>
    <svg
      stroke="currentColor"
      fill="currentColor"
      stroke-width="0"
      viewBox="0 0 16 16"
    >
      <path
        fill-rule="evenodd"
        d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2


Settings()

		if (not bIsEditingKeybind) then
			local editPanel = keyBindFrame:GetEditPanel()
			editPanel.editMacroEditBox:SetText("")
		end
	end,

    ---@param keybindScroll frame
    ---@param index number
    CreateKeybindScrollLine = function(keybindScroll, index) --~create
		local keyBindFrame = getMainFrame(keybindScroll)

		---@type df_keybindscrollline
        local line = CreateFrame("frame", "$parentLine" .. index, keybindScroll)
        line:SetSize(keyBindFrame.options.width - 10, keyBindFrame.options.line_height)
        line:SetPoint("topleft", keyBindFrame, "topleft", 1, -22 - (index-1) * keyBindFrame.options.line_height)
		line:EnableMouse(true)
		line.keybindScrollLine = true

        --detailsFramework:ApplyStandardBackdrop(line, index % 2 == 0)
		--line:SetBackdropBorderColor(0, 0, 0, 0)

		line.backgroundTexture = line:CreateTexture("$parentBackgroundTexture", "background")
		line.backgroundTexture:SetAllPoints()

		if (index % 2 == 0) then
			line.backgroundTexture:SetColorTexture(0, 0, 0, 0.1)
		else
			line.backgroundTexture:SetColorTexture(0, 0, 0, 0)
		end

		line.highlightTexture = line:CreateTexture(nil, "border")
		line.highlightTexture:SetAllPoints()
		line.highlightTexture:SetColorTexture(1, 1, 1, .1)
		line.highlightTexture:Hide()

		line:SetScript("OnEnter", keyBindFrame.OnEnterScrollLine)
		line:SetScript("OnLeave", keyBindFrame.OnLeaveScrollLine)

        detailsFramework:Mixin(line, detailsFramework.HeaderFunctions)

        local options_text_template = detailsFramework:GetTemplate("font", "OPTIONS_FONT_TEMPLATE")
        local options_dropdown_template = detailsFramework:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
        local options_switch_template = detailsFramework:GetTemplate("switch", "OPTIONS_CHECKBOX_TEMPLATE")
        local options_slider_template = detailsFramework:GetTemplate("slider", "OPTIONS_SLIDER_TEMPLATE")
        local options_button_template = detailsFramework:GetTemplate("button", "OPTIONS_BUTTON_TEMPLATE")

		line.separatorTitleText = line:CreateFontString("$parentSeparatorTitleText", "overlay", "GameFontNormal")
		line.separatorTitleText:SetPoint("center", line, "center", 0, 0)

		line.spellIconTexture = line:CreateTexture("$parentIcon", "overlay")
		line.spellIconTexture:SetSize(keyBindFrame.options.line_height - 2, keyBindFrame.options.line_height - 2)

		line.actionNameFontString = line:CreateFontString("$parentName", "overlay", "GameFontNormal")
		detailsFramework:SetFontColor(line.actionNameFontString, "BLIZZ_OPTIONS_COLOR")
		detailsFramework:SetFontSize(line.actionNameFontString, 12)

		---@type df_button
        line.setKeybindButton = detailsFramework:CreateButton(line, function()end, headerTable[3].width, keyBindFrame.options.line_height-6, "", nil, nil, nil, "SetNewKeybindButton", "$parentSetNewKeybindButton", 0, nil, options_text_template)
		line.setKeybindButton.textcolor = "white"
		line.setKeybindButton.textsize = 10
		line.setKeybindButton:SetHook("OnEnter", keyBindFrame.OnEnterScrollLine)
		line.setKeybindButton:SetHook("OnLeave", keyBindFrame.OnLeaveScrollLine)

		detailsFramework:AddRoundedCornersToFrame(line.setKeybindButton, roundedCornerPreset)

		---@type df_button
        line.clearKeybindButton = detailsFramework:CreateButton(line, keyBindFrame.ClearKeybind, 16, keyBindFrame.options.line_height-2, "", nil, nil


ENGTH R14 R7
  ADDK R11 R14 K6 [1]
  LOADN R12 1
  FORNPREP R11
  SUBK R15 R10 K6 [1]
  GETTABLE R14 R6 R15
  SUBK R16 R13 K6 [1]
  GETTABLE R15 R7 R16
  JUMPIFNOTEQ R14 R15 [+3]
  LOADN R5 0
  JUMP [+1]
  LOADN R5 1
  GETTABLE R14 R4 R10
  SUBK R19 R10 K6 [1]
  GETTABLE R18 R4 R19
  GETTABLE R17 R18 R13
  ADDK R16 R17 K6 [1]
  GETTABLE R19 R4 R10
  SUBK R20 R13 K6 [1]
  GETTABLE R18 R19 R20
  ADDK R17 R18 K6 [1]
  SUBK R21 R10 K6 [1]
  GETTABLE R20 R4 R21
  SUBK R21 R13 K6 [1]
  GETTABLE R19 R20 R21
  ADD R18 R19 R5
  FASTCALL MATH_MIN [+2]
  GETIMPORT R15 K17 [math.min]
  CALL R15 3 1
  SETTABLE R15 R14 R13
  LOADN R14 2
  JUMPIFNOTLT R14 R10 [+30]
  LOADN R14 2
  JUMPIFNOTLT R14 R13 [+27]
  SUBK R15 R10 K6 [1]
  GETTABLE R14 R6 R15
  SUBK R16 R13 K18 [2]
  GETTABLE R15 R7 R16
  JUMPIFNOTEQ R14 R15 [+21]
  SUBK R15 R10 K18 [2]
  GETTABLE R14 R6 R15
  SUBK R16 R13 K6 [1]
  GETTABLE R15 R7 R16
  JUMPIFNOTEQ R14 R15 [+15]
  GETTABLE R14 R4 R10
  GETTABLE R17 R4 R10
  GETTABLE R16 R17 R13
  SUBK R20 R10 K18 [2]
  GETTABLE R19 R4 R20
  SUBK R20 R13 K18 [2]
  GETTABLE R18 R19 R20
  ADDK R17 R18 K6 [1]
  FASTCALL2 MATH_MIN R16 R17 [+3]
  GETIMPORT R15 K17 [math.min]
  CALL R15 2 1
  SETTABLE R15 R14 R13
  FORNLOOP R11
  FORNLOOP R8
  ADDK R10 R2 K6 [1]
  GETTABLE R9 R4 R10
  ADDK R10 R3 K6 [1]
  GETTABLE R8 R9 R10
  RETURN R8 1

MAIN:
  PREPVARARGS 0
  DUPCLOSURE R0 K0 [PROTO_0]
  RETURN R0 1


oject.name != "module_app"
    && !gradle.startParameter.taskNames.any {
      it == "${project.path}:assembleDebug" // 自身模块打包时不允许缓存，因为启动模块在单模块调试时经常被修改
    }
    && cache.deleteOldCacheIfNeedNewCache() // 这个在简单刷新 gradle 时也会执行
  ) {
    dependsOn(publishTaskName)
    doFirst {
      println("正在缓存 ${project.name} 模块")
    }
  }
}

if (projectDir.parentFile.name == rootDir.name) {
  /*
  * 这里有个很奇怪的问题，如果给 api 模块加上，api 模块会报错：
  * Cannot access built-in declaration 'kotlin.String'. Ensure that you have a dependency on the Kotlin standard library
  * 只要给 api 模块调用了 tasks.whenTaskAdded 就会报，
  *
  * 怀疑是 api 模块是子模块的问题，因为取消了它的缓存，但缓存文件中仍然有它，所以不能单独给它使用 tasks.whenTaskAdded ?
  * 所以只给父文件夹名字是根项目名字的模块使用
  * */

  // 目前这里原来的代码被移走了，但为了给以后的人一个提醒，所以请不要删除上面的注释！！！
}

if (plugins.hasPlugin("com.android.application")) {
  if (isOpenModuleCache) {
    tasks.whenTaskAdded {
      if (name == "assembleDebug") {
        dependsOn(rootProject.tasks.named("cacheToLocalMaven"))
        /*
        * 自动缓存的基本思路：
        * 1、在引入了 application 插件的模块使用 assembleDebug 的 gradle 任务时，关联上根模块的 cacheToLocalMaven 任务
        * 2、根模块的 cacheToLocalMaven 任务会拉起所有模块的 cacheToLocalMaven 任务
        * 3、每个模块的 cacheToLocalMaven 任务里面依赖了 publishModuleCachePublicationToXXXRepository（这是 maven-publish 插件的任务），
        *    就会自动进行缓存
        * */
      }
    }
  }
}

package com.tongji.yanluapp.viewmodel

import android.widget.Toast
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.tongji.lib_common.bean.TodoResponse
import com.tongji.lib_common.network.apiService1
import com.tongji.yanluapp.app.App
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import me.hgj.jetpackmvvm.base.viewmodel.BaseViewModel
import me.hgj.jetpackmvvm.ext.request

/**
 * @author: Kana (Tongji)
 * @date: 2022/9/14 16:28
 * @description:
 * @email: tongji0x208@gmail.com
 */
class SubjectViewModel : BaseViewModel() {
    val todoLiveData: LiveData<List<TodoResponse>?>
        get() = _todoLiveData
    private val _todoLiveData = MutableLiveData<List<TodoResponse>?>()

    val errorLiveData: LiveData<Boolean>
        get() = _errorLiveData
    private val _errorLiveData = MutableLiveData<Boolean>()

    fun getTodoByTime(time: String) {
        viewModelScope.launch {
            val data = apiService1.getTodoByTime(time)
            if (data.code != 200 || data.msg != "获取成功") {
                _errorLiveData.postValue


-------------------------

function channel_ability_building:CastFilterResultTarget( hTarget )
	if hTarget == nil or hTarget:GetUnitName() ~= "npc_dota_dig_site" then
		return UF_FAIL_CUSTOM
	end

	if hTarget:HasModifier( "modifier_dig_site_cooldown" ) then
		return UF_FAIL_CUSTOM
	end

	if self:GetCaster():GetTeamNumber() ~= hTarget:GetTeamNumber() then
		return UF_FAIL_CUSTOM
	end

	return UF_SUCCESS
end

--------------------------------------------------------------------------------

function channel_ability_building:GetCustomCastErrorTarget( hTarget )
	if hTarget:HasModifier( "modifier_dig_site_cooldown" ) then
		return "#dota_hud_error_dig_site_cooldown"
	end

	return "#dota_hud_error_dig_site_unowned"
end

--------------------------------------------------------------------------------

function channel_ability_building:OnSpellStart()

end


  String urc = stream.readStringUntil('\"');
          stream.readStringUntil(',');
          if (urc == "recv") {
            int mux = stream.readStringUntil('\n').toInt();
            DBG("### URC RECV:", mux);
            if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
              sockets[mux]->got_data = true;
            }
          } else if (urc == "closed") {
            int mux = stream.readStringUntil('\n').toInt();
            DBG("### URC CLOSE:", mux);
            if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
              sockets[mux]->sock_connected = false;
            }
          } else {
            stream.readStringUntil('\n');
          }
          data = "";
        }
      }
    } while (millis() - startMillis < timeout);
finish:
    if (!index) {
      data.trim();
      if (data.length()) {
        DBG("### Unhandled:", data);
      }
      data = "";
    }
    //DBG('<', index, '>');
    return index;
  }

  uint8_t waitResponse(uint32_t timeout,
                       GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR),
                       GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL)
  {
    String data;
    return waitResponse(timeout, data, r1, r2, r3, r4, r5);
  }

  uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR),
                       GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL)
  {
    return waitResponse(1000, r1, r2, r3, r4, r5);
  }

public:
  Stream&       stream;

protected:
  GsmClient*    sockets[TINY_GSM_MUX_COUNT];
};

#endif


1Parent {
		t.Fatal("parent pointer mishap 1")
	}
	if cycle2 != cycle2.Cycle1[0].Cycle2Parent {
		t.Fatal("parent pointer mishap 2")
	}
}

func TestCycleTree(t *testing.T) {
	txClient, err := pgClient.BeginTx(ctx, nil)
	chkErr(t, err)
	defer func() {
		_ = txClient.Rollback()
	}()

	rootID, err := txClient.InsertCycleTreeRoot(ctx, &models.CycleTreeRoot{
		Value: "root",
	})
	chkErr(t, err)

	branch1ID, err := txClient.InsertCycleTreeBranch1(ctx, &models.CycleTreeBranch1{
		Value:           "branch-1",
		CycleTreeRootId: rootID,
	})
	chkErr(t, err)

	branch2ID, err := txClient.InsertCycleTreeBranch2(ctx, &models.CycleTreeBranch2{
		Value:           "branch-2",
		CycleTreeRootId: rootID,
	})
	chkErr(t, err)

	cycle1ID, err := txClient.InsertCycleTreeCycle1(ctx, &models.CycleTreeCycle1{
		Value:              "cycle-1",
		CycleTreeBranch1Id: branch1ID,
	})
	chkErr(t, err)

	cycle2ID, err := txClient.InsertCycleTreeCycle2(ctx, &models.CycleTreeCycle2{
		Value:              "cycle-2",
		CycleTreeBranch2Id: branch2ID,
		CycleTreeCycle1Id:  cycle1ID,
	})
	chkErr(t, err)

	cycle3ID, err := txClient.InsertCycleTreeCycle3(ctx, &models.CycleTreeCycle3{
		Value:             "cycle-3",
		CycleTreeCycle2Id: cycle2ID,
	})
	chkErr(t, err)

	cycle3IDMask := pggen.NewFieldSet(models.CycleTreeCycle1MaxFieldIndex)
	cycle3IDMask.Set(models.CycleTreeCycle1IdFieldIndex, true)
	cycle3IDMask.Set(models.CycleTreeCycle1CycleTreeCycle3IdFieldIndex, true)
	_, err = txClient.UpdateCycleTreeCycle1(ctx, &models.CycleTreeCycle1{
		Id:                cycle1ID,
		CycleTreeCycle3Id: &cycle3ID,
	}, cycle3IDMask)
	chkErr(t, err)

	root, err := txClient.GetCycleTreeRoot(ctx, rootID)
	chkErr(t, err)

	err = txClient.CycleTreeRootFillIncludes(ctx, root, models.CycleTreeRootAllIncludes)
	chkErr(t, err)

	c1 := root.CycleTreeBranch1[0].CycleTreeCycle1
	c2 := root.CycleTreeBranch2.CycleTreeCycle2
	cycle1s := []*models.CycleTreeCycle1{
		c1,
		c1.CycleTreeCycle2.CycleTreeCycle3.CycleTreeCycle1[0],
		c2.CycleTreeCycle3.CycleTreeCycle1[0],
	}

	for i, node := range cycle1s {
		for j, other := range cycle1s {
			if i == j {
				continue // no need to check this case
			}

			if node != other {
				t.Fatalf("expected all cycle1s to have the same object identity")
			}
		}
	}
}

// We should be able to work with tables that have had an extra column
// added since we generated code.
func TestNewColumn(t *testing.T) {
	willGetNewColumnType := reflect.TypeOf(models.WillGetNewColumn{})
	_, has := willGetNewColumnType.FieldByName("F2")
	if has {
		t.Fatalf("pggen generated an F2 field. There is something wrong with the


[Text("|Lv. 82-99| Home Security")]
    LV_82_99_HOME_SECURITY = 27801,

    [Text("|Lv. 82-99| Home Security (In progress)")]
    LV_82_99_HOME_SECURITY_IN_PROGRESS = 27802,

    [Text("|Lv. 82-99| Target of Opportunity")]
    LV_82_99_TARGET_OF_OPPORTUNITY = 27901,

    [Text("|Lv. 82-99| Target of Opportunity (In progress)")]
    LV_82_99_TARGET_OF_OPPORTUNITY_IN_PROGRESS = 27902,

    [Text("|Lv. 82-99| Target of Opportunity")]
    LV_82_99_TARGET_OF_OPPORTUNITY_2 = 27904,

    [Text("The Food Chain")]
    THE_FOOD_CHAIN = 28001,

    [Text("The Food Chain (In progress)")]
    THE_FOOD_CHAIN_IN_PROGRESS = 28002,

    [Text("Golden Hills")]
    GOLDEN_HILLS = 28101,

    [Text("Golden Hills (In progress)")]
    GOLDEN_HILLS_IN_PROGRESS = 28102,

    [Text("The Few, The Proud, The Brave")]
    THE_FEW_THE_PROUD_THE_BRAVE = 28301,

    [Text("The Few, the Proud, the Brave (In progress)")]
    THE_FEW_THE_PROUD_THE_BRAVE_IN_PROGRESS = 28302,

    [Text("Muertos Hunting")]
    MUERTOS_HUNTING = 28401,

    [Text("Muertos Hunting (In progress)")]
    MUERTOS_HUNTING_IN_PROGRESS = 28402,

    [Text("Fabulous Feathers")]
    FABULOUS_FEATHERS = 28601,

    [Text("Fabulous Feathers (In progress)")]
    FABULOUS_FEATHERS_IN_PROGRESS = 28602,

    [Text("Figuring It Out!")]
    FIGURING_IT_OUT = 28701,

    [Text("Figuring It Out! (In progress)")]
    FIGURING_IT_OUT_IN_PROGRESS = 28702,

    [Text("Figuring It Out!")]
    FIGURING_IT_OUT_2 = 28704,

    [Text("Handle With Care")]
    HANDLE_WITH_CARE = 28801,

    [Text("Handle With Care (In progress)")]
    HANDLE_WITH_CARE_IN_PROGRESS = 28802,

    [Text("Handle With Care")]
    HANDLE_WITH_CARE_2 = 28804,

    [Text("No More Soup For You")]
    NO_MORE_SOUP_FOR_YOU = 28901,

    [Text("No More Soup For You (In progress)")]
    NO_MORE_SOUP_FOR_YOU_IN_PROGRESS = 28902,

    [Text("No More Soup For You")]
    NO_MORE_SOUP_FOR_YOU_2 = 28904,

    [Text("Threat Removal")]
    THREAT_REMOVAL = 29001,

    [Text("Threat Removal (In progress)")]
    THREAT_REMOVAL_IN_PROGRESS = 29002,

    [Text("Threat Removal")]
    THREAT_REMOVAL_2 = 29004,

    [Text("Revenge of the Redbonnet")]
    REVENGE_OF_THE_REDBONNET = 29101,

    [Text("Revenge of the Redbonnet (In progress)")]
    REVENGE_OF_THE_REDBONNET_IN_PROGRESS = 29102,

    [Text("|Lv. 25-34| Lizardmen's Conspiracy")]
    LV_25_34_LIZARDMEN_S_CONSPIRACY = 29801,


std::fs;
use std::fs::File;
use std::io::{Read};
use std::io::BufReader;

/// evaulate for traits implementation
/// https://stackoverflow.com/questions/27650312/show-u8-slice-in-hex-representation
#[derive(Copy, Clone)]
pub enum Format {
    Octal,
    LowerHex,
    UpperHex,
    Pointer,
    Binary,
    LowerExp,
    UpperExp,
}

/// Line structure for hex output
#[derive(Clone, Debug)]
pub struct Line {
    pub offset: u64,
    pub hex_body: Vec<u8>,
    pub ascii: Vec<char>,
    pub bytes: u64
}
/// Line implementation
impl Line {
    pub fn new() -> Line {
        Line {
            offset: 0x0,
            hex_body: Vec::new(),
            ascii: Vec::new(),
            bytes: 0x0
            }
    }
}

/// Page structure
#[derive(Clone)]
pub struct Page {
    pub offset: u64,
    pub body: Vec<Line>,
    pub bytes: u64
}

/// Page implementation
impl Page {
    pub fn new() -> Page {
        Page {
            offset: 0x0,
            body: Vec::new(),
            bytes: 0x0
            }
    }
}

/// nothing ⇒ Display
/// ? ⇒ Debug
/// o ⇒ Octal
/// x ⇒ LowerHex
/// X ⇒ UpperHex
/// p ⇒ Pointer
/// b ⇒ Binary
/// e ⇒ LowerExp
/// E ⇒ UpperExp
/// offset column
pub fn offset(b: u64) -> String {
    format!("{:#08x}", b)
}

/// print offset to std out
pub fn print_offset(b: u64) {
    print!("{}: ", offset(b));
}

/// hex octal, takes u8
pub fn hex_octal(b: u8) -> String {
    format!("{:#06o}", b)
}

/// hex lower hex, takes u8
pub fn hex_lower_hex(b: u8) -> String {
    format!("{:#04x}", b)
}

/// hex upper hex, takes u8
pub fn hex_upper_hex(b: u8) -> String {
    format!("{:#04X}", b)
}

/// hex binary, takes u8
pub fn hex_binary(b: u8) -> String {
    format!("{:#010b}", b)
}

/// print byte to std out
pub fn print_byte(b: u8, format: Format) {
    match format {
        Format::Octal => print!("{} ", hex_octal(b)),
        Format::LowerHex => print!("{} ", hex_lower_hex(b)),
        Format::UpperHex => print!("{} ", hex_upper_hex(b)),
        Format::Binary => print!("{} ", hex_binary(b)),
        _ => print!("{}", "unk_fmt "),
    }
}

/// In most hex editor applications, the data of the computer file is
/// represented as hexadecimal values grouped in 4 groups of 4 bytes
/// (or two groups of 8 bytes), followed by one group of 16 printable ASCII
/// characters which correspond to each pair of hex values (each byte).
/// Non-printable ASCII characters (e.g., Bell) and characters that would take
/// more than one character space (e.g., tab) are typically represented by a
/// dot (".") in the following ASCII field.
///
/// # Arguments
///
/// * `matches` - Argument matches from command line.
pub fn run(matches: ArgMatches) -> Result<(), Box<::std::error::Error>> {
    // let column_count: u64 = 0x0;
    let mut column_width: u64 = 10;

    if let Some(file) = matches.value_of("INPUTFILE") {
        let f = File::open(file).unwrap();
        let buf_len = fs::metadata(file)?.len();
        let mut buf = BufReader::new(f);
        let mut format_out = Format::LowerHex;

        if let Some(columns) = matches.value_of("cols") {
            column_width = columns.parse::<u64>().unwrap(); //turbofish
        }

        if let Some(format) = matches.value_of("format") {
            // o, x, X, p, b, e, E
            match format {
                "o" => format_out = Format::Octal,
                "x" => format_out = Format::LowerHex,
                "X" => format_out = Format::UpperHex,


nimation-timing-function: ease-in;
}

@keyframes fade-in{
  0%   { opacity: 0 }
  100% { opacity: 1; }
}

.rsssl{
  // Plugin specific variables down here please
  --rsp-brand-primary: var(--rsp-yellow);
  --rsp-brand-secondary: var(--rsp-blue);
  --rsp-brand-primary-faded: var(--rsp-yellow-faded);
}
//@media (prefers-color-scheme: dark) {
//  :root {
//    // Borders and stuff;
//    --rsp-border: 1px solid var(--rsp-border-color);
//    --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
//    --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px;
//    --rsp-border-color: #dfdfdf;
//
//    // RSP Brand Colors
//    --rsp-black: #333;
//    --rsp-white: #fff;
//    --rsp-yellow: #f4bf3e;
//    --rsp-blue: #29b6f6;
//    --rsp-dark-blue: #1E73BE;
//    --rsp-green: #2e8a37;
//    --rsp-red: #D7263D;
//    --rsp-pink: #E35899;
//    --rsp-wp-blue: #007cba;
//
//    --rsp-yellow-faded: #f2e6c9;
//    --rsp-blue-faded: #ecf8fe;
//    --rsp-dark-blue-faded: #ebf2f9;
//    --rsp-green-faded: #ecf4ed;
//    --rsp-red-faded: #fbebed;
//    --rsp-pink-faded: #fceff5;
//    --rsp-wp-blue-faded: #c6e0ef;
//
//    --rsp-background-block-color: var(--rsp-black);
//    --rsp-background-color: var(--rsp-grey-600);
//
//    //Input colors
//    --rsp-input-background-color: #fff;
//    --rsp-input-text-color: var(--rsp-text-color);
//    --rsp-input-border-color: var(--rsp-grey-400);
//
//    --rsp-text-color: rgba(255, 255, 255, 0.95);
//    --rsp-text-color-invert: rgba(26, 26, 26, 0.95);
//    --rsp-text-color-white: rgba(255, 255, 255, 0.95);
//    --rsp-text-color-light: rgba(69, 69, 82, 0.95);
//
//    --rsp-grey-100: #fafafa;
//    --rsp-grey-200: #f9f9f9;
//    --rsp-grey-300: #ededed;
//    --rsp-grey-400: #c6c6c6;
//    --rsp-grey-500: #737373;
//    --rsp-grey-600: #696969;
//
//    // Notification colors
//    --rsp-color-success: var(--rsp-green);
//    --rsp-color-error: var(--rsp-red);
//    --rsp-color-open: var(--rsp-yellow);
//    --rsp-color-disabled: var(--rsp-grey-300);
//  }
//  .rsssl-header .rsssl-logo{
//    filter: brightness(0) invert(1);
//  }
//}.rsssl-field-wrap {


// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

#include "asmconstants.h"
#include "unixasmmacros.inc"

#ifdef FEATURE_CACHED_INTERFACE_DISPATCH

    // Workaround for Xcode 15 ld-classic linker which cannot deal with
    // .alt_entry labels at beginning of section.
    nop

//
// Stub dispatch routine for dispatch to a vtable slot
//
    LEAF_ENTRY RhpVTableOffsetDispatch, _TEXT

        // Load the MethodTable from the object instance in x0
    ALTERNATE_ENTRY RhpVTableOffsetDispatchAVLocation
        ldr     x9, [x0]

        // x11 currently contains the indirection cell address.
        // load x11 to point to the vtable offset (which is stored in the m_pCache field).
        ldr     x11, [x11, #OFFSETOF__InterfaceDispatchCell__m_pCache]

        // x11 now contains the VTableOffset where the upper 32 bits are the offset to adjust
        // to get to the VTable chunk
        lsr     x10, x11, #32

        // Add the MethodTable to the vtable offset
        // to get the address in the vtable chunk list of what we want to dereference
        add     x9, x10, x9

        // Load the target address of the vtable chunk into x9
        ldr     x9, [x9]

        // Compute the chunk offset
        ubfx    x10, x11, #16, #16

        // Load the t


_pool_count-1; i ++) {		// must -1!!
		int tag = constant_pool[i]->tag;
		delete constant_pool[i];
		if(tag == CONSTANT_Long || tag == CONSTANT_Double)	i ++;
	}
	delete[] constant_pool;
};

vector<pair<int, Method *>> InstanceKlass::get_constructors()
{
	vector<pair<int, Method *>> v;
	for (auto iter : this->methods) {
		if (iter.second.second->get_name() == L"<init>") {
			v.push_back(iter.second);
		}
	}
	assert(v.size() >= 1);
	return v;
}

vector<pair<int, Method *>> InstanceKlass::get_declared_methods()
{
	vector<pair<int, Method *>> v;
	for (auto iter : this->methods) {
		if (iter.second.second->get_name() == L"<clinit>") {
			continue;
		} else {
			v.push_back(iter.second);
		}
	}
	assert(v.size() >= 1);
	return v;
}

Method *InstanceKlass::search_method_in_slot(int slot)
{
	for (auto iter : this->methods) {
		if (iter.second.first == slot) {
			return iter.second.second;
		}
	}
	assert(false);
}

int InstanceKlass::get_static_field_offset(const wstring & signature)
{
	auto iter = this->static_fields_layout.find(signature);
	if (iter == this->static_fields_layout.end()) {
		std::wcerr << "didn't find static field [" << signature << "] in InstanceKlass " << this->name << std::endl;
		assert(false);
	}
	int offset = iter->second.first;

#ifdef DEBUG
	sync_wcout{} << "this: [" << this << "], klass_name:[" << this->get_name() << "], (static)" << signature << ":[" << "(encoding: " << offset + this->non_static_field_num() << ")]" << std::endl;
#endif
	return offset + this->non_static_field_num();
}

int InstanceKlass::get_all_field_offset(const wstring & BIG_signature)
{
	auto iter = this->fields_layout.find(BIG_signature);
	if (iter == this->fields_layout.end()) {
		// then, search in static field.
		return get_static_field_offset(BIG_signature.substr(BIG_signature.find_first_of(L":") + 1));
	}
	int offset = iter->second.first;

#ifdef DEBUG
	sync_wcout{} << "this: [" << this << "], klass_name:[" << this->get_name() << "], " << BIG_signature << ":[" << "(offset: " << offset <<")]" << std::endl;
#endif
	return offset;
}

/*===---------------    MirrorKlass (aux)    --------------------===*/
MirrorOop *MirrorKlass::new_mirror(Klass *mirrored_who, MirrorOop *loader) {
	// then inject it!!
	if (mirrored_who != nullptr && mirrored_who->get_name() == L"java/lang/Exception") {
		auto & loaderr = BootStrapClassLoader::get_bootstrap();
		wstring ll(L"java/lang/Class");
		loaderr.loadClass(ll);
	}
	auto mirror = new MirrorOop(mirrored_who);
	if (loader != nullptr) {
		// need to initialize the `ClassLoader.class` by using ClassLoader's constructor!!
		mirror->set_field_value(L"java/lang/Class:classLoader:Ljava/lang/ClassLoader;", loader);
	}

	return mirror;
}

/*===---------------    ArrayKlass    --------------------===*


textDirection: textDirection,
      children: children,
    );
  }
}

extension VxTableExtensions on List<TableRow> {
  ///
  /// Extension method to directly access [VxTable]
  ///
  VxTable get table => VxTable(children: this);
}
/*
 * Copyright (c) 2020 Pawan Kumar. All rights reserved.
 *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  * http://www.apache.org/licenses/LICENSE-2.0
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 */

import 'package:flutter/material.dart';

///
/// Extension method to directly access material [Theme] with any widget without wrapping or with dot operator.
///
extension VxThemeExtension on Widget {
  ///
  /// Extension method to directly access dark [Theme] with any widget without wrapping or with dot operator.
  ///
  Theme darkTheme({Key? key}) => Theme(
        data: ThemeData.dark(),
        child: this,
      );

  ///
  /// Extension method to directly access light [Theme] with any widget without wrapping or with dot operator.
  ///
  Theme lightTheme({Key? key}) => Theme(
        data: ThemeData.light(),
        child: this,
      );

  ///
  /// Extension method to directly access [Theme] with custom [ThemeData] with any widget without wrapping or with dot operator.
  ///
  Theme customTheme({Key? key, required ThemeData? themeData}) => Theme(
        data: themeData!,
        child: this,
      );
}
/*
 * Copyright (c) 2020 Pawan Kumar. All rights reserved.
 *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  * http://www.apache.org/licenses/LICENSE-2.0
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 */

import 'dart:async';
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:velocity_x/src/flutter/velocityx_mixins/render_mixin.dart';
import 'package:velocity_x/velocity_x.dart';

import 'builder.dart';
import 'velocityx_mixins/color_mixin.dart';
import 'velocityx_mixins/padding_mixin.dart';
import 'velocityx_mixins/round_mixin.dart';

/// A material design card: a panel with slightly rounded corners and an
/// elevation shadow.
///
/// A card is a sheet of [Material] used to represent some related information,
/// for example an album, a geographical location, a meal, contact details, etc.
///
/// This is what it looks like when run:
///
/// ![A card with a slight shadow, consisting of two rows, one with an icon and
/// some text describing a musical, and the other with buttons for buying
/// tickets or listening to the show.](https://flutter.github.io/assets-for-api-docs/assets/material/card.png)
///
class VxCard extends VxWidgetBuilder<Widget>
    with
        VxColorMixin<VxCard


	unsigned ether_link_active_low:1;
};

static inline void sh_eth_soft_swap(char *src, int len)
{
#ifdef __LITTLE_ENDIAN__
	u32 *p = (u32 *)src;
	u32 *maxp;
	maxp = p + ((len + sizeof(u32) - 1) / sizeof(u32));

	for (; p < maxp; p++)
		*p = swab32(*p);
#endif
}

static inline void sh_eth_write(struct net_device *ndev, unsigned long data,
				int enum_index)
{
	struct sh_eth_private *mdp = netdev_priv(ndev);

	iowrite32(data, mdp->addr + mdp->reg_offset[enum_index]);
}

static inline unsigned long sh_eth_read(struct net_device *ndev,
					int enum_index)
{
	struct sh_eth_private *mdp = netdev_priv(ndev);

	return ioread32(mdp->addr + mdp->reg_offset[enum_index]);
}

static inline void *sh_eth_tsu_get_offset(struct sh_eth_private *mdp,
					  int enum_index)
{
	return mdp->tsu_addr + mdp->reg_offset[enum_index];
}

static inline void sh_eth_tsu_write(struct sh_eth_private *mdp,
				unsigned long data, int enum_index)
{
	iowrite32(data, mdp->tsu_addr + mdp->reg_offset[enum_index]);
}

static inline unsigned long sh_eth_tsu_read(struct sh_eth_private *mdp,
					int enum_index)
{
	return ioread32(mdp->tsu_addr + mdp->reg_offset[enum_index]);
}

#endif	/* #ifndef __SH_ETH_H__ */


          totalPlayTime = 0,
            downloadState = 0,
        )
    } else {
        null
    }

@JvmName("MediaItemtoSongEntity")
@UnstableApi
fun SongEntity.toMediaItem(): MediaItem {
    val isSong = (this.thumbnails?.contains("w544") == true && this.thumbnails?.contains("h544") == true)
    return MediaItem
        .Builder()
        .setMediaId(this.videoId)
        .setUri(this.videoId)
        .setCustomCacheKey(this.videoId)
        .setMediaMetadata(
            MediaMetadata
                .Builder()
                .setTitle(this.title)
                .setArtist(this.artistName?.connectArtists())
                .setArtworkUri(this.thumbnails?.toUri())
                .setAlbumTitle(this.albumName)
                .setDescription(
                    if (isSong) MERGING_DATA_TYPE.SONG else MERGING_DATA_TYPE.VIDEO,
                ).build(),
        ).build()
}

@JvmName("TracktoMediaItem")
@UnstableApi
fun Track.toMediaItem(): MediaItem {
    var thumbUrl =
        this.thumbnails?.last()?.url
            ?: "http://i.ytimg.com/vi/${this.videoId}/maxresdefault.jpg"
    if (thumbUrl.contains("w120")) {
        thumbUrl = Regex("([wh])120").replace(thumbUrl, "$1544")
    }
    val artistName: String = this.artists.toListName().connectArtists()
    val isSong =
        (
            this.thumbnails?.last()?.height != 0 &&
                this.thumbnails?.last()?.height == this.thumbnails?.last()?.width &&
                this.thumbnails?.last()?.height != null
        ) &&
            (!thumbUrl.contains("hq720") && !thumbUrl.contains("maxresdefault"))
    return MediaItem
        .Builder()
        .setMediaId(this.videoId)
        .setUri(this.videoId)
        .setCustomCacheKey(this.videoId)
        .setMediaMetadata(
            MediaMetadata
                .Builder()
                .setTitle(this.title)
                .setArtist(this.artists.toListName().connectArtists())
                .setArtworkUri(thumbUrl.toUri())
                .setAlbumTitle(this.album?.name)
                .setDescription(
                    if (isSong) MERGING_DATA_TYPE.SONG else MERGING_DATA_TYPE.VIDEO,
                ).build(),
        ).build()
}

@androidx.annotation.OptIn(UnstableApi::class)
fun List<Track>.toMediaItems(): List<MediaItem> {
    val listMediaItem = mutableListOf<MediaItem>()
    for (item in this) {
        listMediaItem.add(item.toMediaItem())
    }
    return listMediaItem
}

@UnstableApi
fun MediaItem.isSong(): Boolean = this.mediaMetadata.description?.contains(MERGING_DATA_TYPE.SONG) == true

@UnstableApi
fun MediaItem.isVideo(): Boolean = this.mediaMetadata.description?.contains(MERGING_DATA_TYPE.VIDEO) == truepackage com.maxrave.media3.ui

import android.app.PictureInPictureParams
import android.content.Context
import android.os.Build
import androidx.activity.ComponentActivity
import androidx.compose.animation.Crossfade
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.com


	CanInline,
	CanSwitchContinuations,
	AlwaysSwitchesContinuation)
{
	override fun attempt(interpreter: Interpreter): Result
	{
		interpreter.checkArgumentCount(2)
		val originalCon = interpreter.argument(0)
		val arguments = interpreter.argument(1)

		val code = originalCon.function().code()
		//TODO MvG - This should be a primitive failure.
		assert(originalCon.stackp() == code.numSlots + 1)
		{
			"Continuation should have been a label- rather than " +
				"call-continuation"
		}
		assert(originalCon.pc() == 0)
		{
			"Continuation should have been a label- rather than " +
				"call-continuation"
		}

		val numArgs = code.numArgs()
		if (numArgs != arguments.tupleSize)
		{
			return interpreter.primitiveFailure(
				E_INCORRECT_NUMBER_OF_ARGUMENTS)
		}
		// Check the argument types.
		if (!code.functionType().acceptsTupleOfArguments(arguments))
		{
			return interpreter.primitiveFailure(E_INCORRECT_ARGUMENT_TYPE)
		}
		// Move the arguments into interpreter.argsBuffer.
		interpreter.argsBuffer.clear()
		for (arg in arguments)
		{
			interpreter.argsBuffer.add(arg)
		}
		// The restart entry point expects the interpreter's reifiedContinuation
		// to be the label continuation's *caller*.
		interpreter.setReifiedContinuation(originalCon.caller())
		interpreter.function = originalCon.function()
		interpreter.chunk = code.startingChunk
		interpreter.offset = 0
		interpreter.returnNow = false
		interpreter.setLatestResult(null)
		return CONTINUATION_CHANGED
	}

	override fun privateBlockTypeRestriction(): A_Type =
		functionType(
			tuple(mostGeneralContinuationType, mostGeneralTupleType),
			bottom)

	override fun privateFailureVariableType(): A_Type =
		enumerationWith(
			set(E_INCORRECT_NUMBER_OF_ARGUMENTS, E_INCORRECT_ARGUMENT_TYPE))

	override fun tryToGenerateSpecialPrimitiveInvocation(
		functionToCallReg: L2ReadBoxedOperand,
		rawFunction: A_RawFunction,
		arguments: List<L2ReadBoxedOperand>,
		argumentTypes: List<A_Type>,
		translator: L1Translator,
		callSiteHelper: CallSiteHelper): Boolean
	{
		val (continuationReg, argumentsTupleReg) = arguments

		// Check for the common case that the continuation was created for this
		// very frame.
		val generator = translator.generator
		val manifest = generator.currentManifest
		val synonym = manifest.semanticValueToSynonym(
			continuationReg.semanticValue())
		val label = generator.topFrame.label()
		if (manifest.hasSemanticValue(label) &&
			manifest.semanticValueToSynonym(label) == synonym)
		{
			// We're restarting the current frame.  First set up the semantic
			// arguments for phis at the loop head to converge.
			val code: A_RawFunction = translator.code
			val numArgs = code.numArgs()
			val argsType = argumentsTupleReg.type()
			val argsSizeRange = argsType.sizeRange

			if (!argsSizeRange.lowerBound.equalsInt(numArgs)
				|| !argsSizeRange.upperBound.equalsInt(numArgs))
			{
				// Couldn't guarantee the argument count matches.
				return false
			}
			val argTypesTuple = argsType.tupleOfTypesFromTo(1, numArgs)
			if (!code.functionType().acceptsTupleOfArgTypes(argTypesTuple))
			{
				// Couldn't guarantee the argument types matched.
				return false
			}
			val explodedTupleRegs = generator.explodeTupleIfPossible(
				argumentsTupleReg, argTypesTuple.toList())
			// First, move these values into fres


using FluentAssertions;
using GitExtensions.Plugins.DeleteUnusedBranches;

namespace DeleteUnusedBranchesTests
{
    [TestFixture]
    public class GitBranchOutputCommandParserTests
    {
        private GitBranchOutputCommandParser _parser;

        [SetUp]
        public void Setup()
        {
            _parser = new GitBranchOutputCommandParser();
        }

        [Test]
        public void GetBranchNames_should_return_empty_list(
            [Values(null, "", "   ")] string commandOutput,
            [Values(true, false)] bool isRemote)
        {
            _parser.GetBranchNames(commandOutput, isRemote).Should().BeEmpty();
        }

        [TestCase]
        public void GetBranchNames_should_return_parse_correctly()
        {
            string commandOutput = @"  feature/branch-1
* fix/branch-2
  master
  HEAD
* (HEAD detached at dce3f9f)
  +_valid_branch_name_starting_with_+
  space/after
  symbolic_ref -> origin/master
";

            _parser.GetBranchNames(commandOutput, isRemote: false)
                   .Should()
                   .BeEquivalentTo("feature/branch-1", "fix/branch-2", "master", "+_valid_branch_nam


 to THREE.NearestFilter or THREE.LinearFilter."));!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||1016===f.type&&null===(qa||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),
d.get(f).__currentAnisotropy=f.anisotropy)}function wa(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",r),b.__webglTexture=a.createTexture(),g.memory.textures++)}function A(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);wa(b,d);c.activeTexture(33984+e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=qa?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==
d.minFilter&&1006!==d.minFilter;e=e&&!1===m(d.image);e=l(d.image,e,!1,D);var k=m(e)||qa,q=f.convert(d.format),r=f.convert(d.type),t=h(d.internalFormat,q,r);U(g,d,k);var u=d.mipmaps;if(d.isDepthTexture){t=6402;if(1015===d.type){if(!1===qa)throw Error("Float Depth Texture only supported in WebGL2.0");t=36012}else qa&&(t=33189);1026===d.format&&6402===t&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,
r=f.convert(d.type));1027===d.format&&(t=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,r=f.convert(d.type)));c.texImage2D(3553,0,t,e.width,e.height,0,q,r,null)}else if(d.isDataTexture)if(0<u.length&&k){for(var n=0,A=u.length;n<A;n++){var z=u[n];c.texImage2D(3553,n,t,z.width,z.height,0,q,r,z.data)}d.generateMipmaps=!1;b.__maxMipLevel=u.length-1}else c.texImage2D(3553,0,t,e.width,e.height,0,q,r,e.data),b.__maxMipLevel=
0;else if(d.isCompressedTexture){n=0;for(A=u.length;n<A;n++)z=u[n],1023!==d.format&&1022!==d.format?null!==q?c.compressedTexImage2D(3553,n,t,z.width,z.height,0,z.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,n,t,z.width,z.height,0,q,r,z.data);b.__maxMipLevel=u.length


배열을 입력한다.
/*
Feathers
Copyright 2012-2015 Joshua Tynjala. All Rights Reserved.

This program is free software. You can redistribute and/or modify it in
accordance with the terms of the accompanying license agreement.
*/
module feathers.controls
{
	import FeathersControl = feathers.core.FeathersControl;
	import IFocusDisplayObject = feathers.core.IFocusDisplayObject;
	import PropertyProxy = feathers.core.PropertyProxy;
	import ExclusiveTouch = feathers.events.ExclusiveTouch;
	import FeathersEventType = feathers.events.FeathersEventType;
	import IStyleProvider = feathers.skins.IStyleProvider;
	import clamp = feathers.utils.math.clamp;
	import roundToNearest = feathers.utils.math.roundToNearest;
	import roundToPrecision = feathers.utils.math.roundToPrecision;

	import TimerEvent = flash.events.TimerEvent;
	import Keyboard = flash.ui.Keyboard;
	import Timer = flash.utils.Timer;

	import DisplayObject = starling.display.DisplayObject;
	import Event = starling.events.Event;
	import KeyboardEvent = starling.events.KeyboardEvent;
	import Touch = starling.events.Touch;
	import TouchEvent = starling.events.TouchEvent;
	import TouchPhase = starling.events.TouchPhase;

	/**
	 * Dispatched when the stepper's value changes.
	 *
	 *
The properties of the event object have the following values:

	 *

	 *
Property	Value

	 *
bubbles	false

	 *
currentTarget	The Object that defines the
	 *   event listener that handles the event. For example, if you use
	 *   myButton.addEventListener() to register an event listener,
	 *   myButton is the value of the currentTarget.

	 *
data	null

	 *
target	The Object that dispatched the event;
	 *   it is not always the Object listening for the event. Use the
	 *   currentTarget property to always access the Object
	 *   listening for the event.

	 *

	 *
	 * @eventType starling.events.Event.CHANGE
	 */
	/*[Event(name="change",type="starling.events.Event")]*/

	/**
	 * Select a value between a minimum and a maximum by using increment and
	 * decrement buttons or typing in a value in a text input.
	 *
	 *
The following example sets the stepper's values and listens for when
	 * when the value changes:

	 *
	 * <listing version="3.0">
	 * var stepper:NumericStepper = new NumericStepper();
	 * stepper.minimum = 0;
	 * stepper.maximum = 100;
	 * stepper.step = 1;
	 * stepper.value = 12;
	 * stepper.addEventListener( Event.CHANGE, stepper_changeHandler );
	 * this.addChild( stepper );</listing>
	 *
	 * @see ../../../help/numeric-stepper.html How to use the Feathers NumericStepper component
	 */
	export class NumericStepper extends FeathersControl implements IRange, IFocusDisplayObject
	{
		/**
		 * @private
		 */
		protected static INVALIDATION_FLAG_DECREMENT_BUTTON_FACTORY:string = "decrementButtonFactory";

		/**
		 * @private
		 */
		protected static INVALIDATION_FLAG_INCREMENT_BUTTON_FACTORY:string = "incrementButtonFactory";

		/**
		 * @private
		 */
		protected static INVALIDATION_FLAG_TEXT_INPUT_FACTORY:string = "textInputFactory";

		/**
		 * The default value added to the styleN


base(),
                types::Rights::directory_inheriting(),
            ),
            types::Filetype::RegularFile => (
                types::Rights::regular_file_base(),
                types::Rights::regular_file_inheriting(),
            ),
            types::Filetype::SocketDgram | types::Filetype::SocketStream => (
                types::Rights::socket_base(),
                types::Rights::socket_inheriting(),
            ),
            types::Filetype::SymbolicLink | types::Filetype::Unknown => (
                types::Rights::regular_file_base(),
                types::Rights::regular_file_inheriting(),
            ),
        };
        let mut rights = EntryRights::new(base, inheriting);
        let flags = unsafe { fcntl::get_status_flags(self.as_raw_fd())? };
        let accmode = flags & OFlag::ACCMODE;
        if accmode == OFlag::RDONLY {
            rights.base &= !types::Rights::FD_WRITE;
        } else if accmode == OFlag::WRONLY {
            rights.base &= !types::Rights::FD_READ;
        }
        Ok(rights)
    }

    fn from_null() -> io::Result<Self> {
        let file = OpenOptions::new()
            .read(true)
            .write(true)
            .open("/dev/null")?;
        Ok(Self::from(file))
    }
}
use reflect::EnumDescriptor;
use reflect::MessageDescriptor;

pub enum RuntimeTypeBox {
    I32,
    I64,
    U32,
    U64,
    F32,
    F64,
    Bool,
    String,
    Chars,
    VecU8,
    CarllercheBytes,
    Enum(&'static EnumDescriptor),
    Message(&'static MessageDescriptor),
}
pub mod two_b;
<gh_stars>0
fn main() {
    let person = Person::new(1, String::from("java"), Gender::Male, 26);
    println!("{:?}", person);
    let person = BuilderPerson::new()
        .id(2)
        .name(String::from("rust"))
        .gender(Gender::FeMale)
        .age(18)
        .build();
    println!("{:?}", person);
    let person = BuilderPerson::new()
        .id(3)
        .name(String::from("python"))
        .gender(Gender::Male)
        .age(20)
        .build();
    println!("{:?}", person);
}

#[derive(Debug, Clone)]
enum Gender {
    Male,
    FeMale,
}

#[derive(Debug)]
struct Person {
    id: usize,
    name: String,
    gender: Gender,
    age: u8,
}

impl Person {
    fn new(id: usize, name: String, gender: Gender, age: u8) -> Self {
        Person {
            id,
            name,
            gender,
            age,
        }
    }
}

struct BuilderPerson {
    id: Option<usize>,
    name: Option<String>,
    gender: Option<Gender>,
    age: Option<u8>,
}
impl BuilderPerson {
    fn new() -> Self {
        BuilderPerson {
            id: None,
            name: None,
            gender: None,
            age: None,
        }
    }
    fn id(&mut self, id: usize) -> &mut Self {
        self.id = Some(id);
        self
    }
    fn name(&mut self, name: String) -> &mut Self {
        self.name = Some(name);
        self
    }
    fn gender(&mut self, gender: Gender) -> &mut Self {


/*
* TLS-Test Tool
* The TLS Test Tool checks the TLS configuration and compliance with the protocol specification for TLS servers and clients.
*
* Licensed under EUPL-1.2-or-later.
*
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at the LICENSE.md file or visit
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*/
#ifndef TLS_MBEDTLS_TLSLOGFILTER_H_
#define TLS_MBEDTLS_TLSLOGFILTER_H_

namespace Tooling {
    class Logger;
}
namespace TlsTestTool {
    namespace MbedTls {
/**
 * Implementation of TlsLogFilter for translating mbed TLS specific log messages to general log messages.
 */
        class TlsLogFilter {
        public:
            /**
             * Factory function for creating an instance for the currently used TLS library.
             */
            static void registerInstances(Tooling::Logger &logger);
        };
    }
}

#endif /* TLS_MBEDTLS_TLSLOGFILTER_H_ */


${this._renderNumberInput(bt,{max:pt})}
                  ${this._renderNumberInput(vt,{min:1})}
                `)}
              ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o`
                  ${this._renderSwitch(ft,this._defaults.performance.style.border_radius)}
                  ${this._renderSwitch($t,this._defaults.performance.style.box_shadow)}
                `)}

`:""}
        ${this._renderOptionSetHeader("remote_control")}
        ${"remote_control"===this._expandedMenus[Hn]?o`

              ${this._putInSubmenu("remote_control.entities",!0,"config.remote_control.entities.editor_label","mdi:devices",o`
                  ${this._renderEntitySelector(yt,"input_select")}
                `)}

`:""}
        ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")}
            ${"overrides"===this._expandedMenus[Hn]?o`

                  ${this._renderInfo(l("config.overrides.info"))}

`:""}`:o``}

    `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,i){this._expandedMenus[e]=i,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const i=e.target.domain,t=e.target.key;this._expandedMenus[i]===t?this._closeMenu(i):this._openMenu(i,t)}}_valueChangedHandler(e,i){if(!this._config||!this.hass)return;let t;if(i.detail&&void 0!==i.detail.value&&(t=i.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const n=u(this._config);""===t||void 0===t?wt(n,e):St(n,e,t),this._updateConfig(n)}static get styles(){return c('ha-icon-button {\n  color: var(--advanced-camera-card-button-color);\n  background-color: var(--advanced-camera-card-button-background);\n  border-radius: 50%;\n  padding: 0px;\n  margin: 3px;\n  --ha-icon-display: block;\n  /* Buttons can always be clicked */\n  pointer-events: auto;\n}\n\n.option {\n  padding: 4px 4px;\n  cursor: pointer;\n}\n\n.option.option-overrides .title {\n  color: var(--warning-color);\n}\n\n.row {\n  display: flex;\n  margin-bottom: -14px;\n  pointer-events: none;\n}\n\n.title {\n  padding-left: 16px;\n  margin-top: -6px;\n  pointer-events: none;\n}\n\n.title.warning {\n  color: var(--warning-color);\n}\n\n.secondary {\n  padding-left: 40px;\n  color: var(--secondary-text-color);\n  pointer-events: none;\n}\n\n.values {\n  background: var(--secondary-background-color);\n  display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n  margin-top: 10px;\n}\n\ndiv.upgrade {\n  width: auto;\n  border: 1px dotted var(--primary-color);\n  margin: 10px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\ndiv.upgrade span {\n  padding: 10px;\n}\n\n.submenu-header {\n  display: flex;\n  padding: 10px;\n  cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n  background-color: var(--primary-color);\n  color: var(--primary-text-color);\n}\n\n.submenu-header * {\n  flex-basis: auto;\n  pointer-events: none


1-838382202"
    )

    val erpPractitioner3_v12 = FhirTaskKbvPractitionerErpModel(
        name = "Dr. med. Paul Freiherr von Müller",
        qualification = "Facharzt für Innere Medizin: Kardiologie",
        doctorIdentifier = "123456628",
        dentistIdentifier = null,
        telematikId = null
    )

    val erpPractitioner4_v12 = FhirTaskKbvPractitionerErpModel(
        name = "Dr. med. Paul Freiherr von Müller",
        qualification = "Facharzt für Innere Medizin: Kardiologie",
        doctorIdentifier = null,
        dentistIdentifier = "123456",
        telematikId = "3BB-98z349"
    )
}
/*
 * Copyright (Change Date see Readme), gematik GmbH
 *
 * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the
 * European Commission – subsequent versions of the EUPL (the "Licence").
 * You may not use this work except in compliance with the Licence.
 *
 * You find a copy of the Licence in the "Licence" file or at
 * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.
 * In case of changes by gematik GmbH find details in the "Readme" file.
 *
 * See the Licence for the specific language governing permissions and limitations under the Licence.
 *
 * *******
 *
 * For additional notes and disclaimer from gematik and in case of changes by gematik find details in the "Readme" file.
 */

package de.gematik.ti.erp.app.fhir.prescription.parser

import de.gematik.ti.erp.app.data.digaDentistJson
import de.gematik.ti.erp.app.data.digaHospitalWithAddressJson
import de.gematik.ti.erp.app.data.digaInjuryJson
import de.gematik.ti.erp.app.data.digaOccupationalDiseaseJson
import de.gematik.ti.erp.app.data.digaSelJson
import de.gematik.ti.erp.app.data.digaSimple
import de.gematik.ti.erp.app.data.digaWithAccident2Json
import de.gematik.ti.erp.app.data.digaWithAccident3Json
import de.gematik.ti.erp.app.data.digaWithAccidentJson
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelTinnitus
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelType2
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelType3
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelWithAccident
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelWithDentist
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelWithInjury
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceRequestErpTestData.fhirTaskKbvDeviceRequestErpModelWithOccupationalDisease
import de.gematik.ti.erp.app.fhir.prescription.mocks.FhirDeviceReque


x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: StackOverflow Light
  Description: Light theme as used on stackoverflow.com
  Author: stackoverflow.com
  Maintainer: @Hirse
  Website: https://github.com/StackExchange/Stacks
  License: MIT
  Updated: 2021-05-15

  Updated for @stackoverflow/stacks v0.64.0
  Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less
  Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less
*/.hljs{color:#2f3337;background:#f6f6f6}.hljs-subst{color:#2f3337}.hljs-comment{color:#656e77}.hljs-attr,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-selector-tag{color:#015692}.hljs-attribute{color:#803378}.hljs-name,.hljs-number,.hljs-quote,.hljs-selector-id,.hljs-template-tag,.hljs-type{color:#b75501}.hljs-selector-class{color:#015692}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-string,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#54790d}.hljs-meta,.hljs-selector-pseudo{color:#015692}.hljs-built_in,.hljs-literal,.hljs-title{color:#b75501}.hljs-bullet,.hljs-code{color:#535a60}.hljs-meta .hljs-string{color:#54790d}.hljs-deletion{color:#c02d2e}.hljs-addition{color:#2f6f44}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: StackOverflow Dark
  Description: Dark theme as used on stackoverflow.com
  Author: stackoverflow.com
  Maintainer: @Hirse
  Website: https://github.com/StackExchange/Stacks
  License: MIT
  Updated: 2021-05-15

  Updated for @


::users::Entity)
                .from(Column::OriginatorUuid)
                .to(super::users::Column::UserUuid)
                .into(),
            Self::Sets => Entity::belongs_to(super::sets::Entity)
                .from(Column::SetUuid)
                .to(super::sets::Column::SetUuid)
                .into(),
        }
    }
}

impl Related<super::sets::Entity> for Entity {
    fn to() -> RelationDef {
        Relation::Sets.def()
    }
}

impl ActiveModelBehavior for ActiveModel {}
//! Core ZkVM stack types: data, variables, values, contracts etc.

use bulletproofs::r1cs;
use curve25519_dalek::scalar::Scalar;
use merlin::Transcript;
use serde::{Deserialize, Serialize};
use spacesuit::SignedInteger;

use crate::constraints::{Commitment, Constraint, Expression, Variable};
use crate::contract::{Contract, PortableItem};
use crate::encoding::{self, Encodable, SliceReader};
use crate::errors::VMError;
use crate::predicate::Predicate;
use crate::program::ProgramItem;
use crate::scalar_witness::ScalarWitness;
use crate::transcript::TranscriptProtocol;

/// An item on a VM stack.
#[derive(Debug)]
pub enum Item {
    /// A data item: a text string, a commitment or a scalar
    String(String),

    /// A program item: a bytecode string for `call`/`delegate` instructions
    Program(ProgramItem),

    /// A contract.
    Contract(Contract),

    /// A value type.
    Value(Value),

    /// A wide value type.
    WideValue(WideValue),

    /// A variable type.
    Variable(Variable),

    /// An expression type.
    Expression(Expression),

    /// A constraint type.
    Constraint(Constraint),
}

/// An item on a VM stack that can be copied and dropped.
#[derive(Clone, Debug)]
pub enum CopyableItem {
    /// A data item: a text string, a commitment or a scalar
    String(String),

    /// A variable type.
    Variable(Variable),
}

/// A data item.
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
pub enum String {
    /// Opaque data item.
    Opaque(Vec<u8>),

    /// A predicate.
    Predicate(Box<Predicate>),

    /// A Pedersen commitment.
    Commitment(Box<Commitment>),

    /// A scalar witness (scalar or integer).
    Scalar(Box<ScalarWitness>),

    /// An unspent output (utxo).
    Output(Box<Contract>),

    /// A u64 integer.
    Int(u64),
}

/// Represents a value of an issued asset in the VM.
/// Note: values do not necessarily have open commitments. Some can be reblinded,
/// others can be passed-through to an output without going through `cloak` and the constraint system.
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
pub struct Value {
    /// Commitment to value's quantity
    pub qty: Commitment,
    /// Commitment to value's flavor
    pub flv: Commitment,
}

/// Represents a cleartext value of an issued asset in the VM.
/// This is not the same as `spacesuit::Value` since it is guaranteed to be in-range
/// (negative quantity is not representable with this type).
#[derive(Copy, Clone, Debug, Serialize, Deserialize)]
pub struct ClearValue {
    /// Cleartext quantity integer
    pub qty: u64,
    /// Cleartext flavor scalar
    pub flv: Scalar,
}

/// A wide value type (for negative values created by `borrow`).
#[derive