) {
            MobidziennikWebGetMessage(data, message) {
                completed()
            }
        }
    }

    override fun sendMessage(recipients: Set<Teacher>, subject: String, text: String) {
        login(LoginMethod.MOBIDZIENNIK_WEB) {
            MobidziennikWebSendMessage(data, recipients, subject, text) {
                completed()
            }
        }
    }

    override fun markAllAnnouncementsAsRead() {}
    override fun getAnnouncement(announcement: AnnouncementFull) {}

    override fun getAttachment(owner: Any, attachmentId: Long, attachmentName: String) {
        login(LoginMethod.MOBIDZIENNIK_WEB) {
            MobidziennikWebGetAttachment(data, owner, attachmentId, attachmentName) {
                completed()
            }
        }
    }

    override fun getRecipientList() {
        login(LoginMethod.MOBIDZIENNIK_WEB) {
            MobidziennikWebGetRecipientList(data) {
                completed()
            }
        }
    }

    override fun getEvent(eventFull: EventFull) {
        login(LoginMethod.MOBIDZIENNIK_WEB) {
            if (eventFull.isHomework) {
                MobidziennikWebGetHomework(data, eventFull) {
                    completed()
                }
            }
            else {
                MobidziennikWebGetEvent(data, eventFull) {
                    completed()
                }
            }
        }
    }

    override fun firstLogin() { MobidziennikFirstLogin(data) { completed() } }
    override fun cancel() {
        Timber.d("Cancelled")
        data.cancel()
    }

    private fun wrapCallback(callback: EdziennikCallback): EdziennikCallback {
        return object : EdziennikCallback {
            override fun onCompleted() { callback.onCompleted() }
            override fun onRequiresUserAction(event: UserActionRequiredEvent) { callback.onRequiresUserAction(event) }
            override fun onProgress(step: Float) { callback.onProgress(step) }
            override fun onStartProgress(stringRes: Int) { callback.onStartProgress(stringRes) }
            override fun onError(apiError: ApiError) {
                if (apiError.errorCode in internalErrorList) {
                    // finish immediately if the same error occurs twice during the same sync
                    callback.onError(apiError)
                    return
                }
                internalErrorList.add(apiError.errorCode)
                when (apiError.errorCode) {
                    ERROR_MOBIDZIENNIK_WEB_ACCESS_DENIED,
                    ERROR_MOBIDZIENNIK_WEB_NO_SESSION_KEY,
                    ERROR_MOBIDZIENNIK_WEB_NO_SESSION_VALUE,
                    ERROR_MOBIDZIENNIK_WEB_NO_SERVER_ID -> {
                        data.loginMethods.remove(LoginMethod.MOBIDZIENNIK_WEB)
                        data.prepareFor(LoginMethod.MOBIDZIENNIK_WEB)
                        data.webSessionIdExpiryTime = 0
                        login()
                    }
                    else -> callback.onError(apiError)
                }
            }
        }
    }
}
package pl.szczodrzynski.edziennik.data.api.edziennik.librus.login

import com.google.gson.JsonObject
import im.wangchao.mhttp.Response
import pl.szczodrzynski.edziennik.*
import pl.szczodrzynski.edziennik.data.api.*
import pl.szczodrzynski.edziennik.data.api.edziennik.librus.Data


od_Toast_Raw                       .set(addItem(14000, "Dough (Toast Loaf)"                       , "Shape of a Toast Loaf"                                       , new FoodStat( 1, 0.600F,   0, C+37,  0.10F,   0,   0,   0,   0,   0, EnumAction.eat, null                                 , F, T, F, T), TC.stack(TC.HERBA, 1), TC.stack(TC.FAMES, 1)));
		IL.Food_Toast                           .set(addItem(14001, "Loaf of Toast"                            , "Do not teleport Bread!"                                      , new FoodStat( 8, 1.200F,   0, C+37,  0.10F,   0,   0,   0,   0,   0, EnumAction.eat, null                                 , F, T, F, T), TC.stack(TC.HERBA, 1), TC.stack(TC.FAMES, 1), TC.stack(TC.IGNIS, 1)));
		IL.Food_Toast_Sliced                    .set(addItem(14002, "Toast"                                    , "Best thing since sliced Bread, oh wait..."                   , new FoodStat( 1, 1.200F,   0, C+37,  0.10F,   0,   0,   0,   0,   0, EnumAction.eat, null                                 , F, T, F, T), TC.stack(TC.HERBA, 1), TC.stack(TC.FAMES, 1), TC.stack(TC.IGNIS, 1))); Sandwiches.INGREDIENTS.put(last(), (byte)254);
		IL.Food_Toasted_Sliced                  .set(addItem(14003, "Toasted Toast"                            , ""                                                            , new FoodStat( 1, 1.200F,   0, C+39,  0.10F,   0,   0,   0,   0,   0, EnumAction.eat, null                                 , F, T, F, T), TC.stack(TC.HERBA, 1), TC.stack(TC.FAMES, 1), TC.stack(TC.IGNIS, 2))); Sandwiches.INGREDIENTS.put(last(), (byte)253);
		RM.add_smelting(IL.Food_Toast_Raw.get(1), IL.Food_Toast.get(1), F, T, F);
		RM.add_smelting(IL.Food_Toast_Sliced.get(1), IL.Food_Toasted_Sliced.get(1), F, T, F);
		RM.food_can(IL.Food_Toast_Raw           .get(1), 8, "Canned Bread", IL.CANS_BREAD);
		RM.food_can(IL.Food_Toast               .get(1), 8, "Canned Bread", IL.CANS_BREAD);
		RM.food_can(IL.Food_Toast_Sliced        .get(1), 1, "Canned Bread", IL.CANS_BREAD);
		CR.shaped(IL.Food_Toast_Sliced.get(8), CR.DEF_NCC, "kX", 'X', IL.Food_Toast);
		CR.shapeless(IL.Food_Toast_Raw.get(1), CR.DEF, new Object[] {"foodDough", "foodDough", "foodDough", "foodDough"});
		RM.Slicer.addRecipe2(T, 16, 16, IL.Food_Toast.get(1), IL.Shape_Slicer_Flat.get(0), IL.Food_Toast_Sliced.get(8));

		FoodsGT.put(ST.make(Items.mushroom_stew     , 1, W), 0,10, 0, 5, 0);

		IL.Food_Chum_On_Stick                  .set(addItem(10010, "Ch


_vlqbwp_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_SET5_M SSTRUCT_ARY_SET51NXTLH_VLQBWP_M
#define bHYPRE_SStructGraph__array_set6_m SStruct_ary_set626e63zqj03urx_m
#define bhypre_sstructgraph__array_set6_m sstruct_ary_set626e63zqj03urx_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_SET6_M SSTRUCT_ARY_SET626E63ZQJ03URX_M
#define bHYPRE_SStructGraph__array_set7_m SStruct_ary_set70ppur0_nz5j80_m
#define bhypre_sstructgraph__array_set7_m sstruct_ary_set70ppur0_nz5j80_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_SET7_M SSTRUCT_ARY_SET70PPUR0_NZ5J80_M
#define bHYPRE_SStructGraph__array_slice_m SStruc_ary_slicexvqqjnpimpjh7_m
#define bhypre_sstructgraph__array_slice_m sstruc_ary_slicexvqqjnpimpjh7_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_SLICE_M SSTRUC_ARY_SLICEXVQQJNPIMPJH7_M
#define bHYPRE_SStructGraph__array_smartCopy_m SS_ary_smartCopyneqw3dszef2tf_m
#define bhypre_sstructgraph__array_smartcopy_m ss_ary_smartcopyneqw3dszef2tf_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_SMARTCOPY_M SS_ARY_SMARTCOPYNEQW3DSZEF2TF_M
#define bHYPRE_SStructGraph__array_stride_m SStru_ary_strideiz4aezvvpnkp2_m
#define bhypre_sstructgraph__array_stride_m sstru_ary_strideiz4aezvvpnkp2_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_STRIDE_M SSTRU_ARY_STRIDEIZ4AEZVVPNKP2_M
#define bHYPRE_SStructGraph__array_upper_m SStruc_ary_upperd_057462e0slc_m
#define bhypre_sstructgraph__array_upper_m sstruc_ary_upperd_057462e0slc_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_UPPER_M SSTRUC_ARY_UPPERD_057462E0SLC_M
#define bHYPRE_SStructGraph__array_length_m SStru_ary_length9tbukn1tjmw1e_m
#define bhypre_sstructgraph__array_length_m sstru_ary_length9tbukn1tjmw1e_m
#define BHYPRE_SSTRUCTGRAPH__ARRAY_LENGTH_M SSTRU_ARY_LENGTH9TBUKN1TJMW1E_M


(4.0 + progress * 2);
                this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.29d);

            } else {
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(26 + progress * (this.worldObj.getDifficulty() == Difficulties.HOSTILE ? 5 : 2));
                // 26 -> 31 -> 36 -> 41
                // relaxed: 24 + 26
                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(4.0 + progress * (this.worldObj.getDifficulty() == Difficulties.HOSTILE ? 2 : 1));
                // 4 -> 6 -> 8 -> 10
                // relaxed: 4 -> 5 -> 6 -> 7
            }
            followDistance *= this.worldObj.getDifficulty().getZombieFollowDistanceMultiplier();
        }

        this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(followDistance);
        this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(10 * NMUtils.getNiteMultiplier());
    }
    @Override
    public void knockBack(Entity par1Entity, float par2, double par3, double par5) {}

    @Override
    public float knockbackMagnitude() {
        return 0;
    }

    @Override
    protected void addRandomArmor() {
        if(NMUtils.getIsMobEclipsed(this)){
            if (this.rand.nextFloat() < 0.05f) {
                int iHeldType = this.rand.nextInt(3);
                if (iHeldType == 0) {
                    this.setCurrentItemOrArmor(0, new ItemStack(Item.swordIron));
                } else {
                    this.setCurrentItemOrArmor(0, new ItemStack(Item.shovelIron));
                }
                this.equipmentDropChances[0] = 1f;
            }
        }
    }
    private void teleportBehindTarget(EntityPlayer targetPlayer) {
        // Get player's facing direction (yaw) and calculate the opposite direction
        float yaw = targetPlayer.rotationYaw + 180; // 180° to teleport behind
        double radians = Math.toRadians(yaw);

        // Random distance between 5 and 10 blocks
        double distance = 5 + this.rand.nextInt(6);

        // Calculate the position behind the player
        int xOffset = (int) (-Math.sin(radians) * distance);
        int zOffset = (int) (Math.cos(radians) * distance);

        int targetX = MathHelper.floor_double(targetPlayer.posX + xOffset);
        int targetY = MathHelper.floor_double(targetPlayer.posY);
        int targetZ = MathHelper.floor_double(targetPlayer.posZ + zOffset);

        // Ensure the teleport location is valid
        if (this.worldObj.getBlockId(targetX, targetY, targetZ) == 0 &&
                this.worldObj.getBlockId(targetX, targetY - 1, targetZ) != 0 &&
                this.worldObj.getBlockId(targetX, targetY + 1, targetZ) == 0) {
            this.setPositionAndUpdate(targetX, targetY, targetZ);
            this.playSound("mob.endermen.portal", 2.0F, 1.0F);
        }
    }

    private void teleportToTarget(EntityPlayer targetPlayer){
        int xOffset = (this.rand.nextBoolean() ? -1 : 1) * (this.rand.nextInt(3)+1);
        int zOffset = (this.rand.nextBoolean() ? -1 : 1) * (this.rand.nextInt(3)+1);

        int targetX = MathHelper.floor_double(targetPlayer.posX + xOffset);
        int targetY = MathHelper.floor_double(targetPlayer.posY);
        int targetZ = MathHelper.floor_double(targetPlayer.posZ + zOffset);

        if(this.worldObj.getBlockId(targetX, targetY, targetZ) == 0 && this.worldObj.getBlockId(targetX,


)
  end

  xml_doc:set_attribs(basic_data.rotationSkew)
  xml_doc:set_attribs(basic_data.layoutComponent, {
    'LeftMargin', 'RightMargin', 'TopMargin', 'BottomMargin'
  })

  child_attr(xml_doc, 'Size',        basic_data.size)
  child_attr(xml_doc, 'AnchorPoint', basic_data.anchorPoint)
  child_attr(xml_doc, 'Position',    basic_data.position)
  child_attr(xml_doc, 'Scale',       basic_data.scale)
  child_attr(xml_doc, 'CColor',      basic_data.color)
end

local function set_resource_data(xml_doc, data, attr_name)
  local tp = data[attr_name].Type
  if tp == 0 or tp == nil then
    data[attr_name].Type = 'Default'
  else
    print('resource type: from 1 -> raw')
  end
  child_attr(xml_doc, attr_name, data[attr_name])
end

-- TODO get sprite size
local function set_scale_9_attr(xml_doc, capInsets, enable)
  if enable ~= nil then
    xml_doc:set_attrib('Scale9Enable', enable)
  end

  for k, v in pairs(capInsets) do
    capInsets[k] = assert(math.tointeger(v))
  end

  xml_doc:set_attrib('LeftEage'  , capInsets.Scale9OriginX)
  xml_doc:set_attrib('RightEage' , capInsets.Scale9OriginX)
  xml_doc:set_attrib('TopEage'   , capInsets.Scale9OriginY)
  xml_doc:set_attrib('BottomEage', capInsets.Scale9OriginY)
  xml_doc:set_attribs(capInsets)
end

local function set_text_outline(xml_doc, data)
  xml_doc:set_attribs(data, {
    "OutlineSize" , "OutlineEnabled",
  })
  child_attr(xml_doc, 'OutlineColor', data.OutlineColor)
end

local function set_text_shadow(xml_doc, data)
  xml_doc:set_attribs(data, {
    "ShadowOffsetX" , "ShadowBlurRadius", "ShadowOffsetY" , 'ShadowEnabled',
  })
  child_attr(xml_doc, 'ShadowColor', data.ShadowColor)
end

function classname_option_dict.ArmatureNode(xml_doc, data)
  set_basic_attr(xml_doc, data)
  xml_doc:set_attrib('ctype', "ArmatureNodeObjectData")

  child_attr(xml_doc, 'FileData', data.FileData)
  xml_doc:set_attribs(data, { 'IsLoop', 'IsAutoPlay', 'CurrentAnimationName' })
end

function classname_option_dict.CheckBox(xml_doc, data)
  set_basic_attr(xml_doc, data)
  xml_doc:set_attrib('ctype', "CheckBoxObjectData")

  xml_doc:set_attribs(data, { 'DisplayState', 'CheckedState' })

  set_resource_data(xml_doc, data, 'NormalBackFileData')
  set_resource_data(xml_doc, data, 'PressedBackFileData')
  set_resource_data(xml_doc, data, 'DisableBackFileData')
  set_resource_data(xml_doc, data, 'NodeNormalFileData')
  set_resource_data(xml_doc, data, 'NodeDisableFileData')
end

function classname_option_dict.ImageView(xml_doc, data)
  set_basic_attr(xml_doc, data)
  xml_doc:set_attrib('ctype', "ImageViewObjectData")

  set_scale_9_attr(xml_doc, data.capInsets, data.Scale9Enabled)
  child_attr(xml_doc, 'FileData',    data.fileNameData)
end

function classname_option_dict.ListView(xml_doc, data)
  xml_doc:set_attrib('ctype', "ListViewObjectData")
  set_basic_


uilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.tier) || (has(self.initProvider) && has(self.initProvider.tier))",message="spec.forProvider.tier is a required parameter"
	Spec   InteractiveQueryClusterSpec   `json:"spec"`
	Status InteractiveQueryClusterStatus `json:"status,omitempty"`
}

