0,   0,   0), 4 ), // RFC1112 Reserved for Future Use + RFC919 Limited Broadcast
        // @formatter:on
    ];

    private static UInt128 ToAddressBytes(string ip)
    {
        return BinaryPrimitives.ReadUInt128BigEndian(IPAddress.Parse(ip).GetAddressBytes());
    }

    private static readonly (UInt128 ip, int mask)[] ReservedRangesIpv6 =
    [
        (ToAddressBytes("::1"), 128), // "This host on this network"
        (ToAddressBytes("::ffff:0:0"), 96), // IPv4-mapped addresses
        (ToAddressBytes("::ffff:0:0:0"), 96), // IPv4-translated addresses
        (ToAddressBytes("64:ff9b:1::"), 48), // IPv4/IPv6 translation
        (ToAddressBytes("100::"), 64), // Discard prefix
        (ToAddressBytes("2001:20::"), 28), // ORCHIDv2
        (ToAddressBytes("2001:db8::"), 32), // Addresses used in documentation and example source code
        (ToAddressBytes("3fff::"), 20), // Addresses used in documentation and example source code
        (ToAddressBytes("5f00::"), 16), // IPv6 Segment Routing (SRv6)
        (ToAddressBytes("fc00::"), 7), // Unique local address
    ];

    internal static bool IsAddressReservedIpv4(IPAddress address)
    {
        if (address.AddressFamily != AddressFamily.InterNetwork)
            return false;

        Span<byte> ipBitsByte = stackalloc byte


 node Pointer to the node.
 *
 * @return Returns 0 on success, or a negative error value on failure.
 */

int
ocs_node_group_init(ocs_node_t *node)
{
	ocs_t *ocs;
	ocs_sport_t *sport;
	ocs_node_group_dir_t *node_group_dir;
	ocs_remote_node_group_t *node_group;
	ocs_hw_rtn_e hrc;

	ocs_assert(node, -1);
	ocs_assert(node->sport, -1);
	ocs_assert(node->ocs, -1);

	ocs = node->ocs;
	sport = node->sport;

	ocs_assert(ocs->enable_hlm, -1);

	/* see if there's a node group directory allocated for this service parameter set */
	node_group_dir = ocs_node_group_dir_find(sport, node->service_params);
	if (node_group_dir == NULL) {
		/* not found, so allocate one */
		node_group_dir = ocs_node_group_dir_alloc(sport, node->service_params);
		if (node_group_dir == NULL) {
			/* node group directory allocation failed ... can't continue, however,
			 * the node will be allocated with a normal (not shared) RPI
			 */
			ocs_log_err(ocs, "ocs_node_group_dir_alloc() failed\n");
			return -1;
		}
	}

	/* check to see if we've allocated hlm_group_size's worth of node group structures for this
	 * directory entry, if not, then allocate and use a new one, otherwise pick the next one.
	 */
	ocs_lock(&node->sport->node_group_lock);
		if (node_group_dir->node_group_list_count < ocs->hlm_group_size) {
			ocs_unlock(&node->sport->node_group_lock);
				node_group = ocs_remote_node_group_alloc(node_group_dir);
			if (node_group == NULL) {
				ocs_log_err(ocs, "ocs_remote_node_group_alloc() failed\n");
				return -1;
			}
			ocs_lock(&node->sport->node_group_lock);
		} else {
			uint32_t idx = 0;

			ocs_list_foreach(&node_group_dir->node_group_list, node_group) {
				if (idx >= ocs->hlm_group_size) {
					ocs_log_err(node->ocs, "assertion failed: idx >= ocs->hlm_group_size\n");
					ocs_unlock(&node->sport->node_group_lock);
					return -1;
				}

				if (idx == node_group_dir->next_idx) {
					break;
				}
				idx ++;
			}
			if (idx == ocs->hlm_group_size) {
				node_group = ocs_list_get_head(&node_group_dir->node_group_list);
			}
			if (++node_group_dir->next_idx >= node_group_dir->node_group_list_count) {
				node_group_dir->next_idx = 0;
			}
		}
	ocs_unlock(&node->sport->node_group_lock);

	/* Initialize a pointer in the node back to the node group */
	node->node_group = node_group;

	/* Join this node into the group */
	hrc = ocs_hw_node_group_attach(&ocs->hw, node_group, &node->rnode);

	return (hrc == OCS_HW_RTN_SUCCESS) ? 0 : -1;
}


	spi_controller_put(ctlr);

	return ret;
}

static void aml_spisg_remove(struct platform_device *pdev)
{
	struct spisg_device *spisg = platform_get_drvdata(pdev);

	if (!pm_runtime_suspended(&pdev->dev)) {
		pinctrl_pm_select_sleep_state(&spisg->pdev->dev);
		clk_disable_unprepare(spisg->core);
		clk_disable_unprepare(spisg->pclk);
	}
}

static int spisg_suspend_runtime(struct device *dev)
{
	struct spisg_device *spisg = dev_get_drvdata(dev);

	pinctrl_pm_select_sleep_state(&spisg->pdev->dev);
	clk_disable_unprepare(spisg->sclk);
	clk_disable_unprepare(spisg->core);

	return 0;
}

static int spisg_resume_runtime(struct device *dev)
{
	struct spisg_device *spisg = dev_get_drvdata(dev);

	clk_prepare_enable(spisg->core);
	clk_prepare_enable(spisg->sclk);
	pinctrl_pm_select_default_state(&spisg->pdev->dev);

	return 0;
}

static const struct dev_pm_ops amlogic_spisg_pm_ops = {
	.runtime_suspend	= spisg_suspend_runtime,
	.runtime_resume		= spisg_resume_runtime,
};

static const struct of_device_id amlogic_spisg_of_match[] = {
	{
		.compatible = "amlogic,a4-spisg",
	},

	{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, amlogic_spisg_of_match);

static struct platform_driver amlogic_spisg_driver = {
	.probe = aml_spisg_probe,
	.remove = aml_spisg_remove,
	.driver  = {
		.name = "amlogic-spisg",
		.of_match_table = amlogic_spisg_of_match,
		.pm = &amlogic_spisg_pm_ops,
	},
};

module_platform_driver(amlogic_spisg_driver);

MODULE_DESCRIPTION("Amlogic SPI Scatter-Gather Controller driver");
MODULE_AUTHOR("Sunny Luo <sunny.luo@amlogic.com>");
MODULE_LICENSE("GPL");


tsExpirer().LogOffset(mclock.Now()))
	if nodeStr == "" {
		return api.vt.RtStats().Value(wt, expFactor), nil
	}
	if id, err := parseNodeStr(nodeStr); err == nil {
		return api.vt.GetNode(id).RtStats().Value(wt, expFactor), nil
	} else {
		return 0, err
	}
}
// Copyright 2020 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.

package client

import (
	"math/rand"
	"testing"

	"github.com/celo-org/celo-blockchain/les/utils"
)

func checkU64(t *testing.T, name string, value, exp uint64) {
	if value != exp {
		t.Errorf("Incorrect value for %s: got %d, expected %d", name, value, exp)
	}
}

func checkF64(t *testing.T, name string, value, exp, tol float64) {
	if value < exp-tol || value > exp+tol {
		t.Errorf("Incorrect value for %s: got %f, expected %f", name, value, exp)
	}
}

func TestServerBasket(t *testing.T) {
	var s serverBasket
	s.init(2)
	// add some requests with different request value factors
	s.updateRvFactor(1)
	noexp := utils.ExpirationFactor{Factor: 1}
	s.add(0, 1000, 10000, noexp)
	s.add(1, 3000, 60000, noexp)
	s.updateRvFactor(10)
	s.add(0, 4000, 4000, noexp)
	s.add(1, 2000, 4000, noexp)
	s.updateRvFactor(10)
	// check basket contents directly
	checkU64(t, "s.basket[0].amount", s.basket.items[0].amount, 5000*basketFactor)
	checkU64(t, "s.basket[0].value", s.basket.items[0].value, 50000)
	checkU64(t, "s.basket[1].amount", s.basket.items[1].amount, 5000*basketFactor)
	checkU64(t, "s.basket[1].value", s.basket.items[1].value, 100000)
	// transfer 50% of the contents of the basket
	transfer1 := s.transfer(0.5)
	checkU64(t, "transfer1[0].amount", transfer1.items[0].amount, 2500*basketFactor)
	checkU64(t, "transfer1[0].value", transfer1.items[0].value, 25000)
	checkU64(t, "transfer1[1].amount", transfer1.items[1].amount, 2500*basketFactor)
	checkU64(t, "transfer1[1].value", transfer1.items[1].value, 50000)
	// add more requests
	s.updateRvFactor(100)
	s.add(0, 1000, 100, noexp)
	// transfer 25% of the contents of the basket
	transfer2 := s.transfer(0.25)
	checkU64(t, "transfer2[0].amount", transfer2.items[0].amount, (2500+1000)/4*basketFactor)
	checkU64(t, "transfer2[0].value", transfer2.items[0].value, (25000+10000)/4)
	checkU64(t, "transfer2[1].amount", transfer2.items[1].amount, 2500/4*basketFactor)
	checkU64(t, "transfer2[1].value", transfer2.items[1].value, 50000/4)
}