// +kubebuilder:object:root=true

// InteractiveQueryClusterList contains a list of InteractiveQueryClusters
type InteractiveQueryClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []InteractiveQueryCluster `json:"items"`
}

// Repository type metadata.
var (
	InteractiveQueryCluster_Kind             = "InteractiveQueryCluster"
	InteractiveQueryCluster_GroupKind        = schema.GroupKind{Group: CRDGroup, Kind: InteractiveQueryCluster_Kind}.String()
	InteractiveQueryCluster_KindAPIVersion   = InteractiveQueryCluster_Kind + "." + CRDGroupVersion.String()
	InteractiveQueryCluster_GroupVersionKind = CRDGroupVersion.WithKind(InteractiveQueryCluster_Kind)
)

func init() {
	SchemeBuilder.Register(&InteractiveQueryCluster{}, &InteractiveQueryClusterList{})
}
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0

// Code generated by upjet. DO NOT EDIT.

package v1beta1

import (
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime/schema"

	v1 "github.com/crossplane/crossplane-runtime/v2/apis/common/v1"
	v2 "github.com/crossplane/crossplane-runtime/v2/apis/common/v2"
)

type GlobalTableInitParameters struct {

	// Underlying DynamoDB Table. At least 1 replica must be defined. See below.
	Replica []ReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"`
}

type GlobalTableObservation struct {

	// The ARN of the DynamoDB Global Table
	Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`

	// The name of the DynamoDB Global Table
	ID *string `json:"id,omitempty" tf:"id,omitempty"`

	// Region where this resource will be managed. Defaults to the Region set in the provider configuration.
	// Region is the region you'd like your resource to be created in.
	Region *string `json:"region,omitempty" tf:"region,omitempty"`

	// Underlying DynamoDB Table. At least 1 replica must be defined. See below.
	Replica []ReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"`
}

type GlobalTableParameters struct {

	// Region where this resource will be managed. Defaults to the Region set in the provider configuration.
	// Region is the region you'd like your resource to be created in.
	// +kubebuilder:validation:Required
	Region *string `json:"region" tf:"region,omitempty"`

	// Underlying DynamoDB Table. At least 1 replica must be defined. See below.
	// +kubebuilder:validation:Optional
	Replica []ReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"`
}

type ReplicaInitParameters struct {

	// AWS region name of replica DynamoDB TableE.g., us-east-1
	RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"`
}

type ReplicaObservation struct {

	// AWS region name of replica DynamoDB TableE.g., us-east-1
	RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"`
}