func TestConvertMapping(t *testing.T) {
	b := requestBasket{


, 2, 2, 2, 274,
	276, 9, 4, 2, 2, 275, 274, 3, 2, 2, 2, 276, 277, 3, 2, 2, 2, 277, 275,
	3, 2, 2, 2, 277, 278, 3, 2, 2, 2, 278, 279, 3, 2, 2, 2, 279, 280, 8, 35,
	2, 2, 280, 70, 3, 2, 2, 2, 7, 2, 244, 267, 272, 277, 3, 8, 2, 2,
}

var lexerChannelNames = []string{
	"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
}

var lexerModeNames = []string{
	"DEFAULT_MODE",
}

var lexerLiteralNames = []string{
	"", "';'", "'.'", "'('", "')'", "'HSP'", "'OUTPUT'", "'INPUT'", "'JUMP'",
	"'TO'", "'READ-ITEM'", "'WRITE-ITEM'", "'TRANSFER'", "'IF'", "'OTHERWISE'",
	"'REWIND'", "'STOP'", "'COMPARE'", "'WITH'", "'MOVE'", "'SET'", "'TEST'",
	"'AGAINST'", "'CLOSE-OUT'", "'FILES'", "'OPERATION'", "'EQUAL'", "'GREATER'",
	"", "", "'GO TO'", "'END OF DATA'",
}

var lexerSymbolicNames = []string{
	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
	"", "", "", "", "", "", "", "", "", "", "END", "ZERO", "GOTO", "EOD", "ID",
	"NUM", "WS",
}

var lexerRuleNames = []string{
	"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
	"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
	"T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
	"T__25", "T__26", "END", "ZERO", "GOTO", "EOD", "ID", "NUM", "WS",
}

type flowmaticLexer struct {
	*antlr.BaseLexer
	channelNames []string
	modeNames    []string
	// TODO: EOF string
}

// NewflowmaticLexer produces a new lexer instance for the optional input antlr.CharStream.
//
// The *flowmaticLexer instance produced may be reused by calling the SetInputStream method.
// The initial lexer configuration is expensive to construct, and the object is not thread-safe;
// however, if used within a Golang sync.Pool, the construction cost amortizes well and the
// objects can be used in a thread-safe manner.
func NewflowmaticLexer(input antlr.CharStream) *flowmaticLexer {
	l := new(flowmaticLexer)
	lexerDeserializer := antlr.NewATNDeserializer(nil)
	lexerAtn := lexerDeserializer.DeserializeFromUInt16(serializedLexerAtn)
	lexerDecisionToDFA := make([]*antlr.DFA, len(lexerAtn.DecisionToState


s {
			ctx.WriteKeyWord("IF EXISTS ")
		}
		if err := n.OldColumnName.Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName")
		}
		ctx.WritePlain(" ")
		if err := n.NewColumns[0].Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]")
		}
		if n.Position.Tp != ColumnPositionNone {
			ctx.WritePlain(" ")
		}
		if err := n.Position.Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Position")
		}
	case AlterTableRenameColumn:
		ctx.WriteKeyWord("RENAME COLUMN ")
		if err := n.OldColumnName.Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName")
		}
		ctx.WriteKeyWord(" TO ")
		if err := n.NewColumnName.Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumnName")
		}
	case AlterTableRenameTable:
		ctx.WriteKeyWord("RENAME AS ")
		if err := n.NewTable.Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewTable")
		}
	case AlterTableAlterColumn:
		ctx.WriteKeyWord("ALTER COLUMN ")
		if err := n.NewColumns[0].Restore(ctx); err != nil {
			return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]")
		}
		if len(n.NewColumns[0].Options) == 1 {
			ctx.WriteKeyWord("SET DEFAULT ")
			expr := n.NewColumns[0].Options[0].Expr
			if valueExpr, ok := expr.(ValueExpr); ok {
				if err := valueExpr.Restore(ctx); err != nil {
					return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr")
				}
			} else {
				ctx.WritePlain("(")
				if err := expr.Restore(ctx); err != nil {
					return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr")
				}
				ctx.WritePlain(")")
			}
		} else {
			ctx.WriteKeyWord(" DROP DEFAULT")
		}
	case AlterTableLock:
		ctx.WriteKeyWord("LOCK ")
		ctx.WritePlain("= ")
		ctx.WriteKeyWord(n.LockType.String())
	case AlterTableWriteable:
		ctx.WriteKeyWord("READ ")
		if n.Writeable {
			ctx.WriteKeyWord("WRITE")
		} else {
			ctx.WriteKeyWord("ONLY")
		}
	case AlterTableOrderByColumns:
		ctx.WriteKeyWord("ORDER BY ")
		for i, alterOrderItem := range n.OrderByList {
			if i != 0 {
				ctx.WritePlain(",")
			}
			if err := alterOrderItem.Restore(ctx); err != nil {
				return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.OrderByList[%d]", i)
			}
		}
	case AlterTableAlgorithm:
		ctx.WriteKeyWord("ALGORITHM ")
		ctx.WritePlain("= ")
		ctx.WriteKeyWord(n.Algorithm.String())
	case AlterTableRenameIndex:
		ctx.WriteKeyWord("RENAME INDEX ")
		ctx.WriteName(n.FromKey.O)
		ctx.WriteKeyWord(" TO ")
		ctx.WriteName(


                  set(Calendar.HOUR_OF_DAY, 0)
                    set(Calendar.MINUTE, 0)
                    set(Calendar.SECOND, 0)
                    set(Calendar.MILLISECOND, 0)
                }.timeInMillis
            }
            WordSet("today").startsWith(date) -> {
                Calendar.getInstance().apply {
                    set(Calendar.HOUR_OF_DAY, 0)
                    set(Calendar.MINUTE, 0)
                    set(Calendar.SECOND, 0)
                    set(Calendar.MILLISECOND, 0)
                }.timeInMillis
            }
            WordSet("يومين").startsWith(date) -> {
                Calendar.getInstance().apply {
                    add(Calendar.DAY_OF_MONTH, -2) // day before yesterday
                    set(Calendar.HOUR_OF_DAY, 0)
                    set(Calendar.MINUTE, 0)
                    set(Calendar.SECOND, 0)
                    set(Calendar.MILLISECOND, 0)
                }.timeInMillis
            }
            WordSet("ago", "atrás", "önce", "قبل").endsWith(date) -> {
                parseRelativeDate(date)
            }
            WordSet("hace").startsWith(date) -> {
                parseRelativeDate(date)
            }
            date.contains(Regex("""\d(st|nd|rd|th)""")) -> {
                // Clean date (e.g. 5th December 2019 to 5 December 2019) before parsing it
                date.split(" ").map {
                    if (it.contains(Regex("""\d\D\D"""))) {
                        it.replace(Regex("""\D"""), "")
                    } else {
                        it
                    }
                }
                    .let { dateFormat.tryParse(it.joinToString(" ")) }
            }
            else -> dateFormat.tryParse(date)
        }
    }

    // Parses dates in this form:
    // 21 horas ago
    protected open fun parseRelativeDate(date: String): Long {
        val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0
        val cal = Calendar.getInstance()

        return when {
            WordSet("hari", "gün", "jour", "día", "dia", "day", "วัน", "ngày", "giorni", "أيام", "天").anyWordIn(date) -> cal.apply { add(Calendar.DAY_OF_MONTH, -number) }.timeInMillis
            WordSet("jam", "saat", "heure", "hora", "hour", "ชั่วโมง", "giờ", "ore", "ساعة", "小时").anyWordIn(date) -> cal.apply { add(Calendar.HOUR, -number) }.timeInMillis
            WordSet("menit", "dakika", "min", "minute", "minuto", "นาที", "دقائق").anyWordIn(date) -> cal.apply { add(Calendar.MINUTE, -number) }.timeInMillis
            WordSet("detik", "segundo", "second", "วินาที").anyWordIn(date) -> cal.apply { add(Calendar.SECOND, -number) }.timeInMillis
            WordSet("week", "semana").anyWordIn(date) -> cal.apply { add(Calendar.DAY_OF_MONTH, -number * 7) }.timeInMillis
            WordSet("month", "mes").anyWordIn(date) -> cal.apply { add(Calendar.MONTH, -number) }.timeInMillis
            WordSet("year", "año").anyWordIn(date) -> cal.apply { add(Calendar.YEAR, -number) }.timeInMillis
            else -> 0
        }
    }

    override fun pageListRequest(chapter: SChapter): Request {
        if (chapter.url.startsWith("http")) {
            return GET(chapter.url, headers)
        }
        return super.pageListRequest(chapter)
    }

    open val pageListParseSelector = "div.page-break, li.blocks-gallery-item, .reading-content .text-left:not(:has(.blocks-gallery-item)) img"

    open val chapterProtectorSelector = "#chapter-protector-data"

    override fun pageListParse(document: Document): List<Page> {
        countViews(document)


请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId

    def _deserialize(self, params):
        self._LoadBalancerIds = params.get("LoadBalancerIds")
        self._DealName = params.get("DealName")
        self._RequestId = params.get("RequestId")

class CreateTargetGroupRequest(AbstractModel):
    r"""CreateTargetGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TargetGroupName: 目标组名称，限定60个字符。
        :type TargetGroupName: str
        :param _VpcId: 网关负载均衡后端目标组所属的网络 ID，如vpc-12345678，可以通过 [DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)  接口获取。 不填此参数则默认为DefaultVPC。
        :type VpcId: str
        :param _Port: 目标组的默认端口， 后续添加服务器时可使用该默认端口。Port和TargetGroupInstances.N中的port二者必填其一。仅支持6081。
        :type Port: int
        :param _TargetGroupInstances: 目标组绑定的后端服务器
        :type TargetGroupInstances: list of TargetGroupInstance
        :param _Protocol: 网关负载均衡目标组协议。
- TENCENT_GENEVE ：GENEVE 标准协议
- AWS_GENEVE：GENEVE 兼容协议
        :type Protocol: str
        :param _HealthCheck: 健康检查设置。
        :type HealthCheck: :class:`tencentcloud.gwlb.v20240906.models.TargetGroupHealthCheck`
        :param _ScheduleAlgorithm: 均衡算法。
- IP_HASH_3_ELASTIC：弹性哈希
        :type ScheduleAlgorithm: str
        :param _AllDeadToAlive: 是否支持全死全活。默认支持。
        :type AllDeadToAlive: bool
        :param _Tags: 标签。
        :type Tags: list of TagInfo
        :param _ForwardingMode: 流量分发方式

- STATELESS：无状态
- STATEFUL： 有状态
        :type ForwardingMode: str
        :param _TcpIdleConnectTimeout: TCP协议连接空闲超时时间，可配置60s-6000s，默认350s。
        :type TcpIdleConnectTimeout: int
        :param _OthersIdleConnectTimeout: 其他协议连接空闲超时时间，可配置5s-180s，默认120s
        :type OthersIdleConnectTimeout: int
        :param _RescheduleUnbindRs: 重新调度功能内的解绑后端服务开关，开关打开后解绑后端服务会触发重新调度。
        :type RescheduleUnbindRs: bool
        :param _RescheduleUnbindRsStartTime: 解绑RS后开启重调度的时间，可配置0s-3600s，默认0s
        :type RescheduleUnbindRsStartTime: int
        :param _RescheduleUnhealthy: 重新调度功能内的后端服务健康探测异常开关，开关打开后后端服务健康检查异常会触发重新调度。
        :type RescheduleUnhealthy: bool
        :param _RescheduleUnhealthyStartTime: 后端服务健康探测异常后开启重调度的时间，可配置0s-3600s，默认0s
        :type RescheduleUnhealthyStartTime: int
        """
        self._TargetGroupName = None
        self._VpcId = None
        self._Port = None
        self._TargetGroupInstances = None
        self._Protocol = None
        self._HealthCheck = None
        self._ScheduleAlgorithm = None
        self._AllDeadToAlive = None
        self._Tags = None
        self._ForwardingMode = None
        self._TcpIdleConnectTimeout = None
        self._OthersIdleConnectTimeout = None
        self._RescheduleUnbindRs = None
        self._RescheduleUnbindRsStartTime = None
        self._RescheduleUnhealthy = None
        self._RescheduleUnhealthyStartTime = None

    @property
    def TargetGroupName(self):
        r"""目标组名称，限定60个字符。
        :rtype: str
        """
        return self._TargetGroupName

    @TargetGroupName.setter
    def TargetGroupName(self, TargetGroupName):
        self._TargetGroupName = TargetGroupName

    @property
    def VpcId(self):
        r"""网关负载均衡后端目标组所属的网络 ID，如vpc-12345678，可以通过 [DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)  接口获取。 不填此参数则默认为DefaultVPC。
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Port(self):
        r"""目标组的默认端口， 后续添加服务器时可使用该默认端口。Port和TargetGroupInstances.N中的port二者必填其一。仅支持6081。
        :rtype: int
        """
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def TargetGroupInstances(self):
        r"""目标组绑定的后端服务器
        :rtype: list of TargetGroupInstance
        """
        return self._TargetGroupInstances

    @TargetGroupInstances.setter
    def TargetGroupInstances(self, TargetGroupInstances):
        self._TargetGroupInstances = TargetGroupInstances

    @property
    def Protocol(self):
        r"""网关负载均衡目标组协议。
- TENCENT_GENEVE ：GENEVE 标准协议
- AWS_GENEVE：GENEVE 兼容协议
        :rtype: str
        """
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def HealthCheck(self):
        r"""健康检查设置。
        :rtype: :cl


) {
      if (directive is PartOfDirective) return;

      if (directive is! LibraryDirective) {
        _check(directive);
      }
    }

    node.declarations.forEach(_check);
  }

  void _check(AnnotatedNode node) {
    for (var annotation in node.metadata) {
      var elementAnnotation = annotation.elementAnnotation;
      if (elementAnnotation == null) {
        return;
      }

      if (elementAnnotation.targetKinds.length == 1 &&
          elementAnnotation.targetKinds.contains(TargetKind.library) &&
          firstDirective == node) {
        rule.reportAtNode(annotation);
      } else if (elementAnnotation.isPragmaLateTrust) {
        rule.reportAtNode(annotation);
      }
    }
  }
}

extension on ElementAnnotation {
  /// Whether this is an annotation of the form `@pragma('dart2js:late:trust')`.
  bool get isPragmaLateTrust {
    if (_isConstructor(libraryName: 'dart.core', className: 'pragma')) {
      var value = computeConstantValue();
      var nameValue = value?.getField('name');
      return nameValue?.toStringValue() == 'dart2js:late:trust';
    }
    return false;
  }

  // Copied from package:analyzer/src/dart/element/element.dart
  bool _isConstructor({
    required String libraryName,
    required String className,
  }) {
    var element = this.element;
    return element is ConstructorElement &&
        element.enclosingElement.name == className &&
        element.library.name == libraryName;
  }
}
// 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.

import 'package:analyzer/analysis_rule/rule_context.dart';
import 'package:analyzer/analysis_rule/rule_visitor_registry.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/error/error.dart';

import '../analyzer.dart';

const _desc = r'Prefer asserts with message.';

class PreferAssertsWithMessage extends LintRule {
  PreferAssertsWithMessage()
    : super(name: LintNames.prefer_asserts_with_message, description: _desc);

  @override
  DiagnosticCode get diagnosticCode => LinterLintCode.preferAssertsWithMessage;

  @override
  void registerNodeProcessors(
    RuleVisitorRegistry registry,
    RuleContext context,
  ) {
    var visitor = _Visitor(this);
    registry.addAssertInitializer(this, visitor);
    registry.addAssertStatement(this, visitor);
  }
}

class _Visitor extends SimpleAstVisitor<void> {
  final LintRule rule;

  _Visitor(this.rule);

  @override
  void visitAssertInitializer(AssertInitializer node) {
    if (node.message == null) {
      rule.reportAtNode(node);
    }
  }

  @override
  void visitAssertStatement(AssertStatement node) {
    if (node.message == null) {
      rule.reportAtNode(node);
    }
  }
}
// Copyright (c) 2015, 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.

import 'package:analyzer/analysis_rule/rule_context.dart';
import 'package:analyzer/analysis_rule/rule_visitor_registry.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer


ce(6180, 0)
    OP_6C(135000, 0)
    OP_6E(262, 0)
    ChrSetFlags(0x0028, 0x0004)
    ChrSetFlags(0x0028, 0x0040)
    ChrSetFlags(0x0029, 0x0004)
    ChrSetFlags(0x0029, 0x0040)
    OP_A1(0x0028, 0x000B)
    OP_A1(0x0029, 0x000A)
    OP_72(0x000B, 0x0004)
    OP_72(0x000A, 0x0004)
    OP_72(0x0009, 0x0004)
    ChrSetPos(0x0028, 87000, -5300, 131150, 90)
    ChrSetPos(0x0029, 87000, -5300, 131150, 90)
    Yield()
    OP_0D()
    PlaySE(120, 0x00, 0x64)
    OP_6F(0x0005, 0)
    OP_70(0x0005, 100)
    Sleep(3000)

    OP_6F(0x000A, 2)
    OP_70(0x000A, 100)
    PlaySE(118, 0x00, 0x64)
    OP_73(0x000A)
    OP_23(0x0075)
    PlaySE(119, 0x00, 0x64)
    OP_6F(0x000A, 100)
    OP_6F(0x000B, 100)
    OP_70(0x000A, 200)
    OP_70(0x000B, 200)
    OP_73(0x000B)
    OP_6F(0x000A, 200)
    OP_6F(0x000B, 200)
    OP_70(0x000A, 300)
    OP_70(0x000B, 300)

    @scena.Lambda('lambda_1016')
    def lambda_1016():
        ChrMoveTo(0x00FE, 100000, 500, 131110, 3000, 0x00)

        ExitThread()

    DispatchAsync(0x0028, 0x0001, lambda_1016)

    @scena.Lambda('lambda_1031')
    def lambda_1031():
        ChrMoveTo(0x00FE, 100000, 500, 131110, 3000, 0x00)

        ExitThread()

    DispatchAsync(0x0029, 0x0001, lambda_1031)

    WaitForThreadExit(0x0029, 0x0001)
    Fade(1000)
    CameraMove(108820, 1500, 134250, 0)
    OP_67(0, 9790, -10000, 0)
    CameraSetDistance(7800, 0)
    OP_6C(90000, 0)
    OP_6E(262, 0)

    @scena.Lambda('lambda_1093')
    def lambda_1093():
        ChrMoveTo(0x00FE, 148750, 1500, 131110, 5000, 0x00)

        ExitThread()

    DispatchAsync(0x0028, 0x0003, lambda_1093)

    @scena.Lambda('lambda_10AE')
    def lambda_10AE():
        ChrMoveTo(0x00FE, 148750, 1500, 131110, 5000, 0x00)

        ExitThread()

    DispatchAsync(0x0029, 0x0003, lambda_10AE)

    Sleep(4000)

    FadeOut(2000, 0, -1)
    WaitForThreadExit(0x0029, 0x0003)
    OP_DC()
    NewScene('ED6_DT21/E0000._SN', 100, 0, 0)
    IdleLoop()

    Jump('loc_10E4')

    def _loc_10E4(): pass

    label('loc_10E4')

    Jump('loc_1112')

    def _loc_10E7(): pass

    label('loc_10E7')

    ChrTalk(
        0x0008,
        (
            '需要购买船票的客人请去\n',
            '那边的建筑物～',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    def _loc_1112(): pass

    label('loc_1112')

    TalkEnd(0x0008)

    Return()

# id: 0x0005 offset: 0x1116
@scena.Code('func_05_1116')
def func_05_1116():
    TalkBegin(0x00FE)

    If(
        (
            (Expr.TestScenaFlags, ScenaFlag(0x02C7, 5, 0x163D)),
            Expr.Return,
        ),
        'loc_1181',
    )

    ChrTalk(
        0x00FE,
        (
            '唔、嗯……\n',
            '机械部分无任何异常。',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x00FE,
        (
            '导力压的调整也完成了……\n',
            '这、这下，全部都结束了吧？',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    Jump('loc_11A6')

    def _loc_1181(): pass

    label('loc_1181')

    ChrTalk(
        0x00FE,
        (
            '唔、嗯……\n',
            '……下一班定期船……',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    def _loc_11A6(): pass

    label('loc_11A6')

    TalkEnd(0x00FE)

    Return()

# id: 0x0006 offset: 0x11AA
@scena.Code('func_06_11AA')
def func_06_11AA():
    TalkBegin(0x00FE)

    If(
        (
            (Expr.TestScenaFlags, ScenaFlag(0x02C7, 5, 0x163D)),
            Expr.Return,
        ),
        'loc_1225',
    )

    ChrTalk(
        0x00FE,
        (
            '最后的总检查\n',
            '是维修主任您的工作吧？',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x00FE,
        (
            '对了，不要对我这么客气。',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x00FE,
        (
            '真是的……\n',
            '为什么每次都变成这样。',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    Jump('loc_1270')

    def _loc_1225(): pass

    label('loc_1225')

    ChrTalk(
        0x00FE,
        (
            '真让人着急……\n',
            '赛希莉亚号刚刚才飞走吧！',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x00FE,
        (
            '接下来是林德号、林德号！',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    def _loc_1270(): pass

    label('loc_1270')

    TalkEnd(0x00FE)

    Return()

# id: 0x0007 offset: 0x1274
@scena.Code('func_07_1274')
def func_07_1274():
    TalkBegin(0x00FE)

    If(
        (


n_lt_/p_gt_\n\n_lt_p_gt_\n\t3.  Would adding things like bone.rotation... make users treat bones as mesh_co_ when they really are not a mesh?  Confusion factor?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t4.  Are there other drawbacks to _qt_loading-up_qt_ the bone class... with functions/properties similar to mesh .rotation/.position/.scaling?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThanks for info_co_ guys.  I am newbie about bones/skeletons_co_ and I want to see if there are problems with _qt_powering-up_qt_ the bone class.  If there are no issues_co_ or only tiny issues_co_ then perhaps I will join getzel in requesting/coding more bone features.  (Wingy_co_ coding typescript?  Get real.)  heh.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tLook _lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#OCCLB%2316_qt_ rel_eq__qt_external nofollow_qt__gt_how much code it takes_lt_/a_gt_... to activate simple dynamic movement on Mister Elbow. \n_lt_/p_gt_\n\n_lt_p_gt_\n\t5. Even though bones are not mesh_co_ is there any reasons why we can_t_t make them _qt_act_qt_ like mesh_co_ in a limited way?  Why not bone.rotation.z _eq_ euler-whatever?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t6.  Would it be wiser to put bone-manipulation tools.... on BABYLON.Tools? \n_lt_/p_gt_\n\n_lt_p_gt_\n\t7. Thoughts_co_ anyone?  _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt_  Thx!\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"adam","Date":"2016-10-24T14:36:42Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_148650_qt_ data-ipsquote-contentid_eq__qt_20067_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1477319557_qt_ data-ipsquote-userid_eq__qt_5733_qt_ data-ipsquote-username_eq__qt_Wingnut_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_


Repos.value = Result.Failure(
                        Error(
                            message = throwable.message ?: "",
                            throwable = throwable
                        )
                    )
                }
                .collect { result ->
                    _uiRepos.value =
                        result.map { list ->
                            list.map {
                                it.toUi(
                                    checkFakeFavorite(it.id)
                                )
                            }.toPersistentList()
                        }
                }
        }
    }

    private fun checkFakeFavorite(repoId: Int) =
        fakeStoreFavoriteRepoId.contains(repoId)

    private fun cancelJobs() {
        job.cancel()
    }

    /*
     * Fake Store Favorite Repos
     */

    private val fakeStoreFavoriteRepoId: ArrayList<Int> = arrayListOf()

    fun updateFakeFavorite(repoUiModel: RepoUiModel) {
        if (repoUiModel.isLiked) addFakeFavorite(repoUiModel.id)
        else removeFakeFavorite(repoUiModel.id)
    }

    private fun addFakeFavorite(id: Int) {
        fakeStoreFavoriteRepoId.add(id)
        updateRepo(id)
    }

    private fun removeFakeFavorite(id: Int) {
        fakeStoreFavoriteRepoId.remove(id)
        updateRepo(id)
    }

    private fun updateRepo(id: Int) {
        _uiRepos.update { result ->
            result?.map { persistentList ->
                persistentList.map { repoUi ->
                    if (repoUi.id == id) {
                        repoUi.copy(isLiked = checkFakeFavorite(id))
                    } else {
                        repoUi
                    }
                }.toPersistentList()
            }
        }
    }
}/*
 * Copyright 2017 Hippo Seven
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.hippo.network

import android.content.Context
import androidx.room.AutoMigration
import androidx.room.ColumnInfo
import androidx.room.Dao
import androidx.room.Database
import androidx.room.Delete
import androidx.room.Entity
import androidx.room.Insert
import androidx.room.PrimaryKey
import androidx.room.Query
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.Update
import okhttp3.Cookie as OkHttpCookie

@Entity(tableName = "OK_HTTP_3_COOKIE")
class Cookie(
    @ColumnInfo(name = "NAME")
    var name: String,
    @ColumnInfo(name = "VALUE")
    var value: String,
    @ColumnInfo(name = "EXPIRES_AT")
    var expiresAt: Long,
    @ColumnInfo(name = "DOMAIN")
    var domain: String,
    @ColumnInfo(name = "PATH")
    var path: String,
    @ColumnInfo(name = "SECURE")
    var secure: Boolean,
    @ColumnInfo(name = "HTTP_ONLY")
    var httpOnly: Boolean,
    @ColumnInfo(name = "PERSISTENT")
    var persistent: Boolean,
    @ColumnInfo(name = "HOST_ONLY")
    var hostOnly: Boolean,
    @PrimaryKey
    @ColumnInfo(name = "_id")
    var id: Long?,
)

@Dao
interface CookiesDao {
    @Query("SELECT * FROM OK_HTTP_3_COOKI


// Copyright (c) 2003-2017 SIL International
// This software is licensed under the LGPL, version 2.1 or later
// (http://www.gnu.org/licenses/lgpl-2.1.html)

using NUnit.Framework;
using SIL.LCModel.Core.WritingSystems;
using SIL.Keyboarding;

namespace SIL.FieldWorks.Common.RootSites.SimpleRootSiteTests
{
	[TestFixture]
	public class SimpleRootSiteTests
	{
		[Test]
		public void GetWSForInputMethod_GetsMatchingWSByInputMethod()
		{
			var wsEn = new CoreWritingSystemDefinition("en");
			var wsFr = new CoreWritingSystemDefinition("fr");
			DefaultKeyboardDefinition kbdEn = CreateKeyboard("English", "en-US");
			wsEn.LocalKeyboard = kbdEn;
			DefaultKeyboardDefinition kbdFr = CreateKeyboard("French", "fr-FR");
			wsFr.LocalKeyboard = kbdFr;

			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdEn, wsEn, new[] { wsEn, wsFr }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdEn, wsFr, new[] { wsEn, wsFr }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdEn, wsEn, new[] { wsFr, wsEn }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdEn, wsFr, new[] { wsFr, wsEn }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdFr, wsEn, new[] { wsFr, wsEn }), Is.EqualTo(wsFr));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdFr, wsEn, new[] { wsEn, wsFr }), Is.EqualTo(wsFr));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdFr, null, new[] { wsEn, wsFr }), Is.EqualTo(wsFr));
		}

		[Test]
		public void GetWSForInputMethod_PrefersCurrentLayoutIfTwoMatch()
		{
			var wsEn = new CoreWritingSystemDefinition("en");
			var wsFr = new CoreWritingSystemDefinition("fr");
			DefaultKeyboardDefinition kbdEn = CreateKeyboard("English", "en-US");
			wsEn.LocalKeyboard = kbdEn;
			DefaultKeyboardDefinition kbdFr = CreateKeyboard("French", "fr-FR");
			wsFr.LocalKeyboard = kbdFr;
			DefaultKeyboardDefinition kbdDe = CreateKeyboard("German", "de-DE");

			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdDe, wsEn, new[] { wsEn, wsFr }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdDe, wsFr, new[] { wsEn, wsFr }), Is.EqualTo(wsFr));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdDe, wsEn, new[] { wsFr, wsEn }), Is.EqualTo(wsEn));
			Assert.That(SimpleRootSite.GetWSForInputMethod(kbdDe, wsFr, new[] { wsFr, wsEn }), Is.EqualTo(wsFr));
		}

		[Test]
		public void GetWsForInputMethod_CorrectlyPrioritizesInputMethod()
		{
			var wsEn = new CoreWritingSystemDefinition("en");
			var wsEnIpa = new CoreWritingSystemDefinition("en-fonipa");
			var wsFr = new CoreWritingSystemDefinition("fr");
			var wsDe = new CoreWritingSystemDefinition("de");
			DefaultKeyboardDefinition kbdEn = CreateKeyboard("English", "en-US");
			wsEn.LocalKeyboard = kbdEn;
			DefaultKeyboardDefinition kbdEnIpa = CreateKeyboard("English-IPA", "en-US");
			wsEnIpa.LocalKeyboard = kbdEnIpa;


s e:
            print(f"   ❌ OpenAI analysis failed: {e}")
            return f"Analysis failed: {e}"

    return MockTool(
        name="OpenAIAnalysis",
        description="Analyze data and extract insights using OpenAI API",
        func=secure_openai_analysis
    )

def main():
    """
    Main demonstration of secure LangChain integration with fine-grained control.
    """
    print("🦜 DeepSecure + LangChain Integration Demo (Secure Tools)")
    print("=" * 60)
    print("This demo shows LangChain agents with secure, audited tool access.\n")

    # Environment check
    if not os.getenv("DEEPSECURE_DEEPTRAIL_CONTROL_URL"):
        print("⚠  [WARNING] DEEPSECURE_DEEPTRAIL_CONTROL_URL not set")
        print("🔧 [INFO] Using mock implementation for demonstration\n")

    try:
        # Initialize DeepSecure client
        print("🚀 Step 1: Initializing DeepSecure client...")
        client = deepsecure.Client()
        print("   ✅ DeepSecure client initialized")
        print(f"   🏗  Control Plane: {client._api_url}")

        # Create agent identities for each LangChain role
        print(f"\n🤖 Step 2: Creating agent identities...")

        # Research Agent - has access to web search APIs
        research_agent = client.agent("langchain-researcher", auto_create=True)
        print(f"   ✅ Research Agent: {research_agent.id}")

        # Analysis Agent - has access to AI APIs
        analysis_agent = client.agent("langchain-analyst", auto_create=True)
        print(f"   ✅ Analysis Agent: {analysis_agent.id}")

        # Create secure tools for each agent
        print(f"\n🔧 Step 3: Creating secure tools...")

        tavily_tool = create_secure_tavily_search_tool(client, research_agent)
        openai_tool = create_secure_openai_analysis_tool(client, analysis_agent)

        print("   ✅ All secure tools created")

        # Create LangChain agents with secure tools
        print(f"\n🦜 Step 4: Setting up LangChain agents...")

        researcher = MockAgent(
            name="Research Specialist",
            tools=[tavily_tool]
        )

        analyst = MockAgent(
            name="Data Analyst",
            tools=[openai_tool]
        )

        print("   ✅ LangChain agents configured with secure tools")

        # Demonstrate secure workflow
        print(f"\n🚀 Step 5: Executing secure LangChain workflow...")

        # Research phase
        print(f"\n📊 Research Phase:")
        research_query = "latest AI agent security frameworks and best practices"
        search_results = tavily_tool.func(research_query)

        # Analysis phase
        print(f"\n🔍 Analysis Phase:")
        analysis_results = openai_tool.func(search_results)

        # Demonstrate agent processing
        print(f"\n🦜 LangChain Agent Processing:")
        researcher_output = researcher.run(research_query)
        analyst_output = analyst.run(search_results)

        print(f"   📋 Researcher output: {researcher_output}")
        print(f"   📈 Analyst output: {analyst_output}")

        print(f"\n{'='*60}")
        print("✅ LangChain Secure Integration Demo Complete!")
        print(f"{'='*60}")
        print("🔐 Security benefits demonstrated:")
        print("   • Each agent has unique cryptographic identity")
        print("   • Tools access secrets through DeepSecure with audit logging")
        print("   • Fine-grained permissions per agent role")
        print("   • Complete audit trail of all secret access")
        print("   • Zero hardcoded API keys in the codebase")
        print("   • Secure just-in-time credential fetching")

        print(f"\n🎯 Production benefits:")
        print("   • Secrets are fetched from Control Plane at runtime")
        print("   • Each agent can only access authorized secrets")
        print("   • Comprehensive logging for compliance and debugging")
        print("   • Framework-agnostic security integration")

        print(f"\n🚀 Your LangChain agents are now production-ready with enterprise security!")

    except Exception as e:
        print(f"\n❌ ERROR: {e}")
        print("🔧 Ensure DeepSecure backend is running and configured")

if __name__ == "__main__":
    main()


using KInspector.Core.Constants;
using KInspector.Reports.TaskProcessingAnalysis;
using KInspector.Reports.TaskProcessingAnalysis.Models;

using NUnit.Framework;

namespace KInspector.Tests.Common.Reports
{
    [TestFixture(10)]
    [TestFixture(11)]
    [TestFixture(12)]
    [TestFixture(13)]
    public class TaskProcessingAnalysisTests : AbstractModuleTest<Report, Terms>
    {
        private readonly Report _mockReport;

        public TaskProcessingAnalysisTests(int majorVersion) : base(majorVersion)
        {
            _mockReport = new Report(_mockDatabaseService.Object, _mockModuleMetadataService.Object);
        }

        [Test]
        public async Task Should_ReturnGoodResult_When_ThereAreNoUnprocessedTasks()
        {
            // Arrange
            SetupAllDatabaseQueries();

            // Act
            var results = await _mockReport.GetResults();

            // Assert
            Assert.That(results.Status == ResultsStatus.Good);
        }

        [Test]
        public async Task Should_ReturnWarningResult_When_ThereAreUnprocessedIntegrationBusTasks()
        {
            // Arrange
            SetupAllDatabaseQueries(unprocessedIntegrationBusTasks: 1);

            // Act
            var results = await _mockReport.GetResults();

            // Assert
            AssertThatResultsDataIncludesTaskTypeDetails(results.StringResults, TaskType.IntegrationBusTask);
            Assert.That(results.Status == ResultsStatus.Warning);
        }

        [Test]
        public async Task Should_ReturnWarningResult_When_ThereAreUnprocessedScheduledTasks()
        {
            // Arrange
            SetupAllDatabaseQueries(unprocessedScheduledTasks: 1);

            // Act
            var results = await _mockReport.GetResults();

            // Assert
            AssertThatResultsDataIncludesTaskTypeDetails(results.StringResults, TaskType.ScheduledTask);
            Assert.That(results.Status == ResultsStatus.Warning);
        }

        [Test]
        public async Task Should_ReturnWarningResult_When_ThereAreUnprocessedSearchTasks()
        {
            // Arrange
            SetupAllDatabaseQueries(unprocessedSearchTasks: 1);

            // Act
            var results = await _mockReport.GetResults();

            // Assert
            AssertThatResultsDataIncludesTaskTypeDetails(results.StringResults, TaskType.SearchTask);
            Assert.That(results.Status == ResultsStatus.Warning);
        }

        [Test]
        public async Task Should_ReturnWarningResult_When_ThereAreUnprocessedStagingTasks()
        {


Zero:
        return "v2_0";
      case PebbleHardwarePlatform.pebbleSnowyEvt2:
        return "snowy_evt2";
      case PebbleHardwarePlatform.pebbleSnowyDvt:
        return "snowy_dvt";
      case PebbleHardwarePlatform.pebbleBobbySmiles:
        return "snowy_s3";
      case PebbleHardwarePlatform.pebbleSpaldingEvt:
        return "spalding_evt";
      case PebbleHardwarePlatform.pebbleSpaldingPvt:
        return "spalding";
      case PebbleHardwarePlatform.pebbleSilkEvt:
        return "silk_evt";
      case PebbleHardwarePlatform.pebbleSilk:
        return "silk";
      case PebbleHardwarePlatform.pebbleRobertEvt:
        return "robert_evt";
      default:
        throw Exception("Unknown hardware platform $this");
    }
  }
}

enum WatchType { aplite, basalt, chalk, diorite, emery }

PebbleWatchModel watchModelFromNumber(int? number) {
  switch (number) {
    case 1:
      return PebbleWatchModel.classic_black;
    case 2:
      return PebbleWatchModel.classic_white;
    case 3:
      return PebbleWatchModel.classic_red;
    case 4:
      return PebbleWatchModel.classic_orange;
    case 5:
      return PebbleWatchModel.classic_red;
    case 6:
      return PebbleWatchModel.classic_steel_silver;
    case 7:
      return PebbleWatchModel.classic_steel_gunmetal;
    case 8:
      return PebbleWatchModel.classic_fly_blue;
    case 9:
      return PebbleWatchModel.classic_fresh_green;
    case 10:
      return PebbleWatchModel.classic_hot_pink;
    case 11:
      return PebbleWatchModel.time_white;
    case 12:
      return PebbleWatchModel.time_black;
    case 13:
      return PebbleWatchModel.time_red;
    case 14:
      return PebbleWatchModel.time_steel_silver;
    case 15:
      return PebbleWatchModel.time_steel_gunmetal;
    case 16:
      return PebbleWatchModel.time_steel_gold;
    case 17:
      return PebbleWatchModel.time_round_silver_14;
    case 18:
      return PebbleWatchModel.time_round_black_14;
    case 19:
      return PebbleWatchModel.time_round_silver_20;
    case 20:
      return PebbleWatchModel.time_round_black_20;
    case 21:
      return PebbleWatchModel.time_round_rose_gold_14;
    case 22:
      return PebbleWatchModel.time_round_rainbow_silver_14;
    case 23:
      return PebbleWatchModel.time_round_rainbow_black_20;
    case 24:
      return PebbleWatchModel.pebble_2_se_black;
    case 25:
      return PebbleWatchModel.pebble_2_hr_black;
    case 26:
      return PebbleWatchModel.pebble_2_se_white;
    case 27:
      return PebbleWatchModel.pebble_2_hr_lime;
    case 28:
      return PebbleWatchModel.pebble_2_hr_flame;
    case 29:
      return PebbleWatchModel.pebble_2_hr_white;
    case 30:
      return PebbleWatchModel.pebble_2_hr_aqua;
    case 31:
      return PebbleWatchModel.time_2_gunmetal;
    case 32:
      return PebbleWatchMod


у меня получилась нейтрализующая смесь.","Скорее, возьми смесь и залей ее в бочку, пока не поздно. Торопись!"}, {"Проплывите по реке к основанию дамбы, отыщите бочку с порохом и влейте в нее нейтрализующую смесь, чтобы предотвратить взрыв."}},
[281] = {"Украденные товары", {"Не так давно мурлоки напали на торговый корабль \"Слепая принцесса\". Корабль удалось спасти, но эти подлые твари растащили почти весь груз, в том числе и одну очень ценную вещь, статуэтку Теренаса Менетила. Ее надо вернуть во что бы то ни стало.","Обыщи поселение мурлоков на побережье. Ищи сундуки, ящики, бочки – все, что может быть связано с украденным грузом. Найди статуэтку Менетила и верни ее мне."}, {"Обыщите сундуки, бочки и ящики в поселениях мурлоков на побережье."}},
[282] = {"Наблюдения Сенира", {"Я собирался послать своего ученика к брату Сениру с отчетом, но парень он не слишком надежный, а мне нужен кто-то, на кого действительно можно положиться. Ну, то есть, конечно, если ты не будешь возражать.","Хм-м. Чтобы добраться до Караноса, тебе придется пройти по тоннелю.","Перед тем как зайти в тоннель, заскочи к горному пехотинцу Талосу и поговори с ним – в тоннеле полным-полно троггов.","Сначала тебе нужно вернуться по дороге к Старой Наковальне, а потом направиться на восток. Рядом с тоннелем Талос и стоит – найти его будет несложно."}, {"Поговорите с горным пехотинцем Талосом."}},
[283] = {"Прямая и черная угроза", {"Бочка негромко шипит."}, {"Кажется, нейтрализующая смесь сработала. Вернитесь к главному инженеру Плотине – принесите ему добрые вести."}},
[284] = {"Поиски продолжаются", {"Вы обыскиваете все поселение мурлоков в этом районе, но статуэтки Менетила здесь нет.","Может быть, стоит проверить ближайшие несколько жилищ к северу и северо-востоку отсюда?"}, {"Найдите статуэтку Менетила."}},
[285] = {"Поиски в поселениях мурлоков", {"Вы обыскиваете еще несколько жилищ му


e5             	mov    %rsp,%rbp
 807916b:	48 81 ec 30 00 00 00 	sub    $0x30,%rsp
 8079172:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
 8079176:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)
 807917a:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
 807917e:	48 89 c6             	mov    %rax,%rsi
 8079181:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
 8079185:	48 89 c7             	mov    %rax,%rdi
 8079188:	b8 00 00 00 00       	mov    $0x0,%eax
 807918d:	e8 f1 fd ff ff       	callq  8078f83 <asm_expr_prod>
 8079192:	48 8b 05 8f 4d 01 00 	mov    0x14d8f(%rip),%rax        # 808df28 <_GLOBAL_OFFSET_TABLE_+0x2a8>
 8079199:	8b 00                	mov    (%rax),%eax
 807919b:	89 45 ec             	mov    %eax,-0x14(%rbp)
 807919e:	8b 45 ec             	mov    -0x14(%rbp),%eax
 80791a1:	83 f8 26             	cmp    $0x26,%eax
 80791a4:	0f 84 1d 00 00 00    	je     80791c7 <asm_expr_logic+0x60>
 80791aa:	8b 45 ec             	mov    -0x14(%rbp),%eax
 80791ad:	83 f8 7c             	cmp    $0x7c,%eax
 80791b0:	0f 84 11 00 00 00    	je     80791c7 <asm_expr_logic+0x60>
 80791b6:	8b 45 ec             	mov    -0x14(%rbp),%eax
 80791b9:	83 f8 5e             	cmp    $0x5e,%eax
 80791bc:	0f 84 05 00 00 00    	je     80791c7 <asm_expr_logic+0x60>
 80791c2:	e9 d3 00 00 00       	jmpq   807929a <asm_expr_logic+0x133>
 80791c7:	b8 00 00 00 00       	mov    $0x0,%eax
 80791cc:	e8 f9 f4 fd ff       	callq  80586ca <next>
 80791d1:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
 80791d5:	48 89 c6             	mov    %rax,%rsi
 80791d8:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
 80791dc:	48 89 c7             	mov    %rax,%rdi
 80791df:	b8 00 00 00 00       	mov    $0x0,%eax
 80791e4:	e8 9a fd ff ff       	callq  8078f83 <asm_expr_prod>
 80791e9:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
 80791ed:	48 b9 08 00 00 00 00 	movabs $0x8,%rcx
 80791f4:	00 00 00
 80791f7:	48 01 c8             	add    %rcx,%rax
 80791fa:	48 8b 08             	mov    (%rax),%rcx
 80791fd:	85 c9                	test   %ecx,%ecx
 80791ff:	0f 85 11 00 00 00    	jne    8079216 <asm_expr_logic+0xaf>
 8079205:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
 8079209:	85 c0                	test   %eax,%eax
 807920b:	0f 85 05 00 00 0


cfcf}div.dtsp-searchPane div.dt-container div.dt-scroll,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll{margin:-0.75em 0}div.dtsp-searchPane div.dt-container table.dataTable,div.dtsp-searchPane div.dataTables_wrapper table.dataTable{border-bottom:none !important}div.dtsp-searchPane div.dtsp-topRow{border:1px solid transparent}div.dtsp-searchPane div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]{padding-bottom:5px}div.dtsp-searchPane div.dtsp-topRow div.dtsp-searchCont input.dtsp-search{border:none;padding-left:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered{border:1px solid #f0f0f0;border-radius:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered:hover{background-color:#f0f0f0}div.dtsp-searchPane input.dtsp-paneInputButton,div.dtsp-searchPane button.dtsp-paneButton{height:35px;width:35px;min-width:0;display:inline-block;margin:2px;border:0px solid transparent;background-color:transparent;margin-bottom:0px}div.dtsp-searchPane input.dtsp-paneInputButton:hover,div.dtsp-searchPane button.dtsp-paneButton:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-searchPane button.dtsp-paneButton{vertical-align:middle;opacity:.6}div.dtsp-panesContainer button.dtsp-clearAll,div.dtsp-panesContainer button.dtsp-collapseAll,div.dtsp-panesContainer button.dtsp-showAll{border:1px solid transparent;background-color:transparent}div.dtsp-panesContainer button.dtsp-clearAll:hover,div.dtsp-panesContainer button.dtsp-collapseAll:hover,div.dtsp-panesContainer button.dtsp-showAll:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-panesContainer button.dtsp-disabledButton{cursor:default !important;color:rgb(124, 124, 124)}div.dtsp-panesContainer button.dtsp-disabledButton:hover{background-color:transparent}div.dtsp-panesContainer button.dtsp-disabledButton:focus{outline:none}@media screen and (max-width: 767px){div.dtsp-columns-4,div.dtsp-columns-5,div.dtsp-columns-6{max-width:31% !important;min-width:31% !important}}@media screen and (max-width: 640px){div.dtsp-searchPanes{flex-direction:column !important}div.dtsp-searchPane{max-width:98% !important;min-width:98% !important}}html.dark div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon span{filter:invert(1)}html.dark div.dtsp-topRow button.dtsp-nameButton span{filter:invert(1)}html.dark div.dtsp-topRow button.dtsp-countButton span{filter:invert(1)}html.dark div.dtsp-topRow input.dtsp-paneInputButton,html.dark div.dtsp-topRow button.dtsp-paneButton{color:inherit}html.dark div.dtsp-topRow input.dtsp-paneInputButton:hover,html.dark div.dtsp-topRow button.dtsp-paneButton:hover{background-color:rgb(64, 69, 73)}html.dark div.dtsp-topRow.dtsp-bordered{border:1px solid rgba(255, 255, 255, 0.2);background:rgb(47, 52, 56) !important}html.dark div.dtsp-topRow.dtsp-bordered:hover{border:1px solid rgba(255, 255, 255, 0


CESS;
  int64_t idx = OB_INVALID_INDEX;
  if (OB_FAIL(check_inner_stat())) {
    LOG_WARN("check_inner_stat failed", K(ret));
  } else if (zone.is_empty()) {
    ret = OB_INVALID_ARGUMENT;
    LOG_WARN("invalid argument", K(zone), K(ret));
  } else if (OB_FAIL(find_zone(zone, idx))) {
    LOG_WARN("find_zone failed", K(zone), K(ret));
  } else if (OB_INVALID_INDEX == idx) {
    ret = OB_ERR_UNEXPECTED;
    LOG_WARN("unexpected idx", K(idx), K(ret));
  } else if (ObZoneStatus::ACTIVE == zone_infos_[idx].status_) {
    ret = OB_ZONE_STATUS_NOT_MATCH;
    LOG_WARN("zone is already active, no need to start it again", K(zone), K(ret));
  } else if (ObZoneStatus::UNKNOWN == zone_infos_[idx].status_) {
    ret = OB_ERR_UNEXPECTED;
    LOG_WARN("unknown status", K(ret));
  } else if (OB_FAIL(zone_infos_[idx].status_.update(*proxy_, zone,
      ObZoneStatus::ACTIVE, ObZoneStatus::get_status_str(ObZoneStatus::ACTIVE)))) {
    LOG_WARN("failed to update zone status", K(zone), "status", ObZoneStatus::ACTIVE, K(ret));
  } else {
    //leader_coordinator_->signal();
    LOG_INFO("succeed to start zone", K(zone));
    ROOTSERVICE_EVENT_ADD("zone", "start_zone", K(zone));
  }
  return ret;
}

int ObZoneManagerBase::stop_zone(const ObZone &zone)
{
  int ret = OB_SUCCESS;
  int64_t idx = OB_INVALID_INDEX;
  if (OB_FAIL(check_inner_stat())) {
    LOG_WARN("check_inner_stat failed", K(ret));
  } else if (zone.is_empty()) {
    ret = OB_INVALID_ARGUMENT;
    LOG_WARN("invalid argument", K(zone), K(ret));
  } else if (OB_FAIL(find_zone(zone, idx))) {
    LOG_WARN("find_zone failed", K(zone), K(ret));
  } else if (OB_INVALID_INDEX == idx) {
    ret = OB_ERR_UNEXPECTED;
    LOG_WARN("unexpected idx", K(idx), K(ret));
  } else if (ObZoneStatus::INACTIVE == zone_infos_[idx].status_) {
    // make sure we can retry alter system stop zone until succ
    // so, ret is not OB_ZONE_STATUS_NOT_MATCH, but OB_SUCCESS
    ret = OB_SUCCESS;
    LOG_WARN("zone is inactive, no need to update its status", K(zone), K(ret));
  } else if (ObZoneStatus::UNKNOWN == zone_infos_[idx].status_) {
    ret = OB_ERR_UNEXPECTED;
    LOG_WARN("unknown status", K(ret));
  } else {
    int64_t active_zone_cnt = 0;
    for (int64_t i = 0; i < zone_count_; ++i) {
      if (zone_infos_[i].status_ == ObZoneStatus::ACTIVE) {
        active_zone_cnt ++;
      }
    }
    if (active_zone_cnt <= 1) {
      ret = OB_OP_NOT_ALLOW;
      LOG_WARN("try to stop the last active zone not allowed", K(ret), K(zone));
    } else if (OB_FAIL(zone_infos_[idx].status_.update(*proxy_, zone,
        ObZoneStatus::INACTIVE, ObZoneStatus::get_status_str(ObZoneStatus::INACTIVE)))) {
      LOG_WARN("failed to update zone status", K(zone), "status", ObZoneStatus::INACTIVE, K(ret));
    } else {
      //leader_coordinator_->signal();
      LOG_


   localTx_workmgt_ejb_vehicle_ejb: META-INF/ejb-jar.xml,jar.sun-ejb-jar.xml
        localTx_workmgt_jsp_vehicle:
        localTx_workmgt_jsp_vehicle_web: WEB-INF/web.xml,war.sun-web.xml
        localTx_workmgt_servlet_vehicle:
        localTx_workmgt_servlet_vehicle_web: WEB-INF/web.xml,war.sun-web.xml

        Found Descriptors:
        Client:

        /com/sun/ts/tests/connector/localTx/workmgt/localTx_workmgt_ejb_vehicle_client.xml
        /com/sun/ts/tests/common/vehicle/ejb/ejb_vehicle_client.xml
        Ejb:

        /com/sun/ts/tests/connector/localTx/workmgt/localTx_workmgt_ejb_vehicle_ejb.xml
        /com/sun/ts/tests/connector/localTx/workmgt/ejb_vehicle_ejb.xml
        /com/sun/ts/tests/common/vehicle/ejb/ejb_vehicle_ejb.jar.sun-ejb-jar.xml
        /com/sun/ts/tests/common/vehicle/ejb/ejb_vehicle_ejb.xml
        Rar:

        /com/sun/ts/tests/common/connector/whitebox/mdcomplete/ra-md-complete.xml
        Ear:

        */
        @TargetsContainer("tck-appclient")
        @OverProtocol("appclient")
        @Deployment(name = VEHICLE_ARCHIVE, order = 2)
        public static EnterpriseArchive createDeploymentVehicle(@ArquillianResource TestArchiveProcessor archiveProcessor) {
        // Client
            // the jar with the correct archive name
            JavaArchive localTx_workmgt_ejb_vehicle_client = ShrinkWrap.create(JavaArchive.class, "localTx_workmgt_ejb_vehicle_client.jar");
            // The class files
            localTx_workmgt_ejb_vehicle_client.addClasses(
            com.sun.ts.tests.connector.localTx.workmgt.workmgtClient1.class,
            com.sun.ts.tests.common.vehicle.VehicleRunnable.class,
            com.sun.ts.tests.common.vehicle.VehicleRunnerFactory.class,
            com.sun.ts.tests.common.vehicle.ejb.EJBVehicleRemote.class,
            Fault.class,
            com.sun.ts.tests.common.vehicle.EmptyVehicleRunner.class,
            com.sun.ts.tests.common.vehicle.ejb.EJBVehicleRunner.class,
            com.sun.ts.tests.connector.util.DBSupport.class,
            EETest.class,
            ServiceEETest.class,
            SetupException.class,
            com.sun.ts.tests.common.vehicle.VehicleClient.class
            );
            // The application-client.xml descriptor
            URL resURL = workmgtClient1.class.getResource("localTx_workmgt_ejb_vehicle_client.xml");
            if(resURL != null) {
              localTx_workmgt_ejb_vehicle_client.addAsManifestResource(resURL, "application-client.xml");
            }
            // The sun-application-client.xml file need to be added or should this be in in the vendor Arquillian extension?
            resURL = workmgtClient1.class.getResource("localTx_workmgt_ejb_vehicle_client.jar.sun-application-client.xml");
            if(resURL != null) {
              localTx_workmgt_ejb_vehicle_client.addAsManifestResource(resURL, "sun-application-client.xml");
            }
            localTx_workmgt_ejb_vehicle_client.addAsManifestResource(new StringAsset("Main-Class: com.sun.ts.tests.common.vehicle.VehicleClient\n"), "MANIFEST.MF");
            // Call the archive processor
            archive


orn to Run"

  [[albums.songs]]
  name = "Jungleland"

  [[albums.songs]]
  name = "Meeting Across the River"

[[albums]]
name = "Born in the USA"

  [[albums.songs]]
  name = "Glory Days"

  [[albums.songs]]
  name = "Dancing in the Dark"]=]
		local sol = {
			albums = {
				{
					name = "Born to Run",
					songs = {
						{name = "Jungleland"},
						{name = "Meeting Across the River"}
					}
				},
				{
					name = "Born in the USA",
					songs = {
						{name = "Glory Days"},
						{name = "Dancing in the Dark"}
					}
				}
			}
		}
		assert.same(sol, obj)
	end)

	it("one", function()
		local obj = TOML.parse[=[
[[people]]
first_name = "Bruce"
last_name = "Springsteen"]=]
		local sol = {
			people = {
				{first_name = "Bruce", last_name = "Springsteen"}
			}
		}
		assert.same(sol, obj)
	end)
end)


b>and | or

	unop ::= ‘-’ | not | ‘#’ | ‘~’

最后更新时间：
2015年1月18日19:54

{{'label.anchor.organization' | translate}}

{{ 'label.heading.cashmgmt.cashierName' | translate }}

{{cashier.staffName}}

{{ 'label.heading.cashmgmt.cashierName' | translate }} : {{cashier.staffName}}

                    {{'label.button.edit' | translate }}

                    {{ 'label.heading.cashmgmt.tellerName' | translate }}
                    {{cashier.tellerName}}

                    {{ 'label.input.teller.description' | translate }}
                    {{cashier.description}}

                    {{ 'label.input.teller.startDate' | translate }}
                    {{cashier.startDate | DateFormat }}

                    {{ 'label.input.teller.endDate' | translate }}
                    {{cashier.endDate | DateFormat }}

                    {{ 'label.input.teller.cashier.fullDay' | translate }}
                    {{cashier.isFullDay}}

                    {{ 'label.input.teller.cashier.startTime' | translate }}
                    {{cashier.startTime}}

                    {{ 'label.input.teller.cashier.endTime' | translate }}
                    {{cashier.endTime}}

{{'label.anchor.organization' | translate}}

{{'label.anchor.tellers' | translate}}

{{'label.anchor.cashiers' | translate}}

        {{'label.heading.cashmgmt.officeName' | translate}} : {{cashiersForTeller.officeName}} |
        {{'label.heading.cashmgmt.tellerName' | translate }} : {{cashiersForTeller.tellerName}}

            <input ng-autofocus="true" ng-model="filterText" type="text" class="form


href=#ArialMT-63 x=716.748047 /><use xlink:href=#ArialMT-6f x=766.748047 /><use xlink:href=#ArialMT-75 x=822.363281 /><use xlink:href=#ArialMT-6e x=877.978516 /><use xlink:href=#ArialMT-74 x=933.59375 /></g></g></g><g id=xtick_18><g id=text_18><g style="fill: #262626" transform="translate(1449.717768 202.642581)rotate(-45)scale(0.192 -0.192)"><use xlink:href=#ArialMT-41 /><use xlink:href=#ArialMT-63 x=66.699219 /><use xlink:href=#ArialMT-63 x=116.699219 /><use xlink:href=#ArialMT-6f x=166.699219 /><use xlink:href=#ArialMT-75 x=222.314453 /><use xlink:href=#ArialMT-6e x=277.929688 /><use xlink:href=#ArialMT-74 x=333.544922 /><use xlink:href=#ArialMT-20 x=361.328125 /><use xlink:href=#ArialMT-61 x=389.111328 /><use xlink:href=#ArialMT-67 x=444.726562 /><use xlink:href=#ArialMT-65 x=500.341797 /><use xlink:href=#ArialMT-20 x=555.957031 /><use xlink:href=#ArialMT-69 x=583.740234 /><use xlink:href=#ArialMT-6e x=605.957031 /><use xlink:href=#ArialMT-20 x=661.572266 /><use xlink:href=#ArialMT-6d x=689.355469 /><use xlink:href=#ArialMT-6f x=772.65625 /><use xlink:href=#ArialMT-6e x=828.271484 /><use xlink:href=#ArialMT-74 x=883.886719 /><use xlink:href=#ArialMT-68 x=911.669922 /><use xlink:href=#ArialMT-73 x=967.285156 /></g></g></g><g id=xtick_19><g id=text_19><g style="fill: #262626" transform="translate(1521.717768 202.642581)rotate(-45)scale(0.192 -0.192)"><use xlink:href=#ArialMT-49 /><use xlink:href=#ArialMT-73 x=27.783203 /><use xlink:href=#ArialMT-20 x=77.783203 /><use xlink:href=#ArialMT-68 x=105.566406 /><use xlink:href=#ArialMT-69 x=161.181641 /><use xlink:href=#ArialMT-67 x=183.398438 /><use xlink:href=#ArialMT-68 x=239.013672 /><use xlink:href=#ArialMT-20 x=294.628906 /><use xlink:href=#ArialMT-72 x=322.412109 /><use xlink:href=#ArialMT-69 x=355.712891 /><use xlink:href=#ArialMT-73 x=377.929688 /><use xlink:href=#ArialMT-6b x=427.929688 /></g></g></g><g id=xtick_20><g id=text_20><g style="fill: #262626" transform="translate(1593.717768 202.801681)rotate(-45)scale(0.192 -0.192)"><defs><path id=ArialMT-4a transform=scale(0.015625) d="M 184 1300
L 731 1375
Q 753 850 928 656
Q 1103 463 1413 463
Q 1641 463 1806 567
Q 1972 672 2034 851
Q 2097 1031 2097 1425
L 2097 4581
L 2703 4581
L 2703 1459
Q 2703 884 2564 568
Q


 in this way until a single partition remains."
    for _ in range(numitems - 1):
        # "-- select two k-tuples A and B in which the difference between the maximum and minimum sum is largest":
        bins1 = bins_heap.pop()
        bins2 = bins_heap.pop()

        # "-- combine them in reverse order of sizes":
        for i in range(numbins):
            binner.combine_bins(bins1, numbins-i-1, bins2, i)
        bins_heap.push(bins1)

    return bins_heap.top()

if __name__ == '__main__':
    import doctest, sys
    (failures, tests) = doctest.testmod(report=True, optionflags=doctest.FAIL_FAST)
    print("{} failures, {} tests".format(failures, tests))
    if failures>0:
        sys.exit()

    # DEMO
    logger.setLevel(logging.DEBUG)
    logger.addHandler(logging.StreamHandler())
    from prtpy import BinnerKeepingContents, BinnerKeepingSums
    kk(BinnerKeepingSums(), 4, [1,2,3,3,5,9,9])
    kk(BinnerKeepingContents(), 4, [1,2,3,3,5,9,9])


_code += textBuffer;
	}
#endif
    else if (cmd == ago_kernel_cmd_query_target_support) {
        node->target_support_flags = 0
                    | AGO_KERNEL_FLAG_DEVICE_CPU
#if ENABLE_OPENCL
                    | AGO_KERNEL_FLAG_DEVICE_GPU | AGO_KERNEL_FLAG_GPU_INTEG_R2R
#endif
                    ;
        status = VX_SUCCESS;
    }
	else if (cmd == ago_kernel_cmd_valid_rect_callback) {
		AgoData * out = node->paramList[0];
		AgoData * inp = node->paramList[1];
		out->u.img.rect_valid.start_x = inp->u.img.rect_valid.start_x;
		out->u.img.rect_valid.start_y = inp->u.img.rect_valid.start_y;
		out->u.img.rect_valid.end_x = inp->u.img.rect_valid.end_x;
		out->u.img.rect_valid.end_y = inp->u.img.rect_valid.end_y;
	}
	return status;
}

int agoKernel_Add_U8_U8U8_Wrap(AgoNode * node, AgoKernelCommand cmd)
{
	vx_status status = AGO_ERROR_KERNEL_NOT_IMPLEMENTED;
	if (cmd == ago_kernel_cmd_execute) {
		status = VX_SUCCESS;
		AgoData * oImg = node->paramList[0];
		AgoData * iImg0 = node->paramList[1];
		AgoData * iImg1 = node->paramList[2];
		if (HafCpu_Add_U8_U8U8_Wrap(oImg->u.img.width, oImg->u.img.height, oImg->buffer, oImg->u.img.stride_in_bytes, iImg0->buffer, iImg0->u.img.stride_in_bytes, iImg1->buffer, iImg1->u.img.stride_in_bytes)) {
			status = VX_FAILURE;
		}
	}
	else if (cmd == ago_kernel_cmd_validate) {
		status = ValidateArguments_Img_1OUT_2IN(node, VX_DF_IMAGE_U8, VX_DF_IMAGE_U8, VX_DF_IMAGE_U8);
	}
	else if (cmd == ago_kernel_cmd_initialize || cmd == ago_kernel_cmd_shutdown) {
		status = VX_SUCCESS;
	}
#if ENABLE_OPENCL
	else if (cmd == ago_kernel_cmd_opencl_codegen) {
		status = VX_SUCCESS;
		node->opencl_type = NODE_OPENCL_TYPE_REG2REG;
		char textBuffer[2048];
		sprintf(textBuffer, OPENCL_FORMAT(
			"void %s (U8x8 * p0, U8x8 p1, U8x8 p2)\n"
			"{\n"
			"  U8x8 r;\n"
			"  r.s0  = (p1.s0 +  p2.s0              ) & 0x000000ff;\n"
			"  r.s0 |= (p1.s0 + (p2.s0 & 0x0000ff00)) & 0x0000ff00;\n"
			"  r.s0 |= (p1.s0 + (p2.s0 & 0x00ff0000)) & 0x00ff0000;\n"
			"  r.s0 |= (p1.s0 + (p2.s0 & 0xff000000)) & 0xff000000;\n"
			"  r.s1  = (p1.s1 +  p2.s1              ) & 0x000000ff;\n"
			"  r.s1 |= (p1.s1 + (p2.s1 & 0x0000ff00)) & 0x0000ff00;\n"
			"  r.s1 |= (p1.s1 + (p2.s1


messages: [{ role: 'user', content: 'What is the Eiffel tower?' }],
  },
  {
    apiKey: '<openai api key>',
  }
);

// Example stdout output:
//
// The Eiffel Tower is a renowned wrought-iron landmark located in Paris, France, known globally as a symbol of romance and elegance.
//
for await (const token of tokenStream) {
  process.stdout.write(token);
}

process.stdout.write('\n');
```

## `useChat` hook for dead simple UI integration

We've made building chat and completion UIs trivial. It doesn't get any easier than this 🚀

```ts
///////////////////
// On the server //
///////////////////
import { OpenAIChat } from '@axflow/models/openai/chat';
import { StreamingJsonResponse, type MessageType } from '@axflow/models/shared';

export const runtime = 'edge';

export async function POST(request: Request) {
  const { messages } = await request.json();

  const stream = await OpenAIChat.streamTokens(
    {
      model: 'gpt-4',
      messages: messages.map((msg: MessageType) => ({ role: msg.role, content: msg.content })),
    },
    {
      apiKey: process.env.OPENAI_API_KEY!,
    }
  );

  return new StreamingJsonResponse(stream);
}

///////////////////
// On the client //
///////////////////
import { useChat } from '@axflow/models/react';

function ChatComponent() {
  const { input, messages, onChange, onSubmit } = useChat();

  return (
    <>
      <Messages messages={messages} />
      <Form input={input} onChange={onChange} onSubmit={onSubmit} />
    </>
  );
}
```

## Next.js edge proxy example

Sometimes you just want to create a proxy to the underlying LLM API. In this example, the server intercepts the request on the edge, adds the proper API key, and forwards the byte stream back to the client.

_Note this pattern works exactly the same with our other models that support streaming, like Cohere and Anthropic._

```ts
import { NextRequest, NextResponse } from 'next/server';
import { OpenAIChat } from '@axflow/models/openai/chat';

export const runtime = 'edge';

// POST /api/openai/chat
export async function POST(request: NextRequest) {
  const chatRequest = await request.json();

  // We'll stream the bytes from OpenAI directly to the client
  const stream = await OpenAIChat.streamBytes(chatRequest, {
    apiKey: process.env.OPENAI_API_KEY!,
  });

  return new NextResponse(stream);
}
```

On the client, we can use `OpenAIChat.stream` with a custom `apiUrl` in place of the `apiKey` that points to our Next.js edge route.

_DO NOT expose api keys to your frontend._

```ts
import { OpenAIChat } from '@axflow/models/openai/chat';
import { StreamToIterable } from '@axflow/models/shared';

const stream = await OpenAIChat.stream(
  {
    model: 'gpt-4',
    messages: [{ role: 'user', content: 'What is the Eiffel tower?' }],
  },
  {
    apiUrl: '/api/openai/chat',
  }
);

for await (const chunk of StreamToIterable(stream)) {
  console.log(chunk.choices[0].delta.content);
}
```

## Express.js example

Uses express + React hook on frontend.

```ts
///////////////////
// On the server //
///////////////////
const express = require('express');
const { OpenAIChat } = require('@axflow/models/openai/chat');
const { streamJsonResponse } = require('@axflow/models/node');

const app = express();
app.use(express.json());

app.post('/api/chat', async (req, res) => {
  const { messages } = req.body;

  const stream = await OpenAIChat.streamTokens(
    {
      model: 'gpt-3.5-turbo',


---@meta

---@class ccui.RichElementText :ccui.RichElement
local RichElementText = {}
ccui.RichElementText = RichElementText

---* brief Initialize a RichElementText with various arguments.

---* param tag A integer tag value.

---* param color A color in Color3B.

---* param opacity A opacity in GLubyte.

---* param text Content string.

---* param fontName Content font name.

---* param fontSize Content font size.

---* param flags italics, bold, underline, strikethrough, url, outline, shadow or glow

---* param url uniform resource locator

---* param outlineColor the color of the outline

---* param outlineSize the outline effect size value

---* param shadowColor the shadow effect color value

---* param shadowOffset shadow effect offset value

---* param shadowBlurRadius the shadow effect blur radius

---* param glowColor glow color

---* return True if initialize success, false otherwise.
---@param tag int
---@param color color3b_table
---@param opacity unsigned_char
---@param text string
---@param fontName string
---@param fontSize float
---@param flags unsigned_int
---@param url string
---@param outlineColor color3b_table
---@param outlineSize int
---@param shadowColor color3b_table
---@param shadowOffset size_table
---@param shadowBlurRadius int
---@param glowColor color3b_table
---@return boolean
function RichElementText:init(
	tag,
	color,
	opacity,
	text,
	fontName,
	fontSize,
	flags,
	url,
	outlineColor,
	outlineSize,
	shadowColor,
	shadowOffset,
	shadowBlurRadius,
	glowC


.0975301 C45.3051579,19.8484488 44.0742167,19.8491847 43.2983488,19.0991931 Z" id="Path" fill="url(#linearGradient-3)"></path>
        </g>
    </g>
</svg>`,EY=Object.freeze(Object.defineProperty({__proto__:null,default:OY},Symbol.toStringTag,{value:"Module"})),PY=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 391.31 560.11"><defs><style>.avatar-1-cls-1{fill:#f9cdb7;}.avatar-1-cls-2{fill:#e2a78d;}.avatar-1-cls-3{fill:#213346;}.avatar-1-cls-4{fill:#bfe1ee;}.avatar-1-cls-5{fill:#dfe7ea;}.avatar-1-cls-6{fill:#b46078;}.avatar-1-cls-7{fill:#96426e;}.avatar-1-cls-8{fill:#fff;}.avatar-1-cls-9{fill:#fefdf5;}.avatar-1-avatar-1-cls-10{fill:#f4eae1;}.avatar-1-avatar-1-cls-11{fill:#f9637c;}.avatar-1-avatar-1-cls-12{fill:#ba4264;}.avatar-1-avatar-1-cls-13{fill:#b13a59;}</style></defs><title>Asset 15</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><circle class="avatar-1-cls-1" cx="45.9" cy="303.35" r="41.4"/><path class="avatar-1-cls-2" d="M78.13,278.08a41.39,41.39,0,0,0-57.27,57.27,41.4,41.4,0,1,1,57.27-57.27Z"/><path class="avatar-1-cls-3" d="M45.9,347.82a45.9,45.9,0,1,1,45.89-45.9A46,46,0,0,1,45.9,347.82Zm0-82.79a36.9,36.9,0,1,0,36.89,36.89A36.94,36.94,0,0,0,45.9,265Z"/><circle class="avatar-1-cls-1" cx="345.41" cy="303.35" r="41.4"/><path class="avatar-1-cls-3" d="M345.42,347.82a45.9,45.9,0,1,1,45.89-45.9A46,46,0,0,1,345.42,347.82Zm0-82.79a36.9,36.9,0,1,0,36.89,36.89A36.94,36.94,0,0,0,345.42,265Z"/><path class="avatar-1-cls-1" d="M191.57,88.78h2.79a146.1,146.1,0,0,1,146.1,146.1v95A147.5,147.5,0,0,1,193,477.43h0a147.5,147.5,0,0,1-147.5-147.5v-95a146.1,146.1,0,0,1,146.1-146.1Z"/><path class="avatar-1-cls-2" d="M211.7,474.46a147.74,147.74,0,0,1-20.29,1.41c-81.14,0-147.5-66.37-147.5-147.5v-97c0-79.3,64.87-144.18,144.17-144.18h6.65a142.14,142.14,0,0,1,17,1C147.26,95.87,91.42,154.6,81.17,220.06a509,509,0,0,1-13.33,61.86L54.49,328.37C54.49,402


�━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: $_instanceId
Total updates: $_updateCount
Lifespan: ${lifespan}ms
ReactiveNotifier cleanup: Requested
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
''', level: 10);
      return true;
    }());

    // 5. Call ChangeNotifier dispose to remove all Flutter listeners
    super.dispose();
  }

  /// Notifies any containing ReactiveNotifier that this ViewModel is being disposed
  /// This allows ReactiveNotifier to clean itself from the global registry
  void _notifyReactiveNotifierDisposal() {
    // Find any ReactiveNotifier that contains this ViewModel instance
    // and request cleanup from global registry
    try {
      final instances = ReactiveNotifier.getInstances;
      for (final instance in instances) {
        if (instance.notifier == this) {
          // Found the ReactiveNotifier containing this ViewModel
          // Use cleanCurrentNotifier with forceCleanup since ViewModel is disposing
          instance.cleanCurrentNotifier(forceCleanup: true);
          break;
        }
      }
    } catch (e) {
      assert(() {
        log('''
⚠ Warning: Could not notify ReactiveNotifier of ViewModel disposal
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ViewModel: ${T.toString()}
ID: $_instanceId
Error: $e

This may result in the ReactiveNotifier remaining in global registry.
Consider calling ReactiveNotifier.cleanup() manually when appropriate.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
''', level: 50);
        return true;
      }());
    }
  }

  /// Gets the creation location for debugging
  String _getCreationLocation() {
    try {
      final stackTrace = StackTrace.current.toString().split('\n');
      final viewModelLine = stackTrace.firstWhere(
        (line) =>
            !line.contains('_getCreationLocation') &&
            !line.contains('ViewModel'),
        orElse: () => 'Unknown location',
      );
      return viewModelLine.trim();
    } catch (e) {
      return 'Error getting location: $e';
    }
  }

  @override
  String toString() {
    return 'ViewModel<$T>(id: $_instanceId, initialized: $_initialized, disposed: $_disposed, updates: $_updateCount)';
  }

  @override
  bool get hasListeners => super.hasListeners;

  /// [loadNotifier]
  /// Ensures the ViewModel's availability by confirming initialization has occurred.
  ///
  /// This method should be called when explicit access to the ViewModel is required
  /// outside its normal lifecycle. Typical situations include:
  ///
  /// - At application startup to pre-load critical ViewModels
  /// - In code paths where it's not evident if the ViewModel is already initialized
  /// - When data availability needs to be guaranteed before executing an operation
  ///
  /// It is not necessary to call this method in the normal lifecycle, as the ViewModel's
  /


// SPDX-License-Identifier: GPL-3.0-only
/*
 *  Prism Launcher - Minecraft Launcher
 *  Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, version 3.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 *
 * This file incorporates work covered by the following copyright and
 * permission notice:
 *
 *      Copyright 2013-2021 MultiMC Contributors
 *
 *      Licensed under the Apache License, Version 2.0 (the "License");
 *      you may not use this file except in compliance with the License.
 *      You may obtain a copy of the License at
 *
 *          http://www.apache.org/licenses/LICENSE-2.0
 *
 *      Unless required by applicable law or agreed to in writing, software
 *      distributed under the License is distributed on an "AS IS" BASIS,
 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *      See the License for the specific language governing permissions and
 *      limitations under the License.
 */

#pragma once

#include <QWidget>

#include <QObjectPtr.h>
#include <QMenu>
#include "Application.h"
#include "BaseInstance.h"
#include "JavaCommon.h"
#include "java/JavaChecker.h"
#include "ui/pages/BasePage.h"

class JavaChecker;
namespace Ui {
class InstanceSettingsPage;
}

class InstanceSettingsPage : public QWidget, public BasePage {
    Q_OBJECT

   public:
    explicit InstanceSettingsPage(BaseInstance* inst, QWidget* parent = 0);
    virtual ~InstanceSettingsPage();
    virtual QString displayName() const override { return tr("Settings"); }
    virtual QIcon icon() const override { return APPLICATION->getThemedIcon("instance-settings"); }
    virtual QString id() const override { return "settings"; }
    virtual bool apply() override;
    virtual QString helpPage() const override { return "Instance-settings"; }
    void retranslate() override;

    void updateThresholds();

   private slots:
    void on_javaDetectBtn_clicked();
    void on_javaTestBtn_clicked();
    void on_javaBrowseBtn_clicked();
    void on_javaDownloadBtn_clicked();
    void on_maxMemSpinBox_valueChanged(int i);
    void on_serverJoinAddressButton_toggled(bool checked);
    void on_worldJoinButton_toggled(bool checked);

    void onUseNativeGLFWChanged(bool checked);
    void onUseNativeOpenALChanged(bool checked);

    void applySettings();
    void loadSettings();

    void checkerFinished();

    void globalSettingsButtonClicked(bool checked);

    void updateAccountsMenu();
    QIcon getFaceForAccount(MinecraftAccountPtr account);
    void changeInstanceAccount(int index);

   private:
    Ui::InstanceSettingsPage* ui;
    BaseInstance* m_instance;
    SettingsObjectPtr m_settings;
    unique_qobject_ptr<JavaCommon::TestCheck> checker;
    bool m_world_quickplay_supported;
};


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

#pragma once

#include "vireo/base_h.h"
#include "vireo/common/data.h"
#include "vireo/common/util.h"
#include "vireo/internal/decode/types.h"

namespace vireo {
namespace internal {
namespace decode {

template <typename NalType> struct _ANNEXB;

template <typename NalType>
class ANNEXB final : public domain::Interval<ANNEXB<NalType>, NalInfo<NalType>, uint32_t> {
  std::shared_ptr<_ANNEXB<NalType>> _this = nullptr;
public:
  ANNEXB(const common::Data32& data);
  DISALLOW_COPY_AND_ASSIGN(ANNEXB);
  auto operator()(uint32_t index) const -> NalInfo<NalType>;
  static auto GetNalType(const common::Data32& data) -> NalType;
  static auto StartCodePrefixSize(const common::Data32& data) -> uint8_t {
    if (data.count() >= 4 && data(data.a()) == 0x00 && data(data.a() + 1) == 0x00 && data(data.a() + 2) == 0x00 && data(data.a() + 3) == 0x01) {  // 4-byte start code prefix
      return 4;
    } else if (data.count() >= 3 && data(data.a()) == 0x00 && data(data.a() + 1) == 0x00 && data(data.a() + 2) == 0x01) {  // 3-byte start code prefix
      return 3;
    } else {
      return 0;
    }
  };
};

auto annexb_to_avcc(common::Data32& data, uint8_t nalu_length_size) -> void;

}}}


: any): boolean {
//   const typeDefineObjectArray = [];   // 如果存在子对象的时候，要进行深度校正
//   const targetObjectArray = [];
//   const keys = Object.keys(typeDefine);
//
//   for (const item of keys) {
//     console.log(item)
//     if (isUndef(target[item])) {
//       // 当目标检测的对象中没有这个舒心的时候，那么就要进行报错
//       errorLog('接口参数不符合定义的要求');
//       errorLog('规定的参数为: ' + typeDefine.toString());
//       errorLog('你的参数为: ' + target.toString());
//       return false;
//     }
//
//     if (isString(typeDefine[item])) {
//       const type = typeDefine[item];
//       if (!checkType(target[item], type)) {
//         errorLog('接口参数类型不符合定义的要求');
//         errorLog('规定的参数为: ' + type);
//         errorLog('你的参数为: ' + typeof target[item]);
//         return false;
//       }
//     } else if (isPlainObject(typeDefine[item])) {
//       // 纯对象的情况下进行处理
//       typeDefineObjectArray.push(typeDefine[item]);
//       targetObjectArray.push(target[item]);
//     } else if (isArray(typeDefine[item])) {
//       // 如果是一个数组，那么就要对数组的第一个定义的元素进行判断识别
//     }
//   }
//
//   for (let i = 0; i < typeDefineObjectArray.length; i++) {
//     if (!checkAllType(typeDefineObjectArray[i], targetObjectArray[i])) {
//       console.log("出错了")
//       return false;
//     }
//   }
//
//   return true;
// }
//
// function checkType(value: any, type: string) {
//   switch (type) {
//     case 'string': {
//       return isString(value);
//     }
//     case 'number': {
//       return isNumber(value);
//     }
//     case 'boolean': {
//       return isBoolean(value);
//     }
//   }
//   return false;
// }
//
// // export function InterfaceParam(typeDefine: any): any {
// //   if (process.env.NODE_ENV === 'production') {
// //     return ;
// //   }
// //
// //   if (!isPlainObject(typeDefine)) {
// //     errorLog('类型定义一定是一个纯对象');
// //     return ;
// //   }
// //
// //   const keys = Object.keys(typeDefine);
// //
// //   // 遍历所有属性，进行校正
// //   for (const item of keys) {
// //     if (!isString(typeDefine[item]) && !isPlainObject(typeDefine[item])) {
// //       errorLog('定义接口类型的时候使用了不是基本数据类型之外的类型,以下是出错的类型定义: ');
// //       errorLog(typeDefine[item]);
// //       return ;
// //     } else if (isString(typeDefine[item])) {
// //       typeDefine[item] = typeDefine[item].toLowerCase();
// //     }
// //   }
// //
// //   return (target: any, name: string) => {
// //     // @ts-ignore
// //     const funcRowCode = target[name].toString();
// //
// //     // 得到这个函数体的内容
// //     const funcBody = funcRowCode.substring(funcRowCode.indexOf('{') + 1, funcRowCode.lastIndexOf('}'));
// //
// //     // 将参数名一个一个提取出来
// //     const params: string[] = funcRowCode.substring(funcRowCode.indexOf('(') + 1, funcRowCode.indexOf(')')).split(',');
// //
// //     // 去掉参数两边的


64x2	16(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	32(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	48(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	64(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	80(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	96(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	112(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	128(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	144(%rdi),%zmm15
	vaesenc	%zmm15,%zmm0,%zmm0
	vaesenc	%zmm15,%zmm3,%zmm3
	vaesenc	%zmm15,%zmm4,%zmm4
	vaesenc	%ymm15,%ymm5,%ymm5
	vbroadcastf64x2	160(%rdi),%zmm15
	vaesenclast	%zmm15,%zmm0,%zmm0
	vaesenclast	%zmm15,%zmm3,%zmm3
	vaesenclast	%zmm15,%zmm4,%zmm4
	vaesenclast	%ymm15,%ymm5,%ymm5
	vpxorq	%zmm6,%zmm0,%zmm0
	vpxorq	%zmm7,%zmm3,%zmm3
	vpxorq	%zmm10,%zmm4,%zmm4
	vpxorq	%ymm11,%ymm5,%


_func
            call_4234:
/*0x4234*/      push {r4, r5, r6, lr}
/*0x4236*/      movs r2, #1
/*0x4238*/      ldr r5, [pc, #0x38] /* data_4274 */
/*0x423a*/      lsls r4, r2, #0xa
/*0x423c*/      mov r1, r4
/*0x423e*/      mov r0, r5
/*0x4240*/      bl call_4538
/*0x4244*/      movs r2, #2
/*0x4246*/      mov r1, r4
/*0x4248*/      mov r0, r5
/*0x424a*/      bl call_4578
/*0x424e*/      movs r2, #5
/*0x4250*/      movs r1, #7
/*0x4252*/      movs r0, #1
/*0x4254*/      bl call_379c
/*0x4258*/      movs r2, #5
/*0x425a*/      movs r1, #8
/*0x425c*/      movs r0, #1
/*0x425e*/      bl call_379c
/*0x4262*/      movs r2, #5
/*0x4264*/      movs r1, #9
/*0x4266*/      movs r0, #1
/*0x4268*/      bl call_379c
/*0x426c*/      pop.w {r4, r5, r6, lr}
/*0x4270*/      b.w jump_444c

            data_4274:
/*0x4274*/  .word 0x400b2000

            .thumb_func
            call_4278:
/*0x4278*/      push.w {r3, r4, r5, r6, r7, r8, sb, lr}
/*0x427c*/      mov r7, r2
/*0x427e*/      mov r4, r1
/*0x4280*/      mov r8, r0
/*0x4282*/      bl call_44ec
/*0x4286*/      ldr r6, [pc, #0x38] /* data_42c0 */
/*0x4288*/      mov.w r5, #0x400
/*0x428c*/      str r5, [r6, #0x28]
/*0x428e*/      movs r0, #2
/*0x4290*/      strb.w r0, [sp]
/*0x4294*/      lsrs r0, r4, #0x10
/*0x4296*/      strb.w r0, [sp, #1]
/*0x429a*/      lsrs r0, r4, #8
/*0x429c*/      strb.w r0, [sp, #2]
/*0x42a0*/      strb.w r4, [sp, #3]
/*0x42a4*/      movs r2, #4
/*0x42a6*/      movs r1, #0
/*0x42a8*/      mov r0, sp
/*0x42aa*/      bl call_43b4
/*0x42ae*/      mov r2, r7
/*0x42b0*/      movs r1, #0
/*0x42b2*/      mov r0, r8
/*0x42b4*/      bl call_43b4
/*0x42b8*/      str r5, [r6, #0x24]
/*0x42ba*/      pop.w {r3, r4, r5, r6, r7, r8, sb, pc}

/*0x42be*/  .byte 0x00
/*0x42bf*/  .byte 0x00

            data_42c0:
/*0x42c0*/  .word 0x400b2000

            .thumb_func
            call_42c4:
/*0x42c4*/      push {r3, r4, r5, r6, r7, lr}
/*0


/*
 * Virtio Support
 *
 * Copyright IBM, Corp. 2007-2008
 *
 * Authors:
 *  Anthony Liguori   <aliguori@us.ibm.com>
 *  Rusty Russell     <rusty@rustcorp.com.au>
 *
 * This work is licensed under the terms of the GNU GPL, version 2.  See
 * the COPYING file in the top-level directory.
 *
 */

#ifndef _QEMU_VIRTIO_BALLOON_H
#define _QEMU_VIRTIO_BALLOON_H

#include "hw/virtio/virtio.h"
#include "hw/pci/pci.h"

#define TYPE_VIRTIO_BALLOON "virtio-balloon-device"
#define VIRTIO_BALLOON(obj) \
        OBJECT_CHECK(VirtIOBalloon, (obj), TYPE_VIRTIO_BALLOON)

/* from Linux's linux/virtio_balloon.h */

/* The ID for virtio_balloon */
#define VIRTIO_ID_BALLOON 5

/* The feature bitmap for virtio balloon */
#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */
#define VIRTIO_BALLOON_F_STATS_VQ 1       /* Memory stats virtqueue */

/* Size of a PFN in the balloon interface. */
#define VIRTIO_BALLOON_PFN_SHIFT 12

struct virtio_balloon_config
{
    /* Number of pages host wants Guest to give up. */
    uint32_t num_pages;
    /* Number of pages we've actually got in balloon. */
    uint32_t actual;
};

/* Memory Statistics */
#define VIRTIO_BALLOON_S_SWAP_IN  0   /* Amount of memory swapped in */
#define VIRTIO_BALLOON_S_SWAP_OUT 1   /* Amount of memory swapped out */
#define VIRTIO_BALLOON_S_MAJFLT   2   /* Number of major faults */
#define VIRTIO_BALLOON_S_MINFLT   3   /* Number of minor faults */
#define VIRTIO_BALLOON_S_MEMFREE  4   /* Total amount of free memory */
#define VIRTIO_BALLOON_S_MEMTOT   5   /* Total amount of memory */
#define VIRTIO_BALLOON_S_NR       6

typedef struct VirtIOBalloonStat {
    uint16_t tag;
    uint64_t val;
} QEMU_PACKED VirtIOBalloonStat;

typedef struct VirtIOBalloon {
    VirtIODevice parent_obj;
    VirtQueue *ivq, *dvq, *svq;
    uint32_t num_pages;
    uint32_t actual;
    uint64_t stats[VIRTIO_BALLOON_S_NR];
    VirtQueueElement stats_vq_elem;
    size_t stats_vq_offset;
    QEMUTimer *stats_timer;
    int64_t stats_last_update;
    int64_t stats_poll_interval;
} VirtIOBalloon;

#endif


rt(sans1);
            TestCert cert2 = new TestCert(sans2);
            X509CertSelector selector = new X509CertSelector();
            selector.setMatchAllSubjectAltNames(true);

            selector.setPathToNames(null);
            assertTrue("Any certificate should match in the case of null "
                    + "subjectAlternativeNames criteria.", selector
                    .match(cert1)
                    && selector.match(cert2));

            Collection<List<?>> sans = sans1.getPairsList();

            selector.setPathToNames(sans);

            Collection<List<?>> col = selector.getPathToNames();
            Iterator<List<?>> i = col.iterator();
            while (i.hasNext()) {
                Object o = i.next();
                if (!(o instanceof List)) {
                    fail("expected a List");
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
            fail("Unexpected IOException was thrown.");
        }
    }

    /**
     * @tests java.security.cert.X509CertSelector#setPolicy(Set<String>)
     */
    @TestTargetNew(
        level = TestLevel.COMPLETE,
        notes = "",
        method = "setPolicy",
        args = {java.util.Set.class}
    )
    public void test_setPolicyLjava_util_Set() throws IOException {
        String[] policies1 = new String[] { "1.3.6.1.5.5.7.3.1",
                "1.3.6.1.5.5.7.3.2", "1.3.6.1.5.5.7.3.3", "1.3.6.1.5.5.7.3.4",
                "1.3.6.1.5.5.7.3.8", "1.3.6.1.5.5.7.3.9", "1.3.6.1.5.5.7.3.5",
                "1.3.6.1.5.5.7.3.6", "1.3.6.1.5.5.7.3.7" };

        String[] policies2 = new String[] { "1.3.6.7.3.1" };

        HashSet<String> p1 = new HashSet<String>(Arrays.asList(policies1));
        HashSet<String> p2 = new HashSet<String>(Arrays.asList(policies2));

        X509CertSelector selector = new X509CertSelector();

        TestCert cert1 = new TestCert(policies1);
        TestCert cert2 = new TestCert(policies2);

        selector.setPolicy(null);
        assertTrue("Any certificate should match in the case of null "
                + "privateKeyValid criteria.", selector.match(cert1)
                && selector.match(cert2));

        selector.setPolicy(p1);
        assertTrue("The certificate should match the selection criteria.",
                selector.match(cert1));
        assertFalse("The certificate should not match the selection criteria.",
                selector.match(cert2));

        selector.setPolicy(p2);
        assertFalse("The certificate should not match the selection criteria.",
                selector.match(cert1));
        assertTrue("The certificate should match the selection criteria.",
                selector.match(cert2));
    }

    /**
     * @tests java.security.cert.X509CertSelector#setPrivateKeyValid(java.util.Date)
     */
    @TestTargetNew(
        level = TestLevel.COMPLETE,
        notes = "",
        method = "setPrivateKeyValid",
        args = {java.util.Date.class}
    )
    public void test_setPrivateKeyValidLjava_util_Date()
            throws CertificateException {
        Date date1 = new Date(100000000);
        Date date2 = new Date(200000000);
        Date date3 = new Date(300000000);
        Date date4 = new Date(150000000);
        Date date5 = new Date(250000000);
        TestCert cert1 = new TestCert(date1, date2);
        TestCert cert2 = new TestCert(date2, date3);

        X


(name: 'age') int age,
      @JsonKey(name: 'soulName') String soulname,
      @JsonKey(name: 'soulCodeImage') String soulcodeimage,
      @JsonKey(name: 'mianjiInfo') String mianjiinfo,
      @JsonKey(name: 'location') String location,
      @JsonKey(name: 'toLocation') String tolocation,
      @JsonKey(name: 'aboutDiandian') String aboutdiandian,
      @JsonKey(name: 'state') int state});
}

/// @nodoc
class _$AddMeetParamsCopyWithImpl<$Res>
    implements $AddMeetParamsCopyWith<$Res> {
  _$AddMeetParamsCopyWithImpl(this._self, this._then);

  final AddMeetParams _self;
  final $Res Function(AddMeetParams) _then;

  /// Create a copy of AddMeetParams
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = null,
    Object? name = null,
    Object? age = null,
    Object? soulname = null,
    Object? soulcodeimage = null,
    Object? mianjiinfo = null,
    Object? location = null,
    Object? tolocation = null,
    Object? aboutdiandian = null,
    Object? state = null,
  }) {
    return _then(_self.copyWith(
      id: null == id
          ? _self.id
          : id // ignore: cast_nullable_to_non_nullable
              as int,
      name: null == name
          ? _self.name
          : name // ignore: cast_nullable_to_non_nullable
              as String,
      age: null == age
          ? _self.age
          : age // ignore: cast_nullable_to_non_nullable
              as int,
      soulname: null == soulname
          ? _self.soulname
          : soulname // ignore: cast_nullable_to_non_nullable
              as String,
      soulcodeimage: null == soulcodeimage
          ? _self.soulcodeimage
          : soulcodeimage // ignore: cast_nullable_to_non_nullable
              as String,
      mianjiinfo: null == mianjiinfo
          ? _self.mianjiinfo
          : mianjiinfo // ignore: cast_nullable_to_non_nullable
              as String,
      location: null == location
          ? _self.location
          : location // ignore: cast_nullable_to_non_nullable
              as String,
      tolocation: null == tolocation
          ? _self.tolocation
          : tolocation // ignore: cast_nullable_to_non_nullable
              as String,
      aboutdiandian: null == aboutdiandian
          ? _self.aboutdiandian
          : aboutdiandian // ignore: cast_nullable_to_non_nullable
              as String,
      state: null == state
          ? _self.state
          : state // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// Adds pattern-matching-related methods to [AddMeetParams].
extension AddMeetParamsPatterns on AddMeetParams {
  /// A variant of `map` that fallback to returning `orElse`.
  ///
  /// It is equivalent to doing:
  /// ```dart
  /// switch (sealedClass) {
  ///   case final Subclass value:
  ///     return ...;
  ///   case _:
  ///     return orElse();
  /// }
  /// ```

  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>(
    TResult Function(_AddMeetParams value)? $default, {
    required TResult orElse(),
  }) {
    final _that = this;
    switch (_that) {
      case _AddMeetParams() when $default != null:
        return $default(_that);
      c