type ReplicaParameters struct {

	// AWS region name o


//------------------------------------------------------------------------------
//  此代码版权声明为全文件覆盖，如有原作者特别声明，会在下方手动补充
//  此代码版权（除特别声明外的代码）归作者本人Diego所有
//  源代码使用协议遵循本仓库的开源协议及附加协议
//  Gitee源代码仓库：https://gitee.com/diego2098/ThingsGateway
//  Github源代码仓库：https://github.com/kimdiego2098/ThingsGateway
//  使用文档：https://thingsgateway.cn/
//  QQ群：605534569
//------------------------------------------------------------------------------

namespace ThingsGateway.Admin.Application;

/// <summary>
/// 会话输出
/// </summary>
public class SessionOutput : PrimaryIdEntity
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [System.ComponentModel.DataAnnotations.Key]
    public override long Id { get; set; }

    /// <summary>
    /// 账号
    ///</summary>
    [AutoGe


548\u7A7A\u503C\u8F38\u5165: {0}"},
        {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
        {"NTNumericCredential.name", "NTNumericCredential: {0}"},
        {"Invalid.NTSid.value", "\u7121\u6548 NTSid \u503C"},
        {"NTSid.name", "NTSid: {0}"},
        {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
        {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
        {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
        {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
        {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},

        // UnixPrincipals
        {"UnixNumericGroupPrincipal.Primary.Group.name",
                "UnixNumericGroupPrincipal [\u4E3B\u7FA4\u7D44]: {0}"},
        {"UnixNumericGroupPrincipal.Supplementary.Group.name",
                "UnixNumericGroupPrincipal [\u9644\u52A0\u7FA4\u7D44]: {0}"},
        {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
        {"UnixPrincipal.name", "UnixPrincipal: {0}"},

        // com.sun.security.auth.login.ConfigFile
        {"Unable.to.properly.expand.config", "\u7121\u6CD5\u9069\u7576\u5730\u64F4\u5145 {0}"},
        {"extra.config.No.such.file.or.directory.",
                "{0} (\u6C92\u6709\u6B64\u6A94\u6848\u6216\u76EE\u9304)"},
        {"Configuration.Error.No.such.file.or.directory",
                "\u7D44\u614B\u932F\u8AA4:\n\t\u7121\u6B64\u6A94\u6848\u6216\u76EE\u9304"},
        {"Configuration.Error.Invalid.control.flag.flag",
                "\u7D44\u614B\u932F\u8AA4:\n\t\u7121\u6548\u7684\u63A7\u5236\u65D7\u6A19\uFF0C{0}"},
        {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
            "\u7D44\u614B\u932F\u8AA4: \n\t\u7121\u6CD5\u6307\u5B9A\u591A\u91CD\u9805\u76EE {0}"},
        {"Configuration.Error.expected.expect.read.end.of.file.",
                "\u7D44\u614B\u932F\u8AA4: \n\t\u9810\u671F\u7684 [{0}], \u8B80\u53D6 [end of file]"},
        {"Configuration.Error.Line.line.expected.expect.found.value.",
            "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u9810\u671F\u7684 [{1}], \u767C\u73FE [{2}]"},
        {"Configuration.Error.Line.line.expected.expect.",
            "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u9810\u671F\u7684 [{1}]"},
        {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
            "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u7CFB\u7D71\u5C6C\u6027 [{1}] \u64F4\u5145\u81F3\u7A7A\u503C"},

        // com.sun.security.auth.module.JndiLoginModule
        {"username.","\u4F7F\u7528\u8005\u540D\u7A31: "},
        {"password.","\u5BC6\u78BC: "},

        // com.sun.security.auth.module.KeyStoreLoginModule
        {"Please.enter.keystore.information",
                "\u8ACB\u8F38\u5165\u91D1\u9470\u5132\u5B58\u5EAB\u8CC7\u8A0A"},
        {"Keystore.alias.","\u91D1\u9470\u5132\u5B58\u5EAB\u5225\u540D: "},
        {"Keystore.password.","


16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"
}, contains: [
  Mode(
      className: "meta",
      relevance: 10,
      begin: "^\\s*['\"]use (strict|asm)['\"]"),
  Mode(className: "meta", begin: "^#!", end: "\$"),
  APOS_STRING_MODE,
  QUOTE_STRING_MODE,
  Mode(ref: '~contains~4'),
  Mode(ref: '~contains~4~starts~contains~1~contains~3'),
  Mode(ref: '~contains~4~starts~contains~1~contains~4'),
  C_LINE_COMMENT_MODE,
  Mode(
      className: "comment",
      begin: "/\\*\\*",
      end: "\\*/",
      contains: [
        Mode(className: "doctag", begin: "@[A-Za-z]+", contains: [
          Mode(className: "type", begin: "\\{", end: "\\}", relevance: 0),
          Mode(
              className: "variable",
              begin: "[A-Za-z\$_][0-9A-Za-z\$_]*(?=\\s*(-)|\$)",
              endsParent: true,
              relevance: 0),
          Mode(begin: "(?=[^\\n])\\s", relevance: 0)
        ]),
        PHRASAL_WORDS_MODE,
        Mode(
            className: "doctag",
            begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
            relevance: 0)
      ],
      relevance: 0),
  C_BLOCK_COMMENT_MODE,
  Mode(ref: '~contains~4~starts~contains~1~contains~5'),
  Mode(begin: "[{,\\n]\\s*", relevance: 0, contains: [
    Mode(
        begin: "[A-Za-z\$_][0-9A-Za-z\$_]*\\s*:",
        returnBegin: true,
        relevance: 0,
        contains: [
          Mode(
              className: "attr",
              begin: "[A-Za-z\$_][0-9A-Za-z\$_]*",
              relevance: 0)
        ])
  ]),
  Mode(
      begin:
          "(!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||\\x7e|\\b(case|return|throw)\\b)\\s*",
      keywords: "return throw case",
      contains: [
        C_LINE_COMMENT_MODE,
        C_BLOCK_COMMENT_MODE,
        REGEXP_MODE,
        Mode(
            className: "function",
            begin: "(\\(.*?\\)|[A-Za-z\$_][0-9A-Za-z\$_]*)\\s*=>",
            returnBegin: true,
            end: "\\s*=>",
            contains: [
              Mode(className: "params", variants: [
                Mode(begin: "[A-Za-z\$_][0-9A-Za-z\$_]*"),
                Mode(begin: "\\(\\s*\\)"),
                Mode(
                    begin: "\\(",
                    end: "\\)",
                    excludeBegin: true,
                    excludeEnd: true,
                    keywords: {
                      "keyword":
                          "in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",
                      "literal": "true false null undefined NaN Infinity",
                      "built_in":
                          "eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxErro


; smoke

;	lda	#<trogdor_cave_zx02
;	sta	zx_src_l+1
;	lda	#>trogdor_cave_zx02
;	sta	zx_src_h+1

;	lda	#$40

;	jsr	zx02_full_decomp

;	jsr	update_top
	jsr	update_score
	jsr	print_score

	;======================
	; draw rather dashing

	lda	#12
	sta	CURSOR_X
	lda	#142
	sta	CURSOR_Y

	lda	#1
	sta	BABY_COUNT

dashing_loop:

	ldy	BABY_COUNT
	lda	dashing_progress_l,Y
	sta	INL
	lda	dashing_progress_h,Y
	sta	INH

	jsr	hgr_draw_sprite

	lda	#220
	jsr	wait

	ldy	BABY_COUNT
	cpy	#7
	bne	no_boom

	lda     #64
        sta     speaker_duration
        lda     #NOTE_C4
        sta     speaker_frequency
        jsr     speaker_tone

no_boom:

	inc	BABY_COUNT
	lda	BABY_COUNT
	cmp	#9
	bne	dashing_loop

	; collapse with boom

	;==================
	; message

	ldx	#<trogdor_honestly_message3
	ldy	#>trogdor_honestly_message3
	jsr	finish_parse_message

game_over:

	; go to end credits

	lda	#NEW_FROM_DISK
	sta	LEVEL_OVER

	lda     #LOAD_ENDING
        sta     WHICH_LOAD

        rts

	;============================
	; trogdor talks
	;============================

trogdor_talks:

	;==================================
	; text to speech, where available!

	lda	SOUND_STATUS
	and	#SOUND_SSI263
	beq	skip_speech

	lda	MOCKINGBOARD_SLOT		; assume slot #4 for now
	jsr	ssi263_speech_init

        jsr     ssi263_speak

	bit	KEYRESET
wait_for_speech:
	lda	KEYPRESS
	bmi	cancel_speech

	lda	speech_busy
	bmi	wait_for_speech
	bpl	done_speech

cancel_speech:
	bit	KEYRESET

	jsr	ssi263_speech_shutdown

	jmp	done_speech

skip_speech:
	jsr	wait_until_keypress

done_speech:
;	lda	#0
;	ldx	#39
;	jsr	hgr_partial_restore

	rts

dashing_progress_l:
	.byte <dashing0_sprite,<dashing1_sprite,<dashing2_sprite
	.byte <dashing3_sprite,<dashing4_sprite,<dashing5_sprite
	.byte <dashing6_sprite,<dashing7_sprite,<dashing8_sprite

dashing_progress_h:
	.byte >dashing0_sprite,>dashing1_sprite,>dashing2_sprite
	.byte >dashing3_sprite,>dashing4_sprite,>dashing5_sprite
	.byte >dashing6_sprite,>dashing7_sprite,>dashing8_sprite

.include "../text/dialog_trogdor.inc"


ue,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "suppressImplicitAnyIndexErrors": true,
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  },
  "include": [
    "src/**/*.ts",
  ],
  "exclude": [
    "node_modules",
    "config"
  ]
}`,
    },
  ],
  FIVE: [
    {
      code: `npm install typescript ts-loader`,
    },
  ],
  SIX: [
    {
      code:
`{ // 配置ts语法解析(如果需要解析tsx以|分隔，加在ts后面即可)
  test: /\\.(ts)$/,
  exclude: /node_modules/,
  use: [
    {
      loader: 'babel-loader',
    },
    {
      loader: "ts-loader",
      options: {
        transpileOnly: true,  // 只进行编译
      }
    },
  ]
},`,
    },
  ],
  SEVEN: [
    {
      code: `npm install typescript @babel/preset-typescript`,
    },
  ],
  EIGHT: [
    {
      code: `"presets": [<span class="string">"@babel/env"</span>, <span class="string">"@babel/preset-typescript"</span>],`,
    },
  ],
  NINE: [
    {
      code: `npm install tslint`,
    },
  ],
  TEN: [
    {
      code:
`{
  "defaultSeverity": "warning",
  "extends": [
    "tslint:recommended"
  ],
  "linterOptions": {
    "exclude": [
      "node_modules/**"
    ]
  },
  "rules": {
    "no-bitwise": [false],
    "no-angle-bracket-type-assertion": [false],
    "member-ordering": [false],
    "variable-name": [false],
    "no-console": [false],
    "no-empty": [false],
    "max-line-length": [false],
    "quotemark": [true, "single"],
    "indent": [false, "tabs", 4],
    "interface-name": false,
    "ordered-imports": false,
    "object-literal-sort-keys": false,
    "no-consecutive-blank-lines": false


t-Type" content="text/html; charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link>

Регистр сведений «Журнал входящих HTTP-запросов»

Регистр сведений «Журнал входящих HTTP-запросов» предназначен для записи и хранения информации о параметрах входящих HTTP-запросов.

Параметры извлекаются из входящего HTTP-запроса и представлены в удобном для чтения и анализа виде.

В журнале хранятся такие параметры запросов как: дата запроса, URL запрашиваемого ресурса, сервис, длительность обработки запроса, параметры из тела запроса и из URL, код состояния и ответ HTTP-сервиса клиенту.

Срок хранения записей журнала для каждого сервиса задается в настройках справочника "Сервисы".

Устаревшие записи журнала удаляются по расписанию регламентного задания "Сокращение журналов входящих HTTP-запросов и конфликтов HTTP-запросов".

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link>

Конфигурация «Контроль HTTP-сервисов. Редакция 1.0».

Инструмент предназначен для автоматизации процессов управления HTTP-сервисами на всех этапах: ведение списка HTTP-сервисов и их настройка в пользовательском режиме 1С:Предприятия, поступление запроса, контроль заполнения обязательных параметров, запись и хранение параметров запроса и ответа на него, проверка идемпотентности. Данное решение помогает организовать журналирование, логирование параметров входящих запросов и их метрик, а также организовать контроль небезопасных методов HTTP-запросов: обнаружение гонки запросов, блокирование конфликтующих запросов и их автоматическое разблокирование в соответствии с заданными параметрами.

<!DOCTYPE html>

	<title>leaflet-kmz</title>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<meta name="view


used       free     shared    buffers     cached
Mem:        128956      96440      32515          0       5368      39900
-/+ buffers/cache:      51172      77784
Swap:        16002          0      16001
```
cached 列表示当前的页缓存(Page Cache)占用量，buffers 列表示当前的块缓存(buffer cache)占用量。

**Page Cache 用于缓存文件的页数据，buffer cache 用于缓存块设备(如磁盘)的块数据**。页是逻辑上的概念，因此 Page Cache 是与文件系统同级的；块是物理上的概念，因此 buffer cache 是与块设备驱动程序同级的。

> Page Cache 与 buffer cache 的共同目的都是加速数据 I/O：写数据时首先写到缓存，将写入的页标记为 dirty，然后向外部存储 flush，也就是缓存写机制中的 write-back(另一种是 write-through，Linux 默认情况下不采用)；读数据时首先读取缓存，如果未命中，再去外部存储读取，并且将读取来的数据也加入缓存。操作系统总是积极地将所有空闲内存都用作 Page Cache 和 buffer cache，当内存不够用时也会用 LRU 等算法淘汰缓存页。

Page Cache 中的每个文件都是一棵基数树(radix tree，本质上是多叉搜索树)，树的每个节点都是一个页。根据文件内的偏移量就可以快速定位到所在的页
> [基数树](https://en.wikipedia.org/wiki/Radix_tree)

#### Page Cache 与预读[Top]
操作系统为基于 Page Cache 的读缓存机制提供**预读机制**(`PAGE_READAHEAD`)，一个例子是：
- 用户线程仅仅请求读取磁盘上文件 A 的 offset 为 0-3KB 范围内的数据，由于磁盘的基本读写单位为 block(4KB)，于是操作系统至少会读 0-4KB 的内容，这恰好可以在一个 page 中装下。
- 但是操作系统出于局部性原理会选择将磁盘块 offset [4KB,8KB)、[8KB,12KB) 以及 [12KB,16KB) 都加载到内存，于是额外在内存中申请了 3 个 page；

#### 持久化的一致性&可靠性[Top]
任何系统引入缓存，就会引发一致性问题。`文件 = 数据 + 元数据`。元数据用来描述文件的各种属性，也必须存储在磁盘上。因此，保证文件一致性其实包含了两个方面：**数据一致+元数据一致**。

当前 Linux 下以两种方式实现文件一致性：
- **Write Through(写穿)**：向用户层提供特定接口，应用程序可主动调用接口来保证文件一致性；
- **Write back(写回)**


]

	ldr	x2, =NXP_GICD_ADDR

	/*
	 * x2 = gicd base addr
	 * x3 = pmu base addr
	 */

	/* Backup flextimer/mmc/usb interrupt router */
	ldr	x0, =GICD_IROUTER60_OFFSET
	ldr	x1, =GICD_IROUTER76_OFFSET
	ldr	w4, [x2, x0]
	ldr	w5, [x2, x1]
	ldr	x0, =GICD_IROUTER112_OFFSET
	ldr	x1, =GICD_IROUTER113_OFFSET
	ldr	w6, [x2, x0]
	ldr	w7, [x2, x1]
	stp	x4,  x5,  [sp, #-16]!
	stp	x6,  x7,  [sp, #-16]!

	/*
	 * x2 = gicd base addr
	 * x3 = pmu base addr
	 * x0 = GICD_IROUTER112_OFFSET
	 * x1 = GICD_IROUTER113_OFFSET
	 */

	/* Re-route interrupt to cluster 1 */
	ldr	w4, =GICD_IROUTER_VALUE
	str	w4, [x2, x0]
	str	w4, [x2, x1]
	ldr	x0, =GICD_IROUTER60_OFFSET
	ldr	x1, =GICD_IROUTER76_OFFSET
	str	w4, [x2, x0]
	str	w4, [x2, x1]
	dsb	sy
	isb

	/* x3 = pmu base addr */

	/* Disable sec, Check for eNETC, spi and qspi */
	ldr	x2, =NXP_DCFG_ADDR
	ldr	x0, =DCFG_DEVDISR1_OFFSET
	ldr	w1, =DCFG_DEVDISR1_SEC
	str	w1, [x2, x0]

	ldr	x0, =DCFG_DEVDISR4_OFFSET
	ldr	w1, =DCFG_DEVDISR4_SPI_QSPI
	str	w1, [x2, x0]

	/* x3 = pmu base addr */

	/* Set TPMWAKEMR0 */
	ldr	x0, =TPMWAKEMR0_ADDR
	mov	w1, #0x1
	str	w1, [x0]

	/* Disable CCI snoop domain */
	ldr	x0, =NXP_CCI_ADDR
	mov	w1, #0x1
	str	w1, [x0]

	/* Setup retention control */
	mrs	x0, CPUECTLR_EL1
	orr	x0, x0, #CPUECTLR_SMPEN_EN
	orr	x0, x0, #CPUECTLR_TIMER_2TICKS
	msr	CPUECTLR_EL1, x0
	dsb	sy
	isb

	bl	get_pmu_idle_core_mask
	mov	x3, #NXP_PMU_ADDR
8:
	ldr	w1, [x3, #PMU_PCPW20SR_OFFSET]
	cmp	w1, w0
	b.ne	8b

	/* x3 = NXP_PMU_ADDR */
	/* 1 cluster SoC */

	bl	get_pmu_idle_cluster_mask
	mov	x3, #NXP_PMU_ADDR

	str	w0, [x3, #PMU_CLAINACTSETR_OFFSET]

	bl	get_pmu_idle_core_mask
	/* x3 = NXP_PMU_ADDR */
	mov	x3, #NXP_PMU_ADDR
1:
	ldr	w1, [x3, #PMU_PCPW20SR_OFFSET]
	cmp	w1, w0
	b.ne	1b

	/* x3 = NXP_PMU_ADDR */
	bl	get_pmu_flush_cluster_mask
	mov	x3, #NXP_PMU_ADDR

	str	w0, [x3, #PMU_CLL2FLUSHSETR_OFFSET]

	/* x3 = N


owrap;text-overflow:ellipsis}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{margin-right:12px;color:#00000073;font-size:14px;line-height:1.5715;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:12px;white-space:unset}.ant-page-header-heading-extra>*:first-child{margin-left:0}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{padding-top:8px;padding-bottom:8px;font-size:16px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-right:0;margin-left:16px}.ant-page-header-rtl .ant-page-header-heading-title,.ant-page-header-rtl .ant-page-header-heading .ant-avatar{margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-right:12px;margin-left:0}.ant-page-header-rtl .ant-page-header-heading-extra>*:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.guoba-page-wrapper{position:relative}.guoba-page-wrapper .guoba-page-wrapper-content{margin:16px}.guoba-page-wrapper .ant-page-header:empty{padding:0}.guoba-page-wrapper-content-bg{background-color:#fff}.guoba-page-wrapper--dense .guoba-page-wrapper-content{margin:0}
/*!
 * Vditor v3.10.8 - A markdown editor written in TypeScript.
 *
 * MIT License
 *
 * Copyright (c) 2018-present B3log 开源, b3log.org
 *
 * 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


3>

Source§
fn into_iter(self) -> IntoIter<T>

Creates a consuming iterator, that is, one that moves each value out\nof the set in arbitrary order. The set cannot be used after calling\nthis.
\n
§Examples
\n

use std::collections::HashSet;\nlet mut set = HashSet::new();\nset.insert(\"a\".to_string());\nset.insert(\"b\".to_string());\n\n// Not possible to collect to a Vec<String> with a regular `.iter()`.\nlet v: Vec<String> = set.into_iter().collect();\n\n// Will print in an arbitrary order.\nfor x in &v {\n    println!(\"{x}\");\n}

\n

Source§
type Item = T

The type of the elements being iterated over.

Source§
type IntoIter = <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/se


parameters.
- Speed up multi-gpu testing.
- Integrate all compiling and installing in a single script.

### v0.6.0 (14/04/2019)
- Up to 30% speedup compared to the model zoo.
- Support both PyTorch stable and nightly version.
- Replace NMS and SigmoidFocalLoss with Pytorch CUDA extensions.

### v0.6rc0(06/02/2019)
- Migrate to PyTorch 1.0.

### v0.5.7 (06/02/2019)
- Add support for Deformable ConvNet v2. (Many thanks to the authors and [@chengdazhi](https://github.com/chengdazhi))
- This is the last release based on PyTorch 0.4.1.

### v0.5.6 (17/01/2019)
- Add support for Group Normalization.
- Unify RPNHead and single stage heads (RetinaHead, SSDHead) with AnchorHead.

### v0.5.5 (22/12/2018)
- Add SSD for COCO and PASCAL VOC.
- Add ResNeXt backbones and detection models.
- Refactoring for Samplers/Assigners and add OHEM.
- Add VOC dataset and evaluation scripts.

### v0.5.4 (27/11/2018)
- Add SingleStageDetector and RetinaNet.

### v0.5.3 (26/11/2018)
- Add Cascade R-CNN and Cascade Mask R-CNN.
- Add support for Soft-NMS in config files.

### v0.5.2 (21/10/2018)
- Add support for custom datasets.
- Add a script to convert PASCAL VOC annotations to the expected format.

### v0.5.1 (20/10/2018)
- Add BBoxAssigner and BBoxSampler, the `train_cfg` field in config files are restructured.
- `ConvFCRoIHead` / `SharedFCRoIHead` are renamed to `ConvFCBBoxHead` / `SharedFCBBoxHead` for consistency.
## Common settings

- All baselines were trained using 8 GPU with a batch size of 8 (1 images per GPU) using the [linear scaling rule](https://arxiv.org/abs/1706.02677) to scale the learning rate.
- All models were trained on `cityscapes_train`, and tested on `cityscapes_val`.
- 1x training schedule indicates 64 epochs which corresponds to slightly less than the 24k iterations reported in the original schedule from the [Mask R-CNN paper](https://arxiv.org/abs/1703.06870)
- COCO pre-trained weights are used to initialize.
- A conversion [script](../../tools/convert_datasets/cityscapes.py) is provided to convert Cityscapes into COCO format. Please refer to [INSTALL.md](../../docs/INSTALL.md#prepare-datasets) for details.
- `CityscapesDataset` implemented three evaluation methods. `bbox` and `segm` are standard COCO bbox/mask AP. `cityscapes` is the cityscapes dataset official evaluation, which may be slightly higher than COCO.

### Faster R-CNN

|    Backbone     |  Style  | Lr schd | Scale    | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | Download |
| :-------------: | :-----: | :-----: | :---:    | :------: | :-----------------: | :------------: | :----: | :------: |
|    R-50-FPN     | pytorch |   1x    | 800-1024 | 4.9      | -                   | -              | 41.6   | [model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmdetecti


 +--------------+   EoB Sent  +--------------+  EOB ACK Rx +-------------+
 *   | Burst |--------------->| End-of-burst |------------>| Wait EOB ACK |------------>| Start burst |<-- Initial state
 *   +-------+                +--------------+             +--------------+             +-------------+
 *      ^                                                         |                            |
 *      |                                                         | New Transmission           | New Transmission
 *      |                                                         | (TS timed out)             |
 *      |                                                         |                            |
 *      |               Start of burst is transmitted             |                            |
 *      +---------------------------------------------------------+----------------------------+
 */
typedef enum {
  RF_UHD_IMP_TX_STATE_START_BURST = 0,
  RF_UHD_IMP_TX_STATE_BURST,
  RF_UHD_IMP_TX_STATE_END_OF_BURST,
  RF_UHD_IMP_TX_STATE_WAIT_EOB_ACK ///< Wait for enb-of-burst ACK
} rf_uhd_imp_underflow_state_t;

/**
 * List of devices that do NOT support dynamic master-clock-rate
 */
const std::set<std::string> RH_UHD_IMP_FIX_MASTER_CLOCK_RATE_DEVICE_LIST = {"x300", "n3xx", "e3x0"};

/**
 * List of devices that do NOT support stream stop/start after a time out
 */
const std::set<std::string> RF_UHD_IMP_PROHIBITED_STREAM_REMAKE = {DEVNAME_X300,
                                                                   DEVNAME_N300,
                                                                   DEVNAME_E3X0,
                                                                   DEVNAME_B200};

/**
 * List of devices that do NOT support end of burst flushing
 */
const std::set<std::string> RF_UHD_IMP_PROHIBITED_EOB_FLUSH = {DEVNAME_X300, DEVNAME_N300};

/**
 * List of devices that do NOT require/support to restart streaming after rate changes/timeouts
 */
const std::set<std::string> RF_UHD_IMP_PROHIBITED_STOP_START = {DEVNAME_B200};

/**
 * List of devices that work better if timespec is sent at the start of the burst only
 */
const std::set<std::string> RF_UHD_IMP_TIMESPEC_AT_BURST_START_ONLY = {DEVNAME_X300, DEVNAME_N300};

/**
 * Defines a delay used between the current USRP time and the start of the transmission. This value needs to be high
 * enough for being distributed to all the devices before the time expires and short enough to be as seamless as
 * possible.
 */
static const double RF_UHD_IMP_STREAM_DELAY_S = 0.1;

/**
 * Defines a delay used between the current USRP time and a timed command.
 */
static const double RF_UHD_IMP_TIMED_COMMAND_DELAY_S = 0.1;

/**
 * Send and receive timeout in seconds
 */
static const double RF_UHD_IMP_TRX_TIMEOUT_S = 0.5;

/**
 * Receive asynchronous message receiver timeout
 */
static const double RF_UHD_IMP_ASYNCH_MSG_TIMEOUT_S = 0.0;

/**
 * Asynchronous message receiver sleep time
 */
static const std::chrono::milliseconds RF_UHD_IMP_ASYNCH_MSG_SLEEP_MS = std::chrono::milliseconds(100);

/**
 * Maximum of Rx Trials
 */
static const uint32_t RF_UHD_IMP_MAX_RX_TRIALS = 100;

/**
 * Timeout for end of burst ack.
 */
static const double RF_UHD_IMP


#pragma once
#include "test_scenes/test_id_to_pool_id.h"

enum class test_scene_particle_effect_id {
	// GEN INTROSPECTOR enum class test_scene_particle_effect_id
	WANDERING_SMOKE,
	ENGINE_PARTICLES,
	MUZZLE_SMOKE,
	EXHAUSTED_SMOKE,
	FOOTSTEP_SMOKE,
	CAST_CHARGING,
	HEALTH_DAMAGE_SPARKLES,
	CAST_SPARKLES,
	EXPLODING_RING_SMOKE,
	EXPLODING_RING_SPARKLES,
	PIXEL_MUZZLE_LEAVE_EXPLOSION,
	PISTOL_MUZZLE_LEAVE_EXPLOSION,
	FIRE_MUZZLE_LEAVE_EXPLOSION,
	SZTURM_MUZZLE_LEAVE_EXPLOSION,
	ELECTRIC_PROJECTILE_DESTRUCTION,
	STEEL_PROJECTILE_DESTRUCTION,
	PISTOL_PROJECTILE_DESTRUCTION,
	ELECTRIC_PROJECTILE_TRACE,
	STEEL_PROJECTILE_TRACE,
	STEEL_PROJECTILE_TRACE_PRECISE,
	SHELL_FIRE,
	ROUND_ROTATING_BLOOD_STREAM,
	THUNDER_REMNANTS,
	SKULL_ROCKET_TRACE,
	SKULL_ROCKET_DESTRUCTION,
	SKULL_ROCKET_MUZZLE_LEAVE_EXPLOSION,
	HPSR_ROUND_MUZZLE_LEAVE_EXPLOSION,
	PICKUP_SPARKLES,
	STEAM_BURST,
	HASTE_FOOTSTEP,
	GLASS_DAMAGE,
	METAL_DAMAGE,
	WOOD_DAMAGE,
	ELECTRIC_RICOCHET,
	STEEL_RICOCHET,
	AQUARIUM_BUBBLES,
	FLOWER_BUBBLES,
	FISH_BUBBLE,
	STANDARD_LEARNT_SPELL,
	DETACHED_HEAD_FIRE,
	STANDARD_KNIFE_IMPACT,
	STANDARD_KNIFE_CLASH,
	STANDARD_KNIFE_ATTACK,

	FURY_THROWER_TRACE,
	FURY_THROWER_ATTACK,

	POSEIDON_THROWER_TRACE,
	POSEIDON_THROWER_ATTACK,

	STANDARD_KNIFE_PRIMARY_SMOKE,
	STANDARD_KNIFE_SECONDARY_SMOKE,

	DASH_SMOKE,
	ICE_PROJECTILE_DESTRUCTION,

	GREEN_RED_INSECT_SPARKLES,
	CYAN_BLUE_INSECT_SPARKLES,
	VIOLET_GREEN_INSECT_SPARKLES,

	COVERT_PISTOL_MUZZLE_LEAVE_EXPLOSION,

	CORPSE_CATCH_FIRE,

	PORTAL_CIRCLE,
	PORTAL_BEGIN_ENTERING,
	PORTAL_ENTER,
	PORTAL_EXIT,

	LAVA_CIRCLE,

	COUNT
	// END GEN INTROSPECTOR
};

inline auto to_particle_effect_id(const test_scene_particle_effect_id id) {
	return to_pool_id<assets::particle_effect_id>(id);
}


assert len(LockStatus) == 2
        assert LockStatus.LOCKED in LockStatus
        assert LockStatus.PAIDOUT in LockStatus

    def test_smart_lock_decimal_precision(self):
        """Test that token_amount handles high precision decimals correctly."""
        test_account_address = TEST_ACCOUNT_ADDRESS

        # Test with 18 decimal precision (matching the model's scale)
        high_precision_amount = Decimal("123456789.123456789123456789")

        smart_lock = SmartLock(
            lock_id=6,
            token="HIGH_PRECISION",
            date_locked=datetime.now(),
            token_amount=high_precision_amount,
            lock_duration=600,
            account_address=test_account_address,
        )

        db.session.add(smart_lock)
        db.session.commit()

        # Retrieve and verify precision is maintained within database precision limits
        retrieved_lock = SmartLock.query.filter_by(lock_id=6).first()
        # The database precision might truncate,
        # we check that it's approximately equal
        assert abs(retrieved_lock.token_amount - high_precision_amount) < Decimal(
            "0.000001"
        )

    def test_smart_lock_date_locked_field(self):
        """Test date_locked field."""
        test_account_address = TEST_ACCOUNT_ADDRESS
        test_date = datetime(2024, 1, 15, 12, 30, 45)

        smart_lock = SmartLock(
            lock_id=7,
            token="DATE_TEST",
            date_locked=test_date,
            token_amount=Decimal("42.0"),
            lock_duration=1800,
            account_address=test_account_address,
        )

        db.session.add(smart_lock)
        db.session.commit()

        retrieved_lock = SmartLock.query.filter_by(lock_id=7).first()
        assert retrieved_lock.date_locked == test_date


, startLen;
    UInt32 curPrice, curAnd1Price, matchPrice, repMatchPrice;
    Bool nextIsChar;
    Byte curByte, matchByte;
    const Byte *data;
    COptimal *curOpt;
    COptimal *nextOpt;

    cur++;
    if (cur == lenEnd)
      return Backward(p, backRes, cur);

    newLen = ReadMatchDistances(p, &numPairs);
    if (newLen >= p->numFastBytes)
    {
      p->numPairs = numPairs;
      p->longestMatchLength = newLen;
      return Backward(p, backRes, cur);
    }
    position++;
    curOpt = &p->opt[cur];
    posPrev = curOpt->posPrev;
    if (curOpt->prev1IsChar)
    {
      posPrev--;
      if (curOpt->prev2)
      {
        state = p->opt[curOpt->posPrev2].state;
        if (curOpt->backPrev2 < LZMA_NUM_REPS)
          state = kRepNextStates[state];
        else
          state = kMatchNextStates[state];
      }
      else
        state = p->opt[posPrev].state;
      state = kLiteralNextStates[state];
    }
    else
      state = p->opt[posPrev].state;
    if (posPrev == cur - 1)
    {
      if (IsShortRep(curOpt))
        state = kShortRepNextStates[state];
      else
        state = kLiteralNextStates[state];
    }
    else
    {
      UInt32 pos;
      const COptimal *prevOpt;
      if (curOpt->prev1IsChar && curOpt->prev2)
      {
        posPrev = curOpt->posPrev2;
        pos = curOpt->backPrev2;
        state = kRepNextStates[state];
      }
      else
      {
        pos = curOpt->backPrev;
        if (pos < LZMA_NUM_REPS)
          state = kRepNextStates[state];
        else
          state = kMatchNextStates[state];
      }
      prevOpt = &p->opt[posPrev];
      if (pos < LZMA_NUM_REPS)
      {
        UInt32 i;
        reps[0] = prevOpt->backs[pos];
        for (i = 1; i <= pos; i++)
          reps[i] = prevOpt->backs[i - 1];
        for (; i < LZMA_NUM_REPS; i++)
          reps[i] = prevOpt->backs[i];
      }
      else
      {
        UInt32 i;
        reps[0] = (pos - LZMA_NUM_REPS);
        for (i = 1; i < LZMA_NUM_REPS; i++)
          reps[i] = prevOpt->backs[i - 1];
      }
    }
    curOpt->state = (CState)state;

    curOpt->backs[0] = reps[0];
    curOpt->backs[1] = reps[1];
    curOpt->backs[2] = reps[2];
    curOpt->backs[3] = reps[3];

    curPrice = curOpt->price;
    nextIsChar = False;
    data = p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - 1;
    curByte = *data;
    matchByte = *(data - (reps[0] + 1));

    posState = (position & p->pbMask);

    curAnd1Price = curPrice + GET_PRICE_0(p->isMatch[state][posState]);
    {
      const CLzmaProb *probs = LIT_PROBS(position, *(data - 1));
      curAnd1Price +=
        (!IsCharState(state) ?
          LitEnc_GetPriceMatched(probs, curByte, matchByte, p->ProbPrices) :
          LitEnc_GetPrice(probs, curByte, p->ProbPrices));
    }

    nextOpt = &p->opt[cur + 1];

    if (curAnd1Price < nextOpt->price)
    {
      nextOpt->price = curAnd1Price;
      nextOp


_LONG_OFFSET_ENTRY obj
1:
    # No explicit null check for variable indices or large constant indices/offsets
    # as it must have been done earlier.
#if defined(_MIPS_ARCH_MIPS32R6)
    lapc    $gp, .Lintrospection_exits                  # $gp = address of .Lintrospection_exits.
#else
    addiu   $gp, $t9, (.Lintrospection_exits - 1b)      # $gp = address of .Lintrospection_exits.
#endif
    .set push
    .set noat
    lw      $at, MIRROR_OBJECT_LOCK_WORD_OFFSET(\obj)
    sll     $at, $at, 31 - LOCK_WORD_READ_BARRIER_STATE_SHIFT   # Move barrier state bit
                                                                # to sign bit.
    bltz    $at, .Lintrospection_field_array            # If gray, load reference, mark.
    nop
    .set pop
    jalr    $zero, $ra                                  # Otherwise, load-load barrier and return.
    sync
    break                                               # Padding to 8 instructions.
.endm

.macro BRB_GC_ROOT_ENTRY root
1:
#if defined(_MIPS_ARCH_MIPS32R6)
    lapc    $gp, .Lintrospection_exit_\root             # $gp = exit point address.
#else
    addiu   $gp, $t9, (.Lintrospection_exit_\root - 1b)  # $gp = exit point address.
#endif
    bnez    \root, .Lintrospection_common
    move    $t8, \root                                  # Move reference to $t8 for common code.
    jalr    $zero, $ra                                  # Return if null.
    # The next instruction (from the following BRB_GC_ROOT_ENTRY) fills the delay slot.
    # This instruction has no effect (actual NOP for the last entry; otherwise changes $gp,
    # which is unused after that anyway).
.endm

.macro BRB_FIELD_EXIT out
.Lintrospection_exit_\out:
    jalr    $zero, $ra
    move    \out, $t8                                   # Return reference in expected register.
.endm

.macro BRB_FIELD_EXIT_BREAK
    break
    break
.endm

ENTRY_NO_GP art_quick_read_barrier_mark_introspection
    # Entry points for offsets/indices not fitting into int16_t and for variable indices.
    BRB_FIELD_LONG_OFFSET_ENTRY $v0
    BRB_FIELD_LONG_OFFSET_ENTRY $v1
    BRB_FIELD_LONG_OFFSET_ENTRY $a0
    BRB_FIELD_LONG_OFFSET_ENTRY $a1
    BRB_FIELD_LONG_OFFSET_ENTRY $a2
    BRB_FIELD_LONG_OFFSET_ENTRY $a3
    BRB_FIELD_LONG_OFFSET_ENTRY $t0
    BRB_FIELD_LONG_OFFSET_ENTRY $t1
    BRB_FIELD_LONG_OFFSET_ENTRY $t2
    BRB_FIELD_LONG_OFFSET_ENTRY $t3
    BRB_FIELD_LONG_OFFSET_ENTRY $t4
    BRB_FIELD_LONG_OFFSET_ENTRY $t5
    BRB_FIELD_LONG_OFFSET_ENTRY $t6
    BRB_FIELD_LONG_OFFSET_ENTRY $t7
    BRB_FIELD_LONG_OFFSET_ENTRY $s2
    BRB_FIELD_LONG_OFFSET_ENTRY $s3
    BRB_FIELD_LONG_OFFSET_ENTRY $s4
    BRB_FIELD_LONG_OFFSET_ENTRY $s5
    BRB_FIELD_LONG_OFFSET_ENTRY $s6
    BRB_FIELD_LONG_OFFSET_ENTRY $s7
    BRB_FIEL


 ((sreg[(x << 1) + 1] & 15) << 8)) + 1) << 4;
	int32 amp = (sreg[0x8 + x] & 15) << 6;

	amp += amp >> 1;

	if (!(sreg[0x7] & (1 << x))) {
		for (V = CAYBC[x]; V < SOUNDTS; V++) {
			if (dcount[x])
				WaveHi[V] += amp;
			vcount[x]--;
			if (vcount[x] <= 0) {
				dcount[x] ^= 1;
				vcount[x] = freq;
			}
		}
	}
	CAYBC[x] = SOUNDTS;
#endif
}

static void AYSound(int Count) {
	int x;
	DoAYSQ(0);
	DoAYSQ(1);
	DoAYSQ(2);
	for (x = 0; x < 3; x++)
		CAYBC[x] = Count;
}

static void AYSoundHQ(void) {
	DoAYSQHQ(0);
	DoAYSQHQ(1);
	DoAYSQHQ(2);
}

static void AYHiSync(int32 ts) {
	int x;

	for (x = 0; x < 3; x++)
		CAYBC[x] = ts;
}

void Mapper69_ESI(void) {
	GameExpSound.RChange = Mapper69_ESI;
	GameExpSound.HiSync = AYHiSync;
	memset(dcount, 0, sizeof(dcount));
	memset(vcount, 0, sizeof(vcount));
	memset(CAYBC, 0, sizeof(CAYBC));
	AddExState(&SStateRegs, ~0, 0, 0);
}

// SUNSOFT-5/FME-7 Sound

static void M69Power(void) {
	cmdreg = sndcmd = 0;
	IRQCount = 0xFFFF;
	IRQa = 0;
	Sync();
	SetReadHandler(0x6000, 0x7FFF, M69WRAMRead);
	SetWriteHandler(0x6000, 0x7FFF, M69WRAMWrite);
	SetReadHandler(0x8000, 0xFFFF, CartBR);
	SetWriteHandler(0x8000, 0x9FFF, M69Write0);
	SetWriteHandler(0xA000, 0xBFFF, M69Write1);
	SetWriteHandler(0xC000, 0xDFFF, M69SWrite0);
	SetWriteHandler(0xE000, 0xFFFF, M69SWrite1);
	FCEU_CheatAddRAM(WRAMSIZE >> 10, 0x6000, WRAM);
}

static void M69Close(void) {
	if (WRAM)
		FCEU_gfree(WRAM);
	WRAM = NULL;
}

static void M69IRQHook(int a) {
	if (IRQa) {
		IRQCount -= a;
		if (IRQCount <= 0) {
			X6502_IRQBegin(FCEU_IQEXT); IRQa = 0; IRQCount = 0xFFFF;
		}
	}
}

static void StateRestore(int version) {
	Sync();
}

void Mapper69_Init(CartInfo *info) {
	info->Power = M69Power;
	info->Close = M69Close;
	MapIRQHook = M69IRQHook;
	if(info->ines2)
		WRAMSIZE = info->wram_size + info->battery_wram_size;
	else
		WRAMSIZE = 8192;
	WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE);
	SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1);
	AddExState(WRAM, WRAMSIZE, 0, "WRAM");
	if (info->battery) {
		info->SaveGame[0] = WRAM;
		info->SaveGameLen[0] = WRAMSIZE;
	}
	GameStateRestore = StateRestore;
	Mapper69_ESI();
	AddExState(&StateRegs, ~0, 0, 0);
}

void NSFAY_Init(void) {
	sndcmd = 0;
	SetWriteHandler(0xC000, 0xDFFF, M69SWrite0);
	SetWriteHandler(0xE000, 0xFFFF, M69


\\
    ent_k
    \end{bmatrix}_t^a =
    \begin{bmatrix}
    f_{1,1} & \cdots & f_{1,z} \\
    \vdots & \ddots & \vdots \\
    f_{k,1} & \cdots & f_{k,z}
    \end{bmatrix}
    _t^a
    \end{eqnarray}
    $$

Method: Parallelised Q-Network (PQN)

        DQN
        Distr. DQN
        PPO
        PQN

        Implementation
        Easy
        Difficult
        Medium
        Very Easy

        Memory Requirement
        High
        Very High
        Low
        Low

        Training Speed
        Slow
        Fast
        Fast
        Fast

        Sample Efficient
        Yes
        No
        Yes
        Yes

        Compatibility with RNNs
        Medium
        Medium
        High
        High

        Compatibility w. end-to-end GPU Training
        Low
        Low
        High
        High

        Amount of Hyper-Parameters
        <td style="padding: 5px


def solution(my_string):
    answer = []
    mylist = list(my_string)

    for i in mylist:
        if i.isdigit():
            answer.append(int(i))

    answer.sort()
    return answer


local wheelClampProp = 'rottenberger_prop_wheel_clamp'
local clampedVehicles = {}

function loadModel(model)
    RequestModel(model)
    while not HasModelLoaded(model) do
        Wait(0)
    end
end

function GetClosestVehicleTire(vehicle)
    local tireBones = {
        "wheel_lf", "wheel_rf", "wheel_lm1", "wheel_rm1",
        "wheel_lm2", "wheel_rm2", "wheel_lm3", "wheel_rm3",
        "wheel_lr", "wheel_rr"
    }
    local tireIndex = {
        ["wheel_lf"] = 0, ["wheel_rf"] = 1,
        ["wheel_lm1"] = 2, ["wheel_rm1"] = 3,
        ["wheel_lm2"] = 45, ["wheel_rm2"] = 47,
        ["wheel_lm3"] = 46, ["wheel_rm3"] = 48,
        ["wheel_lr"] = 4, ["wheel_rr"] = 5
    }

    local plyPed = PlayerPedId()
    local plyPos = GetEntityCoords(plyPed, false)
    local minDistance = 1.0
    local closestTire = nil

    for _, boneName in ipairs(tireBones) do
        local boneIndex = GetEntityBoneIndexByName(vehicle, boneName)
        if boneIndex ~= -1 then
            local bonePos = GetWorldPositionOfEntityBone(vehicle, boneIndex)
            local distance = #(plyPos - bonePos)

            if closestTire == nil or distance < closestTire.boneDist then
                closestTire = {
                    bone = boneName,
                    boneDist = distance,
                    bonePos = bonePos,
                    tireIndex = tireIndex[boneName]
                }
            end
        end
    end

    return closestTire
end

function placeWheelClamp(vehicle)
    local playerPed = PlayerPedId()
    local vehicleCoords = GetEntityCoords(vehicle)

    local closestTire = GetClosestVehicleTire(vehicle)
    if not closestTire then
        lib.notify({
            title = Lang.Lang['wheel_clamp'],
            description = Lang.Lang['no_suitable_wheel'],
            type = 'error',
            position = 'top-right'
        })
        return
    end

    -- Define offsets for each wheel with Y and Z rotations
    local offsets = {
        wheel_lf = { x = -0.1, y = 0.0, z = -0.15, rotY = 0.0, rotZ = 270.0 },   -- Left front
        wheel_rf = { x = -0.1, y = 0.0, z = 0.15, rotY = 180.0, rotZ = 270.0 }, -- Right front
        wheel_lr = { x = -0.1, y = 0.0, z = -0.15, rotY = 0.0, rotZ = 270.0 },   -- Left rear
        wheel_rr = { x = -0.1, y = 0.0, z = 0.15, rotY = 180.0, rotZ = 270.0 }, -- Right rear
    }

    local clampOffset = offsets[closestTire.bone]
    if not clampOffset then
        clampOffset = { x = 0.05, y = 0.0, z = 0.02, rotY = 0.0, rotZ = 0.0 }
    end

    if lib.progressCircle({
        duration = Config.ClampProgress,
        position = 'bottom',
        anim = {
            dict = 'mp_car_bomb',
            clip = 'car_bomb_mechanic'
        },
        disable = {
            move = true,
            car = true,
        }
    }) then
        local bonePos = closestTire.bonePos
        loadModel(wheelClampProp)

        local clampObject = CreateObject(GetHashKey(wheelClampProp), bonePos.x, bonePos.y, bonePos.z, true, true, true)
        AttachEntityToEntity(clampObject, vehicle, GetEntityBoneIndexByName(vehicle, closestTire.bone),
            clampOffset.x, clampOffset.y, clampOffset.z,
            0.0, clampOffset.rotY, clampOffset.rotZ, true, true, false, false, 2, true
        )

        if not clampedVehicles[vehicle] th


; Generated with ikazuchi 1.0 by riidefi
; Object File: EffectSystem
; Segments:
;     .text:       0x800c54fc -> 0x800c590c
;     .data:       0x8057846c -> 0x805784b8 (80578490 -> 805784b8 (size 0040/0x0028) is greedily claimed anonymous data)
;     .sdata2:     0x806b9d10 -> 0x806b9d18 (806b9d14 -> 806b9d18 (size 0004/0x0004) is greedily claimed anonymous data)

; Symbols Defined
; 800c54fc -> 800c55b4 __ct__12EffectSystemFPCcb
; 800c55b4 -> 800c55b8 init__12EffectSystemFRC12JMapInfoIter
; 800c55b8 -> 800c5664 createEmitter__12EffectSystemFUsUcUc
; 800c5664 -> 800c56d0 forceDeleteEmitter__12EffectSystemCFP15ParticleEmitter
; 800c56d0 -> 800c571c forceDeleteSingleEmitter__12EffectSystemCFP13SingleEmitter
; 800c571c -> 800c57cc createSingleEmitter__12EffectSystemFP13SingleEmitterP24MultiEmitterCallBackBaseP28MultiEmitterParticleCallBack
; 800c57cc -> 800c57f4 getEffectSystem__2MRFv
; 800c57f4 -> 800c584c __dt__12EffectSystemFv
; 800c584c -> 800c590c entry__12EffectSystemFP22ParticleResourceHolderUlUl
; 8057846c -> 80578490 __vt__12EffectSystem
; 806b9d10 -> 806b9d14 @53900

; Exports
.global __ct__12EffectSystemFPCcb
.global init__12EffectSystemFRC12JMapInfoIter
.global createEmitter__12EffectSystemFUsUcUc
.global forceDeleteEmitter__12EffectSystemCFP15ParticleEmitter
.global forceDeleteSingleEmitter__12EffectSystemCFP13SingleEmitter
.global createSingleEmitter__12EffectSystemFP13SingleEmitterP24MultiEmitterCallBackBaseP28MultiEmitterParticleCallBack
.global getEffectSystem__2MRFv
.global __dt__12EffectSystemFv
.global entry__12EffectSystemFP22ParticleResourceHolderUlUl
.global __vt__12EffectSystem
.global ?253900

; Segments
.section .text
__ct__12EffectSystemFPCcb:
.byte 0x94, 0x21, 0xFF, 0xF0 # 800c54fc
.byte 0x7C, 0x08, 0x02, 0xA6 # 800c5500
.byte 0x90, 0x01, 0x00, 0x14 # 800c5504
.byte 0x93, 0xE1, 0x00, 0x0C # 800c5508
.byte 0x7C, 0xBF, 0x2B, 0x78 # 800c550c
.byte 0x93, 0xC1, 0x00, 0x08 # 800c5510
.byte 0x7C, 0x7E, 0x1B, 0x78 # 800c5514
.byte 0x48, 0x19, 0xC1, 0x9D # 800c5518


os = 30;
    reg.col_cell_start = reg.col_cell = grid->cols->head;
    reg.col_end_pos = 30;
    grid_split(grid, &reg);

    assert(grid->rows->head->end_pos == 30);
    assert(grid->cols->head->end_pos == 30);
    assert(grid->rows->head->next->end_pos == 50);
    assert(grid->cols->head->next->end_pos == 120);

    Cell _cell;
    Cell *test_cell = &_cell;
    grid->jump_matrix[0][0] = test_cell;

    reg.row_cell_start = reg.row_cell = grid->rows->head->next;
    reg.row_end_pos = 40;
    reg.col_cell_start = reg.col_cell = grid->cols->head;
    reg.col_end_pos = 10;
    grid_split(grid, &reg);

    assert(grid->jump_matrix[0][0] == test_cell);
    assert(grid->jump_matrix[0][1] == NULL);
    assert(grid->jump_matrix[0][2] == test_cell);

    assert(grid->jump_matrix[1][0] == grid->rows->head->next->next);
    assert(grid->jump_matrix[1][1] == NULL);
    assert(grid->jump_matrix[1][2] == NULL);

    assert(grid->jump_matrix[2][0] == NULL);
    assert(grid->jump_matrix[2][1] == NULL);
    assert(grid->jump_matrix[2][2] == NULL);

    grid_free(grid);
}

int main(void)
{
    test_cell_link();
    test_cell_link_cut();
    printf("CELL LINK: PASSED\n");
    test_jump_matrix();
    test_jump_matrix_copy();
    printf("JUMP MATRIX: PASSED\n");
    test_grid();
    test_grid_split();
    printf("GRID: PASSED\n");
    return 0;
}
#endif


 fn main() {
//! #[derive(NueEncode)]
//! struct Data<'a>(
//! 	u8,
//! 	#[nue(cond = "false")]
//! 	&'a () // Note that this type does not implement `Encode`
//! );
//!
//! let u = ();
//! let data = Data(2, &u);
//! let cmp = &[2];
//! assert_eq!(&data.encode_vec().unwrap(), cmp);
//! # }
//! ```
//!
//! #### `default`
//!
//! Determines the default value to be used if `cond` evaluates to false.
//!
//! ```
//! # #![feature(plugin, custom_derive, custom_attribute)] #![plugin(nue_macros)]
//! # extern crate nue;
//! use nue::Decode;
//!
//! # fn main() {
//! #[derive(NueDecode, PartialEq, Debug)]
//! struct Data(
//! 	u8,
//! 	#[nue(cond = "self.0 == 1", default = "5")]
//! 	u8
//! );
//!
//! let data = &[2];
//! assert_eq!(&Data::decode_slice(data).unwrap(), &Data(2, 5));
//!
//! let data = &[1, 2];
//! assert_eq!(&Data::decode_slice(data).unwrap(), &Data(1, 2));
//! # }
//! ```
//!
//! #### `limit`
//!
//! Limits the amount of bytes that can be consumed or written during coding.
//!
//! ```
//! # #![feature(plugin, custom_derive, custom_attribute)] #![plugin(nue_macros)]
//! # extern crate nue;
//! use nue::Decode;
//!
//! # fn main() {
//! #[derive(NueDecode)]
//! struct Data(
//! 	#[nue(limit = "4")]
//! 	String,
//! );
//!
//! let data = b"hello";
//! assert_eq!(&Data::decode_slice(data).unwrap().0, "hell");
//! # }
//! ```
//!
//! #### `consume`
//!
//! When set, uses all of `limit` even if the type did not encode or decode the entire byte region.
//!
//! ```
//! # #![feature(plugin, custom_derive, custom_attribute)] #![plugin(nue_macros)]
//! # extern crate nue;
//! use nue::Decode;
//! use std::ffi::CString;
//!
//! # fn main() {
//! #[derive(NueDecode)]
//! struct Data(
//! 	#[nue(limit = "8", consume = "true")]
//! 	CString,
//! 	u8
//! );
//!
//! let data = b"hello\0\0\0\x05";
//! let data = Data::decode_slice(data).unwrap();
//! assert_eq!(data.0.to_bytes(), b"hello");
//! assert_eq!(data.1, 5);
//! # }
//! ```

extern crate rustc;
extern crate nue_codegen;

#[plugin_registrar]
#[doc(hidden)]
pub fn register(reg: &mut rustc::plugin::Registry) {
    nue_codegen::register(reg);
}
// 485. Max Consecutive Ones, Easy
// https://leetcode.com/problems/max-consecutive-ones/
impl Solution {
    pub fn find_max_consecutive_ones(nums: Vec<i32>) -> i32 {
        let mut consecs = 0;
        let mut curr_consecs = 0;
        let mut prev: i32 = 1;
        for i in nums.iter() {
            if *i == 1 && prev == 1 {
                curr_consecs += 1;
            } else {
                prev = *i;
                curr_consecs = if *i == 1 { 1 } else { 0 };
            }

            consecs = consecs.max(curr_consecs);
        }

        consecs
    }
}

struct Solution {}

#[cfg(test)]


using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Net;
using TCPingInfoView.NetUtils;

namespace TCPingInfoViewTests.NetUtils
{
	[TestClass]
	public class IPFormatterTests
	{
		[TestMethod]
		public void ToIPEndPointTest()
		{
			var s1 = @"[2607:f8b0:4007:801::2004]:4154";
			var s2 = @"172.217.14.68:1513";
			var s3 = @"www.google.com:12313";
			var s4 = @"[2607:f8b0:4007:80e::200e]";
			var s5 = @"172.217.14.78";
			var s6 = @"www.youtube.com";

			var r1 = IPFormatter.ToIPEndPoint(s1);
			var r2 = IPFormatter.ToIPEndPoint(s2);
			var r3 = IPFormatter.ToIPEndPoint(s3);
			var r


thread_silent (target,
                                ptid_t(CRASH_INFERIOR_PID, 0, 0));
  switch_to_thread (thread);

  /* Fetch all registers from core file.  */
  target_fetch_registers (get_thread_regcache(thread), -1);

  /* Now, set up the frame cache. */
  reinit_frame_cache ();
}

extern "C" int
gdb_change_thread_context (void)
{
  /* 1st, switch to tid 0 if we are not */
  if (inferior_thread()->ptid.tid()) {
       switch_to_thread (&(current_inferior()->thread_list.front()));
  }
  /* 2nd, delete threads whose tid is not 0 */
  for (thread_info *tp : current_inferior()->threads_safe()) {
       if (tp->ptid.tid() && tp->deletable()) {
               delete_thread_silent(tp);
               current_inferior()->highest_thread_num--;
       }
  }
  /* 3rd, refresh regcache for tid 0 */
  target_fetch_registers(get_thread_regcache(inferior_thread()), -1);
  reinit_frame_cache();
#if defined (X86_64) || defined (ARM64) || defined (PPC64)
  /* 4th, invoke bt silently to refresh the additional stacks */
  silent_call_bt();
#endif
  return TRUE;
}

/* Add a thread for each additional stack. Use stack ID as a thread ID */
extern "C" int
gdb_add_substack (int sid)
{
  thread_info *tp;
  thread_info *current_thread = inferior_thread();

  ptid_t ptid = ptid_t(CRASH_INFERIOR_PID, 0, sid + 1);
  tp = current_inferior()->find_thread(ptid);
  if (tp == nullptr) {
    tp = add_thread_silent(current_inferior()->process_target(), ptid);
  }
  switch_to_thread (tp);
  target_fetch_registers(get_thread_regcache(tp), -1);
  switch_to_thread (current_thread);
  return TRUE;
}


		lps.storeProfile(profile)
	}

	lps.logger.WithFields(logrus.Fields{
		"call_uuid":          callUUID,
		"call_duration":      profile.CallDuration,
		"languages_used":     len(profile.PreferredLanguages),
		"segments_processed": profile.SegmentCount,
		"switch_count":       lps.countLanguageSwitches(profile.LanguageHistory),
	}).Info("Ended language persistence profile")

	delete(lps.callProfiles, callUUID)
}

// updateGlobalProfile updates global language usage statistics
func (lps *LanguagePersistenceService) updateGlobalProfile(profile *CallLanguageProfile) {
	lps.globalProfile.TotalCalls++
	lps.globalProfile.LastUpdated = time.Now()

	// Update language popularity
	for _, pref := range profile.PreferredLanguages {
		lps.globalProfile.LanguagePopularity[pref.Language]++

		// Update average quality
		currentQuality := lps.globalProfile.AverageQuality[pref.Language]
		alpha := 0.1
		lps.globalProfile.AverageQuality[pref.Language] =
			(1-alpha)*currentQuality + alpha*pref.QualityScore
	}

	// Update global switch statistics
	switches := lps.countLanguageSwitches(profile.LanguageHistory)
	if switches > 0 {
		successRate := profile.QualityMetrics.SwitchAccuracy
		if successRate > 0.8 {
			lps.globalProfile.SuccessfulSwitches += switches
		} else {
			lps.globalProfile.FailedSwitches += switches
		}
	}
}

// storeProfile stores a profile for persistence
func (lps *LanguagePersistenceService) storeProfile(profile *CallLanguageProfile) {
	// Implementation would depend on persistence storage type
	switch lps.persistenceConfig.PersistenceStorage {
	case "redis":
		lps.storeProfileRedis(profile)
	case "file":
		lps.storeProfileFile(profile)
	case "memory":
		// Already in memory
	default:
		lps.logger.Warn("Unknown persistence storage type")
	}
}

// storeProfileRedis stores profile in Redis (placeholder)
func (lps *LanguagePersistenceService) storeProfileRedis(profile *CallLanguageProfile) {
	if lps.redisClient == nil {
		lps.logger.WithField("call_uuid", profile.CallUUID).
			Warn("Redis persistence selected but Redis client is not configured")
		return
	}

	ser, err := json.Marshal(profile)
	if err != nil {
		lps.logger.WithError(err).WithField("call_uuid", profile.CallUUID).
			Error("Failed to serialize language profile for Redis persistence")
		return
	}

	ctx, cancel := context.WithTimeout(context.Background(), lps.redisTimeout)
	defer cancel()

	retention := lps.persistenceConfig.ProfileRetentionTime
	if retention <= 0 {
		retention = 24 * time.Hour
	}

	pipe := lps.redisClient.TxPipeline()
	pipe.Set(ctx, lps.redisProfileKey(profile.CallUUID), ser, retention)

	if profile.CallerID != "" {
		callerKey := lps.redisCallerIndexKey(profile.CallerID)
		pipe.ZAdd(ctx, callerKey, redis.Z{Score: float64(time.Now().Unix()), Member: profile.CallUUID})
		pipe.Expire(ctx, callerKey, retention)

		if maxEntries := lps.persistenceConfig.HistoryMaxEntries; maxEntries > 0 {
			cutoff := int64(-maxEntries - 1)
			pipe.ZRemRangeByRank(ctx, callerKey, 0, cutoff)
		}
	}

	if _, err := pipe.Exec(ctx); err != nil {
		lps.logger.WithError(err).WithFields(logrus.Fields{
			"call_uuid": profile.CallUUID,
			"storage":   "redis",
		}).Error("Failed to persist language profile to Redis")
		return
	}

	lps.logger.WithFields(logrus.Fields{
		"call_uuid": profile.CallUUID,
		"caller_id": profile.CallerID,
		"storage


oundation/annualreport/2019/pocket-saves-high-res.jpg': '2x'
          },
          optional_attributes={
            'class': 'mzp-c-split-media-asset'
          }
        ),
        media_after=False,
        media_class='mzp-l-split-h-center',
        block_class='mzp-t-split-nospace mzp-l-split-body-narrow'
        ) %}
        Trustworthy Content

703M Pocket saves and counting

        <button type="button" class="mzp-c-button mzp-t-secondary">
          See what people love to Pocket
        </button>
      {% endcall %}

          COVID-19 Solutions Fund

          Launched new Tech and Society fellowships

              {{ resp_img(
                url='img/foundation/annualreport/2019/firefox-for-android.jpg',
                srcset={
                  'img/foundation/annualreport/2019/firefox-for-android-high-res.jpg': '2x'
                },
                optional_attributes={
                  'class': 'mzp-c-card-image',
                  'width': '540',
                  'height': '360',
                  'loading': 'lazy'
                }
              ) }}

Products

A new Firefox for Android, fast, private by design and independent to the core

              {{ resp_img(
                url='img/foundation/annualreport/2019/racial-justice-commitments.jpg',
                srcset={
                  'img/foundation/annualreport/2019/racial-justice-commitments-high-res.jpg': '2x'
                },
                optional_attributes={
                  'class


(defc, name, true)) {
            Class<?> specialCaller = rcvc;
            testUnreflectMaybeSpecial(specialCaller, (Boolean)ac[0], (Lookup)ac[1], defc, rcvc, ret, name, params);
        }
    }

    @Test
    public void testUnreflectSpecial() throws Throwable {
        CodeCacheOverflowProcessor.runMHTest(this::testUnreflectSpecial0);
    }

    public void testUnreflectSpecial0() throws Throwable {
        if (CAN_SKIP_WORKING)  return;
        startTest("unreflectSpecial");
        testUnreflectSpecial(Example.class, Example.class, void.class, "v0");
        testUnreflectSpecial(Example.class, SubExample.class, void.class, "v0");
        testUnreflectSpecial(Example.class, Example.class, void.class, "pkg_v0");
        testUnreflectSpecial(Example.class, SubExample.class, void.class, "pkg_v0");
        testUnreflectSpecial(Example.class, Example.class, Object.class, "v2", int.class, int.class);
        testUnreflectSpecial(Example.class, SubExample.class, Object.class, "v2", int.class, int.class);
        testUnreflectMaybeSpecial(Example.class, false, PRIVATE, Example.class, Example.class, void.class, "s0");
    }

    @Test
    public void testUnreflectGetter() throws Throwable {
        CodeCacheOverflowProcessor.runMHTest(this::testUnreflectGetter0);
    }

    public void testUnreflectGetter0() throws Throwable {
        if (CAN_SKIP_WORKING)  return;
        startTest("unreflectGetter");
        testGetter(TEST_UNREFLECT);
    }

    @Test
    public void testFindGetter() throws Throwable {
        CodeCacheOverflowProcessor.runMHTest(this::testFindGetter0);
    }

    public void testFindGetter0() throws Throwable {
        if (CAN_SKIP_WORKING)  return;
        startTest("findGetter");
        testGetter(TEST_FIND_FIELD);
        testGetter(TEST_FIND_FIELD | TEST_BOUND);
    }

    @Test
    public void testFindStaticGetter() throws Throwable {
        CodeCacheOverflowProcessor.runMHTest(this::testFindStaticGetter0);
    }

    public void testFindStaticGetter0() throws Throwable {
        if (CAN_SKIP_WORKING)  return;
        startTest("findStaticGetter");
        testGetter(TEST_FIND_STATIC);
    }

    public void testGetter(int testMode) throws Throwable {
        Lookup lookup = PRIVATE;  // FIXME: test more lookups than this one
        for (Object[] c : HasFields.CASES) {
            boolean positive = (c[1] != Error.class);
            testGetter(positive, lookup, c[0], c[1], testMode);
            if (positive)
                testGetter(positive, lookup, c[0], c[1], testMode | TEST_NPE);
        }
        testGetter(true, lookup,
                   new Object[]{ true,  System.class, "out", java.io.PrintStream.class },
                   System.out, testMode);
        for (int isStaticN = 0; isStaticN <= 1; isStaticN++) {
            testGetter(false, lookup,
                       new Object[]{ (isStaticN != 0), System.class, "bogus", char.class },
                       null, testMode);
        }
    }

    public void testGetter(boolean positive, MethodHandles.Lookup lookup,
                           Object fieldRef, Object value, int testMode) throws Throwable {
        testAccessor(positive, lookup, fieldRef, value, testMode);
    }

    public void testAccessor(boolean positive0, MethodHandles.Lookup lookup,
                             Object fieldRef, Object value, int testMode0) throws Throwable {
        if (verbosity >= 4)
            System.out.println("testAccessor"+Arrays.deepToString(new Object[]{positi


    NB: For this case, the encoding will swap the operands as their
  //    ordering doesn't matter. GAS performs this transformation  too.
  //    Hence, that constraint does not have to be enforced.
  //
  // The compact branches that branch iff the signed addition of two registers
  // would overflow must have rs >= rt. That can be handled like beqc/bnec with
  // operand swapping. They do not have restriction of using the zero register.
  case Mips::BLEZC:   case Mips::BLEZC_MMR6:
  case Mips::BGEZC:   case Mips::BGEZC_MMR6:
  case Mips::BGTZC:   case Mips::BGTZC_MMR6:
  case Mips::BLTZC:   case Mips::BLTZC_MMR6:
  case Mips::BEQZC:   case Mips::BEQZC_MMR6:
  case Mips::BNEZC:   case Mips::BNEZC_MMR6:
  case Mips::BLEZC64:
  case Mips::BGEZC64:
  case Mips::BGTZC64:
  case Mips::BLTZC64:
  case Mips::BEQZC64:
  case Mips::BNEZC64:
    if (Inst.getOperand(0).getReg() == Mips::ZERO ||
        Inst.getOperand(0).getReg() == Mips::ZERO_64)
      return Match_RequiresNoZeroRegister;
    return Match_Success;
  case Mips::BGEC:    case Mips::BGEC_MMR6:
  case Mips::BLTC:    case Mips::BLTC_MMR6:
  case Mips::BGEUC:   case Mips::BGEUC_MMR6:
  case Mips::BLTUC:   case Mips::BLTUC_MMR6:
  case Mips::BEQC:    case Mips::BEQC_MMR6:
  case Mips::BNEC:    case Mips::BNEC_MMR6:
  case Mips::BGEC64:
  case Mips::BLTC64:
  case Mips::BGEUC64:
  case Mips::BLTUC64:
  case Mips::BEQC64:
  case Mips::BNEC64:
    if (Inst.getOperand(0).getReg() == Mips::ZERO ||
        Inst.getOperand(0).getReg() == Mips::ZERO_64)
      return Match_RequiresNoZeroRegister;
    if (Inst.getOperand(1).getReg() == Mips::ZERO ||
        Inst.getOperand(1).getReg() == Mips::ZERO_64)
      return Match_RequiresNoZeroRegister;
    if (Inst.getOperand(0).getReg() == Inst.getOperand(1).getReg())
      return Match_RequiresDifferentOperands;
    return Match_Success;
  case Mips::DINS: {
    assert(Inst.getOperand(2).isImm() && Inst.getOperand(3).isImm() &&
           "Operands must be immediates for dins!");
    const signed Pos = Inst.getOperand(2).getImm();
    const signed Size = Inst.getOperand(3).getImm();
    if ((0 > (Pos + Size)) || ((Pos + Size) > 32))
      return Match_RequiresPosSizeRange0_32;
    return Match_Success;
  }
  case Mips::DINSM:
  case Mips::DINSU: {
    assert(Inst.getOperand(2).isImm() && Inst.getOperand(3).isImm() &&
           "Operands must be immediates for dinsm/dinsu!");
    const signed Pos = Inst.getOperand(2).getImm();
    const signed Size = Inst.getOperand(3).getImm();
    if ((32 >= (Pos + Size)) || ((Pos + Size) > 64))
      return Match_RequiresPosSizeRange33_64;
    return Match_Success;
  }
  case Mips::DEXT: {
    assert(Inst.getOperand(2).isImm() && Inst.getOperand(3).isImm() &&
           "Operands must be immediates for DEXTM!");
    const signed Pos = Inst.getOperand(2).getImm();
    const signed Size = Inst.getOperand


_shouldScrollVertically()) {
      velocity.y = 0;
    }
    assert(_minPoint != null); // Min point is not set
    assert(_maxPoint != null); // Max point is not set
    return _momentum.start(
        velocity, _minPoint, _maxPoint, _contentOffset, decelerationFactor);
  }

  Coordinate stop() {
    return _momentum.stop();
  }

  /// Stop the deceleration of the scrollable content given a new position in px.
  void _stopDecelerating(num x, num y) {
    _momentum.stop();
    _setContentOffset(x, y);
  }

  static Function _getOffsetFunction(int scrollTechnique) {
    return scrollTechnique == ScrollerScrollTechnique.TRANSFORM_3D
        ? (el, x, y) {
            FxUtil.setTranslate(el, x, y, 0);
          }
        : (el, x, y) {
            FxUtil.setLeftAndTop(el, x, y);
          };
  }
}

// TODO(jacobr): cleanup this class of enum constants.
class ScrollerEventType {
  static const SCROLLER_START = "scroller:scroll_start";
  static const SCROLLER_END = "scroller:scroll_end";
  static const DRAG_END = "scroller:drag_end";
  static const CONTENT_MOVED = "scroller:content_moved";
  static const DECEL_START = "scroller:decel_start";
}

class ScrollerScrollTechnique {
  static const TRANSFORM_3D = 1;
  static const RELATIVE_POSITIONING = 2;
}
// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart = 2.7

var field1a;

var field1b;

var field1c;

/*member: field2a:params=0*/
@pragma('dart2js:noInline')
get field2a => 42;

@pragma('dart2js:noInline')
set field2a(_) {}

@pragma('dart2js:noInline')
get field2b => 42;

/*member: field2b=:params=1*/
@pragma('dart2js:noInline')
set field2b(_) {}

/*member: field2c:params=0*/
@pragma('dart2js:noInline')
get field2c => 42;

/*member: field2c=:params=1*/
@pragma('dart2js:noInline')
set field2c(_) {}

class Class {
  /*member: Class.field1a:emitted*/
  @pragma('dart2js:noElision')
  var field1a;

  /*member: Class.field1b:elided*/
  var field1b;

  /*member: Class.field1c:emitted*/
  var field1c;

  /*member: Class.field2a:params=0*/
  @pragma('dart2js:noInline')
  get field2a => 42;

  @pragma('dart2js:noInline')
  set field2a(_) {}

  @pragma('dart2js:noInline')
  get field2b => 42;

  /*member: Class.field2b=:params=1*/
  @pragma('dart2js:noInline')
  set field2b(_) {}

  /*member: Class.field2c:params=0*/
  @pragma('dart2js:noInline')
  get field2c => 42;

  set field2c(_) {}

  /*member: Class.field3a:elid


;
		assertEquals(AttributeSpecialValue.NOT_NULL, attributeIsNotNull.getAttributeSpecialValue());
	}

	@Test
	void shouldRecognizeApplicability() {
		assertTrue(attributeIsNull("married").isApplicable());
		assertFalse(new AttributeIs(null, AttributeSpecialValue.NULL).isApplicable());
	}

	@Test
	void shouldToStringReturnExpectedFormat() {
		final AttributeIs attributeIsNull = attributeIsNull("married");
		assertEquals("attributeIs('married',NULL)", attributeIsNull.toString());
	}

	@Test
	void shouldConformToEqualsAndHashContract() {
		assertNotSame(attributeIsNull("married"), attributeIsNull("married"));
		assertEquals(attributeIsNull("married"), attributeIsNull("married"));
		assertEquals(attributeIs("married", AttributeSpecialValue.NULL), attributeIsNull("married"));
		assertNotEquals(attributeIsNull("married"), attributeIsNull("single"));
		assertNotEquals(attributeIsNull("married"), attributeIsNull(null));
		assertNotEquals(attributeIsNull("married"), attributeIsNotNull("married"));
		assertEquals(attributeIsNull("married").hashCode(), attributeIsNull("married").hashCode());
		assertEquals(attributeIs("married", AttributeSpecialValue.NULL).hashCode(), attributeIsNull("married").hashCode());
		assertNotEquals(attributeIsNull("married").hashCode(), attributeIsNull("single").hashCode());
		assertNotEquals(attributeIsNull("married").hashCode(), new AttributeIs(null, AttributeSpecialValue.NULL).hashCode());
		assertNotEquals(attributeIsNull("married").hashCode(), attributeIsNotNull("married").hashCode());
	}

}
/*
 *
 *                         _ _        ____  ____
 *               _____   _(_) |_ __ _|  _ \| __ )
 *              / _ \ \ / / | __/ _` | | | |  _ \
 *             |  __/\ V /| | || (_| | |_| | |_) |
 *              \___| \_/ |_|\__\__,_|____/|____/
 *
 *   Copyright (c) 2023-2024
 *
 *   Licensed under the Business Source License, Version 1.1 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *   https://github.com/FgForrest/evitaDB/blob/master/LICENSE
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

package io.evitadb.api.query.descriptor;

import io.evitadb.api.query.FilterConstraint;
import io.evitadb.api.query.descriptor.ConstraintCreator.ChildParameterDescriptor;
import io.evitadb.api.query.descriptor.ConstraintCreator.ClassifierParameterDescriptor;
import io.evitadb.api.query.descriptor.ConstraintCreator.FixedImplicitClassifier;
import io.evitadb.api.query.descriptor.ConstraintCreator.ImplicitClassifier;
import io.evitadb.api.query.descriptor.ConstraintCreator.ParameterDescriptor;
import io.evitadb.api.query.filter.And;
import io.evitadb.exception.EvitaInternalError;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

import javax.annotation.Nonnull;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;

import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

/**


onus = (
                current_damage_inflicted - self._data[agent_id]["damage_inflicted"]
            ) * self.attack_bonus_weight
            assert attack_bonus >= 0, "attack bonus error"
            self._data[agent_id]["damage_inflicted"] = current_damage_inflicted

            # Gold bonus
            current_gold = agent_info.gold.val
            gold_bonus = (current_gold - self._data[agent_id]["gold"]) * self.gold_bonus_weight
            self._data[agent_id]["gold"] = current_gold

            reward += (
                hp_bonus + exp_bonus + defense_bonus + attack_bonus + gold_bonus
            ) * self.custom_bonus_scale

        return reward, terminated, truncated, info


se.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */

#include "observer/virtual_table/ob_all_virtual_ss_ls_meta.h"
#ifdef OB_BUILD_SHARED_STORAGE
#include "storage/incremental/ob_shared_meta_service.h"
#include "storage/incremental/share/ob_shared_ls_meta.h"
#endif

using namespace oceanbase::common;
using namespace oceanbase::storage;
namespace oceanbase
{
namespace observer
{

ObAllVirtualSSLSMeta::ObAllVirtualSSLSMeta()
    : ObVirtualTableScannerIterator(),
      tenant_id_(0),
      ls_id_()
{
}

ObAllVirtualSSLSMeta::~ObAllVirtualSSLSMeta()
{
  reset();
}

void ObAllVirtualSSLSMeta::reset()
{
  tenant_id_ = 0;
  ls_id_.reset();
}

int ObAllVirtualSSLSMeta::inner_get_next_row(common::ObNewRow *&row)
{
  int ret = OB_SUCCESS;
#ifndef OB_BUILD_SHARED_STORAGE
  ret = OB_ITER_END;
#else
  if (!GCTX.is_shared_storage_mode()) {
    ret = OB_ITER_END;
  } else if (false == start_to_read_) {
    if (OB_FAIL(get_primary_key_())) {
      SERVER_LOG(WARN, "get primary key failed", KR(ret));
    } else if (OB_FAIL(generate_virtual_row_(ls_meta_row_))) {
      if (OB_ITER_END == ret) {
      } else if (OB_TABLET_NOT_EXIST == ret) {
        ret = OB_ITER_END;
      } else {
        SERVER_LOG(WARN, "generate virtual tablet meta row failed", KR(ret));
      }
    } else if (OB_FAIL(fill_in_row_(ls_meta_row_, row))) {
      SERVER_LOG(WARN, "fill in row failed", KR(ret));
    } else {
      start_to_read_ = true;
    }
  } else {
    ret = OB_ITER_END;
  }
#endif
  return ret;
}

#ifdef OB_BUILD_SHARED_STORAGE
int ObAllVirtualSSLSMeta::get_primary_key_()
{
  int ret = OB_SUCCESS;
  if (key_ranges_.count() != 1) {
    ret = OB_NOT_SUPPORTED;
    LOG_USER_ERROR(OB_NOT_SUPPORTED, "only support select a single row once, multiple range select is ");
    SERVER_LOG(WARN, "invalid key ranges", KR(ret));
  } else {
    ObNewRange &key_range = key_ranges_.at(0);
    if (OB_UNLIKELY(key_range.get_start_key().get_obj_cnt() != ROWKEY_COL_COUNT || key_range.get_end_key().get_obj_cnt() != ROWKEY_COL_COUNT)) {
      ret = OB_ERR_UNEXPECTED;
      SERVER_LOG(ERROR,
                 "unexpected key_ranges_ of rowkey columns",
                 KR(ret),
                 "size of start key",
                 key_range.get_start_key().get_obj_cnt(),
                 "size of end key",
                 key_range.get_end_key().get_obj_cnt());
    } else if (OB_FAIL(handle_key_range_(key_range))) {
      SERVER_LOG(WARN, "handle key range faield", KR(ret));
    }
  }
  return ret;
}

int ObAllVirtualSSLSMeta::handle_key_range_(ObNewRange &key_range)
{
  int ret = OB_SUCCESS;
  ObObj tenant_obj_low = (key_range.get_start_key().get_obj


능을 향상시키기 위해 자체 캐싱 솔루션을 사용할 수 있습니다. 이는 데이터베이스에서 데이터를 가져오기 전에 확인하는 인메모리 캐시 또는 분산 캐시의 형태로 제공됩니다.
* **분산 캐시:** Redis와 같은 분산 캐시는 기존 관계형 데이터베이스보다 빠른 읽기 및 쓰기 속도를 제공합니다. 또한, 여러 노드에 걸쳐 캐시를 확장하여 복원력을 높일 수 있습니다.
* **전문 검색 도구:** 텍스트 정보를 대량으로 검색하는 것은 시간이 오래 걸리는 작업입니다. ElasticSearch와 같은 도구는 텍스트 검색을 빠르게 하기 위해 데이터를 색인화하여 사실상 캐시 역할을 합니다.
* **데이터베이스:** 데이터베이스는 디스크에서 항상 데이터를 가져오는 것은 아닙니다. 데이터베이스는 버퍼 풀을 사용하여 빠른 읽기를 지원하고 데이터 페이지를 캐싱합니다. 또한, 물질화된 뷰는 값비싼 쿼리의 사전 계산된 결과를 저장하여 빠른 액세스를 제공합니다. 최신 데이터베이스는 자체 내장 캐시 솔루션을 제공합니다.

### 논의

1. **다단계 캐싱의 장점:** 다단계 캐싱은 데이터 액세스 시간을 단축하고 서버 부하를 줄여 웹 애플리케이션의 성능을 향상시킬 수 있습니다.
2. **다단계 캐싱의 단점:** 다단계 캐싱은 구현 및 관리가 복잡할 수 있으며, 캐시 일관성 문제가 발생할 수 있습니다.
3. **다단계 캐싱의 적용:** 다단계 캐싱은 웹 애플리케이션의 모


], th[valign=bottom i] </c-><c- p>{</c->
  <c- k>vertical-align</c-><c- p>:</c-> bottom<c- p>;</c->
<c- p>}</c->
<c- f>thead[valign=baseline i], tbody[valign=baseline i], tfoot[valign=baseline i],</c->
<c- f>tr[valign=baseline i], td[valign=baseline i], th[valign=baseline i] </c-><c- p>{</c->
  <c- k>vertical-align</c-><c- p>:</c-> baseline<c- p>;</c->
<c- p>}</c->

<c- f>td[nowrap], th[nowrap] </c-><c- p>{</c-> <c- k>white-space</c-><c- p>:</c-> nowrap<c- p>;</c-> <c- p>}</c->

<c- f>table[rules=none i], table[rules=groups i], table[rules=rows i],</c->
<c- f>table[rules=cols i], table[rules=all i] </c-><c- p>{</c->
  <c- k>border-style</c-><c- p>:</c-> hidden<c- p>;</c->
  <c- k>border-collapse</c-><c- p>:</c-> collapse<c- p>;</c->
<c- p>}</c->
<c- f>table[border] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> outset<c- p>;</c-> <c- p>}</c-> <c- c>/* </c-><c- c>only if border is not equivalent to zero</c-><c- c> */</c->
<c- f>table[frame=void i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> hidden<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=above i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> outset hidden hidden hidden<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=below i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> hidden hidden outset hidden<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=hsides i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> outset hidden outset hidden<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=lhs i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> hidden hidden hidden outset<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=rhs i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> hidden outset hidden hidden<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=vsides i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> hidden outset<c- p>;</c-> <c- p>}</c->
<c- f>table[frame=box i], table[frame=border i] </c-><c- p>{</c-> <c- k>border-style</c-><c- p>:</c-> outset<c- p>;</c-> <c- p>}</c->

<c- f>table[border] > tr > td, table[border] > tr > th,</c->
<c- f>tab


not([aria-label]):not([aria-labelledby]):not([title]):focus::before{opacity:1;transform:translateY(0) translateZ(0) !important}button:-moz-only-whitespace:not([aria-label]):not([aria-labelledby]):not([title]){counter-increment:error;outline:4px solid #911 !important;outline-offset:-4px}button:-moz-only-whitespace:not([aria-label]):not([aria-labelledby]):not([title])::before{border-bottom:1px solid !important;border-radius:0 !important;bottom:auto !important;font:400 normal 16px/1.5 monospace !important;height:auto !important;left:0 !important;opacity:0;padding:1em 0;pointer-events:none !important;position:fixed !important;text-align:center !important;text-decoration:none !important;text-transform:none !important;top:0 !important;transform:translateY(-100%) translateZ(0) !important;transition:transform 0.3s ease-in !important;white-space:pre;width:100vw !important;content:"☠  What should happen when I click? \a   It’s missing a content or a title via [aria-label], [aria-labelledby] or [title]." !important;background:#fce9e9 !important;border-color:#bf4040 !important;color:#602020 !important;z-index:2147483647 !important}button:-moz-only-whitespace:not([aria-label]):not([aria-labelledby]):not([title]):hover::before,button:-moz-only-whitespace:not([aria-label]):not([aria-labelledby]):not([title]):focus::before{opacity:1;transform:translateY(0) translateZ(0) !important}button[title=""],button[aria-label=""],button[aria-labelledby=""]{counter-increment:error;outline:4px solid #911 !important;outline-offset:-4px}button[title=""]::before,button[aria-label=""]::before,button[aria-labelledby=""]::before{border-bottom:1px solid !important;border-radius:0 !important;bottom:auto !important;font:400 normal 16px/1.5 monospace !important;height:auto !important;left:0 !important;opacity:0;padding:1em 0;pointer-events:none !important;position:fixed !important;text-align:center !important;text-decoration:none !important;text-transform:none !important;top:0 !important;transform:translateY(-100%) translateZ(0) !important;transition:transform 0.3s ease-in !important;white-space:pre;width:100vw !important;content:"☠  [aria-label], [aria-labelledby] or [title] on a <button> must not be empty. That’s awkward!" !important;background:#fce9e9 !important;border-color:#bf4040 !important;color:#602020 !important;z-index:2147483647 !important}button[title=""]:hover::before,button[title=""]:focus::before,button[aria-label=""]:hover::before,button[aria-label=""]:focus::before,button[aria-labelledby=""]:hover::before,button[aria-labelledby=""]:focus::before{opacity:1;transform:translateY(0) translateZ(0) !important}button:not([type]):not([form]):not([formaction]):not([formtarget]){counter-increment:error;outline:4px solid #911 !important;outline-offset:-4px}button:not([type]):not([form]):not([formaction]):not([formtarget])::before{border-bottom:1px solid !important;border-radius:0 !important;bottom:auto !important;font:400 normal 16px/1.5 monospace !important;height:auto !important;left:0 !important;opacity:0;padding:1em 0;pointer-events:none !important;position:fixed !important;text-align:center !important;text-decoration:none !important;text-transform:none !important;top:0 !important;transform:translateY(-100%) translateZ(0) !importan


2.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"],css3:[512,512,[],"f13c","M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"],"css3-alt":[384,512,[],"f38b","M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"],cuttlefish:[440,512,[],"f38c","M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],"d-and-d":[576,512,[],"f38d","M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3


s.editFillSwitch!(_layer, _setFillState);
    }
    return Column(
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: [
        SwitchListTile.adaptive(
          title: Text(_configs.i18n.paintEditor.fill),
          value: _paintItem.fill,
          onChanged: _setFillState,
        ),
      ],
    );
  }

  Widget _buildAction() {
    if (_customWidgets.editActionButtons != null) {
      return _customWidgets.editActionButtons!(_layer);
    }
    return Padding(
      padding: const EdgeInsets.fromLTRB(16, 16, 16, 0),
      child: Row(
        spacing: 12,
        mainAxisAlignment: MainAxisAlignment.end,
        children: [
          TextButton(
            onPressed: () => Navigator.of(context).pop(),
            child: Text(_configs.i18n.paintEditor.cancel),
          ),
          FilledButton(
            onPressed: () => Navigator.pop(context, _layer),
            child: Text(_configs.i18n.paintEditor.done),
          ),
        ],
      ),
    );
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);

    properties
      ..add(DiagnosticsProperty<PaintLayer>('layer', widget.layer))
      ..add(
          DiagnosticsProperty<ProImageEditorConfigs>('configs', widget.configs))
      ..add(EnumProperty<PaintMode>('mode', _paintItem.mode))
      ..add(ColorProperty('color', _paintItem.color))
      ..add(DoubleProperty('strokeWidth', _paintItem.strokeWidth))
      ..add(DoubleProperty('opacity', _layer.opacity))
      ..add(FlagProperty('fill', value: _paintItem.fill, ifTrue: 'filled'))
      ..add(FlagProperty('canBeFilled',
          value: _paintItem.canBeFilled, ifTrue: 'can be filled'))
      ..add(DiagnosticsProperty<Size>('rawSize', _layer.rawSize));
  }
}
import 'package:flutter/material.dart';

import '/plugins/emoji_picker_flutter/emoji_picker_flutter.dart';

/// A widget that represents an individual clickable emoji cell.
/// Can have a long pressed listener [onSkinToneDialogRequested] that
/// provides necessary data to show a skin tone popup.
class EmojiCellExtended extends StatelessWidget {
  /// Constructor that can retrieve as much information as possible from
  /// [Config]
  const EmojiCellExtended({
    super.key,
    this.categoryEmoji,
    this.onSkinToneDialogRequested,
    required this.emoji,
    required this.emojiSize,
    required this.emojiBoxSize,
    required this.onEmojiSelected,
    required this.emojiStyle,
    required this.buttonMode,
    required this.enableSkinTones,
    required this.skinToneIndicatorColor,
  });

  /// Emoji to display as the cell content
  final Emoji emoji;

  /// Font size for the emoji
  final double emojiSize;

  /// HitBox of emoji cell
  final double emojiBoxSize;

  /// Optional category that will be passed through to callbacks
  final CategoryEmoji? categoryEmoji;

  /// Visual tap feedback, see [ButtonMode] for options
  final ButtonMode buttonMode;

  /// Whether to show skin popup indicator if emoji supports skin colors
  final bool enableSkinTones;

  /// Color for skin color indicator triangle
  final Color skinToneIndicatorColor;

  /// Callback triggered on long press. Will be called regardless
  /// whether [enableSkinTones] is set or not and for any emoji to
  /// give a way for the caller to dismiss any existing overlays.
  final OnSkinToneDialogRequested? onSkinToneDialogRequested;

  /// Callback for a single tap on the cell.