e_t o, const u_int8_t *a, bus_size_t c); */
/* LINTSTUB: Func: void bswr1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, const u_int8_t *a, bus_size_t c); */
ENTRY_NOPROFILE(bswr1_s)
	lwz	0,0(3)		/* get log2(stride) */
	li	8,1		/* distance between dst bytes */
	rotlw	5,5,0		/* shift offset */
	rotlw	8,8,0		/* shift distance */
	b	.Lbswr1_enter
ENTRY_NOPROFILE(bswr1)
	li	8,1		/* distance between dst bytes */
.Lbswr1_enter:
	add	3,4,5		/* add offset to handle & place in argument 0 */
	cmpwi	7,0		/* len == 0? */
	beqlr-			/*   return if len == 0 */
	addi	7,7,-1		/* len -= 1 */
	add	7,7,6		/* len += src */
	addi	6,6,-1		/* pre-decrement */
	sub	3,3,8
1:	lbzu	0,1(6)		/* load and increment */
	stbux	0,3,8		/* store and add distance */
	cmpl	0,6,7		/* at the end? */
	bne+	1b		/*   nope, do another pass */
	eieio			/* memory barrier (reorder protection) */
	DBGSYNC			/* force exceptions */
	blr			/* return */

/* LINTSTUB: Func: void bswr2_s(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, const u_int16_t *a, bus_size_t c); */
/* LINTSTUB: Func: void bswr2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, const u_int16_t *a, bus_size_t c); */
ENTRY_NOPROFILE(bswr2_s)
	lwz	0,0(3)		/* get log2(stride) */
	li	8,2		/* distance between dst halfwords */
	rotlw	5,5,0		/* shift offset */
	rotlw	8,8,0		/* shift distance */
	b	.Lbswr2_enter
ENTRY_NOPROFILE(bswr2)
	li	8,2		/* distance between dst halfwords */
.Lbswr2_enter:
	add	3,4,5		/* add offset to handle & place in argument 0 */
	cmpwi	7,0		/* len == 0? */
	beqlr-			/*   return if len == 0 */
	addi	7,7,-1		/* len -= 1 */
	slwi	7,7,1		/* len *= 2 */
	add	7,7,6		/* len += src */
	addi	6,6,-2		/* pre-decrement */
	sub	3,3,8
1:	lhzu	0,2(6)		/* load and increment */
	sthux	0,3,8		/* store and add distance */
	cmpl	0,6,7		/* at the end? */
	bne+	1b		/*   nope, do another pass */
	eieio			/* memory barrier (reorder protection) */
	DBGSYNC			/* force exceptions */
	blr			/* return */

/* LINTSTUB: Func: void bswr2rb_s(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, const u_int16_t *a, bus_size_t c); */
/* LINTSTUB: Func: void bswr


�",
		["Silent Resolve"] = "무언의 결심",
		["Sinister Strike"] = "사악한 일격",
		["Siphon Life"] = "생명력 착취",
		["Skinning"] = "무두질",
		["Slam"] = "격돌",
		["Sleep"] = "수면",
		["Slice and Dice"] = "난도질",
		["Slow Fall"] = "저속 낙하",
		["Smelting"] = "제련술",
		["Smite"] = "성스러운 일격",
		["Solid Sharpening Stone"] = "견고한 숫돌",
		["Soothe Animal"] = "동물 달래기",
		["Soothing Kiss"] = "유혹의 입맞춤",
		["Soul Fire"] = "영혼의 불꽃",
		["Soul Link"] = "영혼의 고리",
		["Soulstone Resurrection"] = "영혼석 부활",
		["Spell Lock"] = "주문 잠금",
		["Spell Warding"] = "주문 수호",
		["Spirit Bond"] = "정신의 결속",
		["Spirit Tap"] = "정신력 누출",
		["Spirit of Redemption"] = "구원의 영혼",
		["Spiritual Focus"] = "영적인 집중력",
		["Spiritual Guidance"] = "영혼의 길잡이",
		["Spiritual Healing"] = "영혼의 치유",
		["Sprint"] = "전력 질주",
		["Starfire"] = "별빛 화살",
		["Starshards"] = "별조각",
		["Staves"] = "지팡이",
		["Stealth"] = "은신",
		["Stoneclaw Totem"] = "돌발톱 토템",
		["Stoneform"] = "석화",
		["Stoneskin Totem"] = "돌가죽 토템",
		["Stormstrike"] = "폭풍의 일격",
		["Strength of Earth Totem"] = "대지력 토템",
		["Stuck"] = "고립 상태 벗어나기",
		["Subtlety"] = "영혼의 길잡이",
		["Suffering"] = "고통",
		["Summon Charger"] = "군마 소환",
		["Summon Dreadsteed"] = "공포마 소환",
		["Summon Felhunter"] = "지옥사냥개 소환",
		["Summon Felsteed"] = "지옥마 소환",
		["Summon Imp"] = "임프 소환",
		["Summon Succubus"] = "서큐버스 소환",
		["Summon Voidwalker"] = "보이드워커 소환",
		["Summon Warhorse"] = "군마 소환",
		["Sunder Armor"] = "방어구 가르기",
		["Suppression"] = "억제",
		["Surefooted"] = "침착함",


/*
 * Tegra ACONNECT Bus Driver
 *
 * Copyright (C) 2016, NVIDIA CORPORATION.  All rights reserved.
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 */

#include <linux/clk.h>
#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>

struct tegra_aconnect {
	struct clk	*ape_clk;
	struct clk	*apb2ape_clk;
};

static int tegra_aconnect_probe(struct platform_device *pdev)
{
	struct tegra_aconnect *aconnect;

	if (!pdev->dev.of_node)
		return -EINVAL;

	aconnect = devm_kzalloc(&pdev->dev, sizeof(struct tegra_aconnect),
				GFP_KERNEL);
	if (!aconnect)
		return -ENOMEM;

	aconnect->ape_clk = devm_clk_get(&pdev->dev, "ape");
	if (IS_ERR(aconnect->ape_clk)) {
		dev_err(&pdev->dev, "Can't retrieve ape clock\n");
		return PTR_ERR(aconnect->ape_clk);
	}

	aconnect->apb2ape_clk = devm_clk_get(&pdev->dev, "apb2ape");
	if (IS_ERR(aconnect->apb2ape_clk)) {
		dev_err(&pdev->dev, "Can't retrieve apb2ape clock\n");
		return PTR_ERR(aconnect->apb2ape_clk);
	}

	dev_set_drvdata(&pdev->dev, aconnect);
	pm_runtime_enable(&pdev->dev);

	of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);

	dev_info(&pdev->dev, "Tegra ACONNECT bus registered\n");

	return 0;
}

static int tegra_aconnect_remove(struct platform_device *pdev)
{
	pm_runtime_disable(&pdev->dev);

	return 0;
}

static int tegra_aconnect_runtime_resume(struct device *dev)
{
	struct tegra_aconnect *aconnect = dev_get_drvdata(dev);
	int ret;

	ret = clk_prepare_enable(aconnect->ape_clk);
	if (ret) {
		dev_err(dev, "ape clk_enable failed: %d\n", ret);
		return ret;
	}

	ret = clk_prepare_enable(aconnect->apb2ape_clk);
	if (ret) {
		clk_disable_unprepare(aconnect->ape_clk);
		dev_err(dev, "apb2ape clk_enable failed: %d\n", ret);
		return ret;
	}

	return 0;
}

static int tegra_aconnect_runtime_suspend(struct device *dev)
{
	struct tegra_aconnect *aconnect = dev_get_drvdata(dev);

	clk_disable_unprepare(aconnect->ape_clk);
	clk_disable_unprepare(aconnect->apb2ape_clk);

	return 0;
}

static const struct dev_pm_ops tegra_aconnect_pm_ops = {
	SET_RUNTIME_PM_OPS(tegra_aconnect_runtime_suspend,
			   tegra_aconnect_runtime_resume, NULL)
	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
				      pm_runtime_force_resume)
};

static const struct of_device_id tegra_aconnect_of_match[] = {
	{ .compatible = "nvidia,tegra210-aconnect", },
	{ }
};
MODULE_DEVICE_TABLE(of, tegra_aconnect_of_match);

static struct platform_driver tegra_aconnect_driver = {
	.probe = tegra_aconnect_probe,
	.remove = tegra_aconnect_remove,
	.driver = {
		.name = "tegra-aconnect",
		.of_match_table = tegra_aconnect_of_match,
		.pm = &tegra_aconnect_pm_ops,
	},
};
module_platform_driver(tegra_aconnect_driver);

MODULE_DESCRIPTION("NVIDIA Tegra ACONNECT Bus Driver");
MODULE_AUTHOR("Jon Hunter <jonathanh@nvidia.com>");
MODULE_LICENSE("GPL v2");


a class="ref" href="#commands">commands as options.
The command accepts the same syntax of the corresponding option.

If the specified expression is not valid, it is kept at its current
value.

39.25 chromakey# TOC

YUV colorspace color/chroma keying.

The filter accepts the following options:

<samp class="option">color</samp>

The color which will be replaced with transparency.

<samp class="option">similarity</samp>

Similarity percentage with the key color.

0.01 matches only the exact key color, while 1.0 matches everything.

<samp class="option">blend</samp>

Blend percentage.

0.0 makes pixels either fully transparent, or not transparent at all.

Higher values result in semi-transparent pixels, with a higher transparency
the more similar the pixels color is to the key color.

<samp class="option">yuv</samp>

Signals that the color passed is already in YUV instead of RGB.

Literal colors like "green" or "red" don’t make sense with this enabled anymore.
This can be used to pass exact YUV values as hexadecimal numbers.

39.25.1 Commands# TOC

This filter supports same commands as options.
The command accepts the same syntax of the corresponding option.

If the specified expression is not valid, it is kept at its current
value.

39.25.2 Examples# TOC

Make every green pixel in the input image transparent:

ffmpeg -i input.png -vf chromakey=green out.png

Overlay a greenscreen-video on top of a static black background.

ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv

<a name="chr


solute:str, opt:dict[str], num:int, press:bool=False, original:dict[str, dict[str]]=...) -> int:
    try:
        variant = list(level.keys())[num]
    except IndexError:
        return

    if press and absolute in list(filter(path.isdir, listdir())):
        base_buttons = [i for i in original if type(original[i]) == type({})]
        base_variant = [list(original[i].keys())[0] for i in base_buttons]
        bs = getcwd().split("\\")[-1]

        base_buttons.append("def"+bs)
        parser_file(base_buttons, "Path choice", "chooce a path", base_variant, variant_main=opt)
        opt[bs] = "Path choice"
        t = getcwd()

        chdir("..")
        key = [i.replace(".html", "") for i in list(filter(path.isfile, listdir())) if i.split("_")[0] == getcwd().split("\\")[-1]][0]
        var = key.split("_")[1]
        parser_file(list(filter(path.isdir, listdir())), key, original[var], var, variant_main=opt)

        chdir(t)

    chdir(getcwd()+"/"+absolute)
    tlt = list(filter(path.isdir, listdir()))

    for i in range(len(tlt)):
        starter(absolute+"_"+variant, level[variant], variant, opt, level)
        ch_start(level, tlt[i], opt, num+1)

    chdir("..")
    return

def starter(key:str, desc:dict[str]|str, var:str, main:dict[str], ot):
    if type(desc) == type({}):
        ch_start(desc, key.split("_")[1], main, 0, True, ot)
    elif type(desc) == type(""):
        file = list(filter(path.isdir, listdir()))
        parser_file(file, key, desc, var, variant_main=main, variant_base=ot)

chdir(ROOT_GEN+"/out")
from json import load
parser_file(FL_TO_COMPILE, "specie", "chooce", "choice", )
for specie in FL_TO_COMPILE:
    base_info = load(open(ROOT_GEN+"/data/"+specie+"/desc.json", "r"))
    ch_start(base_info, specie, MAINLY_ARCH[specie], 0)
    break

print(getcwd())


1 + b.uniqifier%4),
		BuildCritical: &buildCritical,

		IngestedInvocationId:          fmt.Sprintf("invocation-%v", b.uniqifier),
		IngestedInvocationResultIndex: int64(b.uniqifier + 1),
		IngestedInvocationResultCount: int64(b.uniqifier*2 + 1),
		IsIngestedInvocationBlocked:   b.uniqifier%3 == 0,

		TestRunId:          fmt.Sprintf("test-run-%v", b.uniqifier),
		TestRunResultIndex: int64((int64(b.uniqifier) / 2) + 1),
		TestRunResultCount: int64(b.uniqifier + 1),
		IsTestRunBlocked:   b.uniqifier%2 == 0,
	}
}

// buildBQExport returns the expected test result-cluster inclusion rows that
// would appear in BigQuery, if the test result was in the given clusters.
// Note that deletions are not returned; these are simply the 'net' rows that
// would be expected.
func (b *testResultBuilder) buildBQExport(clusterIDs []clustering.ClusterID) []*bqpb.ClusteredFailureRow {
	var inBugCluster bool
	for _, cID := range clusterIDs {
		if cID.IsBugCluster() {
			inBugCluster = true
		}
	}

	presubmitRunStatus := pb.PresubmitRunStatus(3 - b.uniqifier%3).String()
	if !strings.HasPrefix(presubmitRunStatus, "PRESUBMIT_RUN_STATUS_") {
		panic("PresubmitRunStatus does not have expected prefix: " + presubmitRunStatus)
	}
	presubmitRunStatus = strings.TrimPrefix(presubmitRunStatus, "PRESUBMIT_RUN_STATUS_")

	var results []*bqpb.ClusteredFailureRow
	for _, cID := range clusterIDs {
		result := &bqpb.ClusteredFailureRow{
			ClusterAlgorithm: cID.Algorithm,
			ClusterId:        cID.ID,
			TestResultSystem: "resultdb",
			TestResultId:     fmt.Sprintf("invocations/testrun-%v/tests/test-name-%v/results/%v", b.uniqifier, b.uniqifier, b.uniqifier),
			LastUpdated:      nil, // To be set by caller.
			Project:          testProject,

			PartitionTime:              timestamppb.New(time.Date(2020, time.April, 1, 2, 3, 4, 0, time.UTC)),
			IsIncluded:                 true,
			IsIncludedWithHighPriority: cID.IsBugCluster() || !inBugCluster,

			ChunkId:    "", // To be set by caller.
			ChunkIndex: 0,  // To be set by caller.

			Realm: "testproject:realm",
			TestIdStructured: &bqpb.TestIdentifier{
				ModuleName:        "module",
				ModuleScheme:      "scheme",
				ModuleVariant:     `{"variantkey":"value"}`,
				ModuleVariantHash: pbutil.VariantHash(pbutil.Variant("variantkey", "value")),
				CoarseName:        "coarse",
				FineName:          "fine",
				CaseName:          "case" + b.testSuffix,
			},
			TestId: ":module!scheme:coarse:fine#case" + b.testSuffix,
			Variant: []*pb.StringPair{
				{
					Key:   "variantkey",
					Value: "value",
				},
			},
			VariantHash:   pbutil.VariantHash(pbutil.Variant("variantkey", "value")),
			FailureReason: b.failureReason,
			BugTrackingComponent: &pb.BugTrackingComponent{
				System:    "monorail",
				Component: "Component>MyComponent",
			},
			StartTime: timestamppb.New(time.Date(20


 functionality
class ShakeDetector {
  /// User callback for phone shake
  final PhoneShakeCallback onPhoneShake;

  /// Shake detection threshold
  final double shakeThresholdGravity;

  /// Minimum time between shake
  final int shakeSlopTimeMS;

  /// Time before shake count resets
  final int shakeCountResetTime;

  /// Number of shakes required before shake is triggered
  final int minimumShakeCount;

  /// Whether to use a filtered approach to reduce noise
  final bool useFilter;

  int _shakeTimestamp = DateTime.now().millisecondsSinceEpoch;
  int _shakeCount = 0;

  // Filter variables
  final List<double> _filterBuffer = <double>[];
  static const int _filterSamples = 5;

  /// StreamSubscription for Accelerometer events
  StreamSubscription<AccelerometerEvent>? streamSubscription;

  /// This constructor waits until [startListening] is called
  ShakeDetector.waitForStart({
    required this.onPhoneShake,
    this.shakeThresholdGravity = 2.7,
    this.shakeSlopTimeMS = 500,
    this.shakeCountResetTime = 3000,
    this.minimumShakeCount = 1,
    this.useFilter = false,
  });

  /// This constructor automatically calls [startListening] and starts detection and callbacks.
  ShakeDetector.autoStart({
    required this.onPhoneShake,
    this.shakeThresholdGravity = 2.7,
    this.shakeSlopTimeMS = 500,
    this.shakeCountResetTime = 3000,
    this.minimumShakeCount = 1,
    this.useFilter = false,
  }) {
    startListening();
  }

  /// Starts listening to accelerometer events
  void startListening() {
    streamSubscription = accelerometerEventStream().listen(
      (AccelerometerEvent event) {
        final double x = event.x;
        final double y = event.y;
        final double z = event.z;

        final double gX = x / 9.80665;
        final double gY = y / 9.80665;
        final double gZ = z / 9.80665;

        // gForce will be close to 1 when there is no movement.
        double gForce = sqrt(gX * gX + gY * gY + gZ * gZ);

        if (useFilter) {
          // Apply a simple moving average filter
          if (_filterBuffer.length >= _filterSamples) {
            _filterBuffer.removeAt(0);
          }
          _filterBuffer.add(gForce);

          // Calculate the average
          gForce = _filterBuffer.reduce((a, b) => a + b) / _filterBuffer.length;
        }

        if (gForce > shakeThresholdGravity) {
          final int now = DateTime.now().millisecondsSinceEpoch;

          // ignore shake events too close to each other (500ms)
          if (_shakeTimestamp + shakeSlopTimeMS > now) {
            return;
          }

          // reset the shake count after 3 seconds of no shakes
          if (_shakeTimestamp + shakeCountResetTime < now) {
            _shakeCount = 0;
          }

          _shakeTimestamp = now;
          _shakeCount++;

          if (_shakeCount >= minimumShakeCount) {
            // Determine the primary direction of the shake
            ShakeDirection direction;
            final double absX = gX.abs();
            final double absY = gY.abs();
            final double absZ = gZ.abs();

            if (absX > absY && absX > absZ) {
              direction = ShakeDirection.x;
            } else if (absY > absX && absY > absZ) {
              direction = ShakeDirection.y;
            } else if (absZ > absX && absZ > absY) {
              direction = ShakeDirection.z;
            } else {
              direction = ShakeDirection.undefined;
            }


net.ParseMAC("01:00:5e:80:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("00:00:5e:00:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("01:01:5e:00:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("01:00:5f:10:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
}

func TestCompMaskedMAC6(t *testing.T) {
	base := HardwareAddrMulticast6
	mask := HardwareAddrMulticast6Mask

	var mac net.HardwareAddr

	// match
	mac, _ = net.ParseMAC("33:33:00:00:00:00")
	if ok := CompMaskedMAC(mac, base, mask); !ok {
		t.Errorf("CompMaskedMAC must match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("33:33:00:00:00:01")
	if ok := CompMaskedMAC(mac, base, mask); !ok {
		t.Errorf("CompMaskedMAC must match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("33:33:ff:ff:ff:ff")
	if ok := CompMaskedMAC(mac, base, mask); !ok {
		t.Errorf("CompMaskedMAC must match. %s %s/%s", mac, base, mask)
	}

	// not match
	mac, _ = net.ParseMAC("33:34:00:00:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
	mac, _ = net.ParseMAC("23:33:00:00:00:00")
	if ok := CompMaskedMAC(mac, base, mask); ok {
		t.Errorf("CompMaskedMAC must not match. %s %s/%s", mac, base, mask)
	}
}
// -*- coding: utf-8 -*-

// Copyright (C) 2018 Nippon Telegraph and Telephone Corporation.
//
// 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 fibcapi

import fibcnet "fabricflow/fibc/net"

//
// Multipart
//
type FFMultipartRequestHandler interface {
	FIBCFFMultipartRequest(*fibcnet.Header, *FFMultipart_Request) error
}

type FFMultipartReplyHandler interface {
	FIBCFFMultipartReply(*fibcnet.Header, *FFMultipart_Reply) error
}

//
// Multipart.Port
//
type FFMultipartPortRequestHandler interface {
	FIBCFFMultipartPortRequest(*fibcnet.Header, *FFMultipart_Request, *FFMultipart_PortRequest)
}


trategy.getABox().doExplanation());
				}
				else
					y = _strategy.createFreshIndividual(x, ds);

				if (_logger.isLoggable(Level.FINE))
					_logger.fine("SOME: " + x + " -> " + role + " -> " + y + " : " + ATermUtils.toString(c) + (useExistingNode ? "" : " (*)") + " - " + ds);

				_strategy.addType(y, c, ds);

				if (!useExistingRole)
					if (x.isBlockable() && y != null && y.isConceptRoot())
						_strategy.addEdge((Individual) y, role.getInverse(), x, ds);
					else
						_strategy.addEdge(x, role, y, ds);
			}
	}
}
// The MIT License
//
// Copyright (c) 2007 Christian Halaschek-Wiener
//
// 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.

package openllet.core.tableau.completion.incremental;

import openllet.aterm.ATermAppl;
import openllet.core.tableau.branch.Branch;

/**
 * A dependency for a closed disjunct, merge pair, etc. for a _branch
 *
 * @author Christian Halaschek-Wiener
 */
public class CloseBranchDependency extends BranchDependency
{
	private final int _tryNext;

	private final Branch _closeBranch;

	public CloseBranchDependency(final ATermAppl assertion, final int tryNext, final Branch theBranch)
	{
		super(assertion);
		_tryNext = tryNext;
		_closeBranch = theBranch;
	}

	public ATermAppl getInd()
	{
		return _closeBranch.getNode().getName();
	}

	@Override
	public String toString()
	{
		return "Branch [" + _closeBranch.getNode().getName() + "]  -  [" + _closeBranch.getBranchIndexInABox() + "]";
	}

	@Override
	public boolean equals(final Object other)
	{
		if (other instanceof CloseBranchDependency)
			return getInd().equals(((CloseBranchDependency) other).getInd()) && getBranch() == ((CloseBranchDependency) other).getBranch() && _tryNext == ((CloseBranchDependency) other)._tryNext;
		else
			return false;
	}

	/**
	 * TODO: this hash may not be sufficient
	 */
	@Override
	public int hashCode()
	{
		return getInd().hashCode() + getBranch() + _tryNext;
	}

	public int getBranch()
	{
		return _closeBranch.getBranchIndexInABox();
	}

	public int getTryNext()
	{
		return _tryNext;
	}

	public Branch getCloseBranch()
	{
		return _closeBranch;
	}

}
// Copyright (c) 2006 - 2008, Clark & Parsia, LLC. <http://www.clarkparsia.com>
// This source code is available under the terms of the Affero General Public License v3.


(88,`${he.applyStyle(r,`A new ${W[0]} version of Yarn is available:`,he.Style.BOLD)} ${G.prettyReference(r,W[1])}!`),N.reportInfo(88,`Upgrade now by running ${he.pretty(r,`yarn set version ${W[1]}`,he.Type.CODE)}`),N.reportSeparator();else{let ee=ze.telemetry.selectTip(U.tips);ee&&(N.reportInfo(89,he.pretty(r,ee.message,he.Type.MARKDOWN_INLINE)),ee.url&&N.reportInfo(89,`Learn more at ${ee.url}`),N.reportSeparator())}}}});if(T.hasErrors())return T.exitCode()}let{project:p,workspace:h}=await Rt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U={};for(let W of Ylt)W.selector(E)&&typeof r.sources.get(W.name)>"u"&&(r.use("<compat>",{[W.name]:W.value},p.cwd,{overwrite:!0}),U[W.name]=W.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),N.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),N.reportSeparator())});if(T.hasErrors())return T.exitCode()}let C=await Kr.find(r,{immutable:f,check:this.checkCache});if(!h)throw new ar(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let S=r.get("enableHardenedMode");S&&typeof r.sources.get("enableHardenedMode")>"u"&&await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async T=>{T.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),T.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${he.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),T.reportSeparator()}),(this.refreshLockfile??S)&&(p.lockfileNeedsRefresh=!0);let b=this.checkResolutions??S;return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async T=>{await p.install({cache:C,report:T,immutable:c,checkResolutions:b,mode:this.mode})})).exitCode()}},Vlt="<<<<<<<";async function Jlt(t,e){if(!t.projectCwd)return!1;let r=J.join(t.projectCwd,Er.lockfile);if(!await ce.existsPromise(r)||!(await ce.readFilePromise(r,"utf8")).includes(Vlt))return!1;if(e)throw new jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await qr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await qr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await qr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let


pens leveleditor)
			// Usage:       SCCMListElementEditable.cs:43
			L10N.Add(STR_LVLED_BTN_EDIT, "Edit", "Edit", "Façonner", "?", "?"); //TODO translate me

			// Description: Buttontext in online-level browser. Starts the selected level.
			// Usage:       HUDSCCMScorePanel_Won.cs:418
			// Usage:       SCCMListElementLocalPlayable.cs:51
			// Usage:       SCCMListElementOnlinePlayable.cs:34
			L10N.Add(STR_LVLED_BTN_PLAY, "Play", "Play", "Joue", "?", "?"); //TODO translate me

			// Description: Waitingbox text that is shown while the level compiles
			// Usage:       LevelEditorScreen.cs:262
			// Usage:       LevelEditorScreen.cs:327
			L10N.Add(STR_LVLED_COMPILING, "Compiling", "Erzeugen", "Produire", "?", "?"); //TODO translate me

			// Description: String for showing the option "Do not play music" in the leveleditor
			// Usage:       LevelEditorConfigPanel.cs:381
			L10N.Add(STR_MUSIC_NONE, "None", "Keine", "Aucun", "?", "?"); //TODO translate me

			// Description: Formatstring for showing the different avaiable music (eg "Song 1", "Song 2", ...) in the leveleditor
			// Usage:       LevelEditorConfigPanel.cs:381
			L10N.Add(STR_MUSIC_INT, "Song {0}", "Lied {0}", "Musique {0}", "?", "?"); //TODO translate me

			// Description: Label for Parameter "Music" in leveleditor
			// Usage:       LevelEditorConfigPanel.cs:246
			L10N.Add(STR_LVLED_CFG_MUSIC, "Song:", "Lied:", "Musique:", "Musica:", "Música:");

			// Description: Buttontext. Uploads a level.
			// Usage:       HUDSCCMUploadScorePanel.cs:182
			L10N.Add(STR_LVLED_BTN_UPLOAD, "Upload", "Veröffentlichen", "Publier", "?", "?"); //TODO translate me

			// Description: Toast that is shown while the level is uploading (after you created a new level) or while the score is uploading (after you finished a level)
			// Usage:       HUDSCCMScorePanel_Transmit.cs:89
			// Usage:       HUDSCCMUploadScorePanel.cs:263
			L10N.Add(STR_LVLED_UPLOADING, "Uploading", "Wird hochgeladen", "En cours de télécharger", "?", "?"); //TODO translate me

			// Description: Message text that is shown when teh level upload was successful
			// Usage:       HUDSCCMUploadScorePanel.cs:382
			L10N.Add(STR_LVLED_UPLOAD_FIN, "Level successfully published", "Level wurde veröffentlicht", "Niveau était publié", "?", "?"); //TODO translate me

			// Description: Text of a error-message that is shown when you try to upload a level and an internal error occured
			// Usage:       HUDSCCMUploadScorePanel.cs:302
			L10N.Add(STR_LVLUPLD_ERR_INTERNAL, "Server error while uploading level", "Im Server trat ein Fehler während des Uploads auf", "Le serveur a rencontré une erreur lors du téléchargement", "?", "?"); //TODO translate me

			// Description: Text of a error-message that is shown when you try to upload a level that has a filesize over the limit
			// Usage:       HUDSCCMUploadScorePanel.cs:324
			L10N.Add(STR_LVLUPLD_ERR_FILETOOBIG, "Levelfile too big", "Leveldatei zu groß", "Fichier de niveau trop grand", "?", "?"); //TODO translate me

			// Description: Text of a error-


8-11.8965 0-7.6478 4.752-11.8114 10.438-11.8114 5.772 0 10.355 4.1636 10.355 11.8114z"/><path d="m367.85 56.9721c0 6.5431 5.431 12.5763 14.343 12.5763 6.195 0 10.185-2.8892 12.306-6.2033 0 1.6146.171 3.9089.425 5.0136h10.354c-.253-1.4446-.508-4.4187-.508-6.628v-20.5639c0-8.4125-4.923-15.8902-18.164-15.8902-11.203 0-17.229 7.2227-17.907 13.7658l10.013 2.1244c.341-3.6539 3.057-6.7979 7.979-6.7979 4.754 0 7.045 2.4642 7.045 5.4383 0 1.4446-.764 2.6343-3.141 2.9741l-10.268 1.5296c-6.96 1.0197-12.477 5.1834-12.477 12.6612zm16.72 4.1638c-3.65 0-5.433-2.3793-5.433-4.8435 0-3.2291 2.291-4.8437 5.178-5.2685l9.421-1.4446v1.8694c0 7.3929-4.414 9.6872-9.166 9.6872z"/><path d="m412.583 56.7172c.508 4.7586 4.838 12.9161 17.398 12.9161 10.95 0 16.211-6.9679 16.211-13.7658 0-6.1183-4.158-11.1317-12.391-12.8314l-5.942-1.2745c-2.291-.4248-3.818-1.6994-3.818-3.7389 0-2.3793 2.376-4.1637 5.347-4.1637 4.754 0 6.535 3.144 6.876 5.6084l9.42-2.1244c-.51-4.5037-4.499-12.0664-16.38-12.0664-8.998 0-15.617 6.2032-15.617 13.6808 0 5.8632 3.648 10.707 11.712 12.4913l5.517 1.2747c3.226.6797 4.498 2.2094 4.498 4.0788 0 2.2094-1.782 4.1638-5.517 4.1638-4.923 0-7.383-3.0592-7.638-6.3733z"/><path d="m463.336 42.6963c.255-3.8238 3.481-8.2426 9.337-8.2426 6.449 0 9.166 4.0789 9.336 8.2426zm19.777 10.8769c-1.359 3.7387-4.245 6.373-9.507 6.373-5.602 0-10.27-3.9938-10.523-9.5171h29.874c0-.1701.17-1.8695.17-3.4841 0-13.426-7.723-21.6684-20.624-21.6684-10.694 0-20.54 8.6673-20.54 22.0084 0 14.1057 10.099 22.3483 21.558 22.3483 10.27 0 16.89-6.0332 19.013-13.2561z" /><path d="m54.1232 93.6926c-2.4293 3.0593-7.3549 1.3831-7.4135-2.5232l-.8559-57.1338h38.4168c6.9583 0 10.839 8.0369 6.5122 13.4865z" fill="url(#sup


 = 5LL;
    v3 = runtime_concatstring2(0LL, main__addr, v8);
    v4 = test_client__ptr_Con_Init(&main__con, v3);
    main_connectionState = 1;
    if ( v4 )
    {
      *(_OWORD *)&v.array = v1;
      v.array = (interface_ *)v4->_type;
      v.len = (int)v3.str;
      v10.array = (interface_ *)&v;
      v10.len = 1LL;
      v10.cap = 1LL;
      log_Fatal(v10);
    }
  }
  if ( github_com_hajimehoshi_ebiten_v2_internal_ui__ptr_Input_IsMouseButtonPressed(
         (github_com_hajimehoshi_ebiten_v2_internal_ui_Input *)&github_com_hajimehoshi_ebiten_v2_internal_ui_theUI->input,
         0LL)._r0
    && v2.x > 900
    && (unsigned __int64)(v2.y - 171) < 0x3B
    && v2.x < 1100 )
  {
    main__state = 1LL;
  }
  v5 = 0LL;
  v6 = 0LL;
  result.data = v6;
  result.tab = v5;
  return result;
}
```

## main.(*Game).U_Connecting

```c
// main.(*Game).U_Connecting
// local variable allocation has failed, the output may be wrong!
error_0 __golang main__ptr_Game_U_Connecting(_ptr_main_Game a1)
{
  string v1; // kr10_16
  string v2; // kr20_16
  unsigned __int64 Seed; // rax
  runtime_hmap *v4; // rbx
  __int64 v5; // rbp
  void *v6; // rax
  void *v7; // rbx
  runtime_hmap **v8; // rax
  uint64 *v9; // rax
  runtime_hmap *v10; // rdx
  int count; // rdx
  string *v12; // rax
  runtime_hmap *v13; // rbx
  __int64 v14; // r8
  __int64 v15; // rdx
  int v16; // rbx
  string *array; // rax OVERLAPPED
  int v18; // rcx
  __int64 v19; // rcx
  __int64 *v20; // [rsp+0h] [rbp-158h]
  _BYTE v21[64]; // [rsp+10h] [rbp-148h] BYREF
  uint64 key; // [rsp+50h] [rbp-108h]
  __int64 v23; // [rsp+58h] [rbp-100h]
  uint64 v24; // [rsp+60h] [rbp-F8h]
  int v25; // [rsp+68h] [rbp-F0h]
  runtime_hmap *h; // [rsp+70h] [rbp-E8h]
  __int64 v27; // [rsp+78h] [rbp-E0h]
  _slice_interface_ v; // [rsp+80h] [rbp-D8h] BYREF
  runtime_hiter it; // [rsp+F0h] [rbp-68h] BYREF
  __int64 v30; // [rsp+150h] [rbp-8h] BYREF
  string v31; // 0:rdi.16
  string v32; // 0:rdi.16
  string v33; // 0:rdi.16
  error_0 result; // 0:rax.8,8:rbx.8
  string v35; // 0:rbx.8,8:rcx.8
  _slice_interface_ v36; // 0:rax.8,8:rbx.8,16:rcx.8

  if ( !main__tcp.len )
  {
    v31.str = (uint8 *)":4444:path<nil>AdlamAllocAprilBamumBatakBuhidClassCommaDograEnterEqualErrorFLOATGlyphGreekIDENTKh"
                       "merKind(LatinLimbuLocalMarchMatchMinusNRGBANushuOghamOriyaOsagePauseQuoteRANDRRangeRealmRunicSHA-"
                       "1STermShiftSlashSpaceStdHWStdVWSubrsTakriTamilTypeAValueX: %dXGB: Y:


userIdAsEids);
    });
    it('should return proper banner imp', function () {
      const bid = Object.assign({}, abid);
      bid.mediaTypes = {
        banner: {
          sizes: [[300, 250]]
        }
      };
      const bidRequests = [bid];
      const page = top.location.href;
      const domain = utils.parseUrl(page).hostname;
      const request = spec.buildRequests(bidRequests);
      expect(request.url).deep.equal('https://prebid.mgid.com/prebid/1');
      expect(request.method).deep.equal('POST');
      const data = JSON.parse(request.data);
      expect(data.site.domain).to.deep.equal(domain);
      expect(data.site.page).to.deep.equal(page);
      expect(data.cur).to.deep.equal(['USD']);
      expect(data.device.ua).to.deep.equal(navigator.userAgent);
      expect(data.device.dnt).equal(dnt);
      expect(data.device.h).equal(screenHeight);
      expect(data.device.w).equal(screenWidth);
      expect(data.device.language).to.deep.equal(lang);
      expect(data.imp[0].tagid).to.deep.equal('2/div');
      expect(data.imp[0].ext.gpid).to.deep.equal('/1111/gpid');
      expect(data.imp[0].banner).to.deep.equal({w: 300, h: 250});
      expect(data.imp[0].secure).to.deep.equal(secure);
      expect(request).to.deep.equal({
        'method': 'POST',
        'url': 'https://prebid.mgid.com/prebid/1',
        'data': `{"site":{"domain":"${domain}","page":"${page}"},"cur":["USD"],"geo":{"utcoffset":${utcOffset}},"device":{"ua":"${navigator.userAgent}","js":1,"dnt":${dnt},"h":${screenHeight},"w":${screenWidth},"language":"${lang}"},"ext":{"mgid_ver":"${mgid_ver}","prebid_ver":"${version}"},"imp":[{"tagid":"2/div","secure":${secure},"ext":{"gpid":"/1111/gpid"},"banner":{"w":300,"h":250}}],"tmax":3000}`,
      });
    });
    it('should not return native imp if minimum asset list not requested', function () {
      const bid = Object.assign({}, abid);
      bid.mediaTypes = {
        native: '',
      };
      bid.nativeParams = {
        title: {required: true},
        image: {sizes: [80, 80]},
      };
      const bidRequests = [bid];
      const request = spec.buildRequests(bidRequests);
      expect(request).to.be.undefined;
    });
    it('should return proper native imp', function () {
      const bid = Object.assign({}, abid);
      bid.mediaTypes = {
        native: '',
      };
      bid.nativeParams = {
        title: {required: true},
        image: {sizes: [80, 80]},
        sponsored: { },
      };

      const bidRequests = [bid];
      const page = top.location.href;
      const domain = utils.parseUrl(page).hostname;
      const request = spec.buildRequests(bidRequests);
      expect(request).to.be.a('object');
      expect(request.url).deep.equal('https://prebid.mgid.com/prebid/1');
      expect(request.method).deep.equal('POST');
      const data = JSON.parse(request.data);
      expect(data.site.domain).to.deep.equal(domain);
      expect(data.site.page).to.deep.equal(page);
      expect(data.cur).to.deep.equal(['USD']);
      expect(data


逆”置入弃牌堆，视为对你使用一张【杀】（计入次数限制）。",
	["@xiansi-card"] = "你可以发动“陷嗣”",
	["~xiansi"] = "选择 1-2 名角色→点击确定",
	["xiansi_slash"] = "陷嗣(杀)",
	["counter"] = "逆",

	["#panzhangmazhong"] = "擒龙伏虎",
	["panzhangmazhong"] = "潘璋＆马忠",
	["&panzhangmazhong"] = "潘璋马忠",
	["designer:panzhangmazhong"] = "風残葉落",
	["illustrator:panzhangmazhong"] = "zzyzzyy",
	["duodao"] = "夺刀",
	[":duodao"] = "每当你受到【杀】的伤害后，你可以弃置一张牌：若如此做，你获得伤害来源装备区的武器牌。",
	["@duodao-get"] = "你可以弃置一张牌发动“夺刀”",
	["anjian"] = "暗箭",
	[":anjian"] = "每当你使用【杀】对目标角色造成伤害时，若你不在其攻击范围内，此伤害+1。",
	["#AnjianBuff"] = "%from 的“暗箭”效果被触发，伤害从 %arg 点增加至 %arg2 点",

	["#yufan"] = "狂直之士",
	["yufan"] = "虞翻",
	["designer:yufan"] = "幻岛",
	["illustrator:yufan"] = "L",
	["zongxuan"] = "纵玄",
	[":zongxuan"] = "当你的牌因弃置而置入弃牌堆时，你可以将其中至少一张牌依次置于牌堆顶。",
	["@zongxuan-put"] = "你可以发动“纵玄”",
	["~zongxuan"] = "选择任意数量的牌→点击确定（这些牌将以与你点击顺序相反的顺序置于牌堆顶）",
	["zhiyan"] = "直言",
	[":zhiyan"] = "结束阶段开始时，你可以令一名角色摸一张牌并展示之：若此牌为装备牌，该角色回复1点体力，然后使用之。",
	["zhiyan-invoke"] = "你可以发动“直言”
 操作提示: 选择一名角色→点击确定
",

	["#zhuran"] = "不动之督",
	["zhuran"] = "朱然",
	["illustrator:zhuran"] = "Ccat",
	["danshou"] = "胆守",
	[


/SwinjectAutoregistration)
[![Swift Version](https://img.shields.io/badge/Swift-3-F16D39.svg?style=flat)](https://developer.apple.com/swift)

SwinjectAutoregistration is an extension of Swinject that allows to automatically register your services and greatly reduce the amount of boilerplate code.

## Requirements

- iOS 8.0+ / Mac OS X 10.10+ / tvOS 9.0+
- Xcode 8+

## Installation

Swinject is available through [Carthage](https://github.com/Carthage/Carthage) or [CocoaPods](https://cocoapods.org).

### Carthage

To install Swinject with Carthage, add the following line to your `Cartfile`.

```
github "Swinject/Swinject" "2.6.0"
github "Swinject/SwinjectAutoregistration" "2.6.0"
```

Then run `carthage update --no-use-binaries` command or just `carthage update`. For details of the installation and usage of Carthage, visit [its project page](https://github.com/Carthage/Carthage).

### CocoaPods

To install Swinject with CocoaPods, add the following lines to your `Podfile`.

```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0' # or platform :osx, '10.10' if your target is OS X.
use_frameworks!

pod 'Swinject', '2.6.0'
pod 'SwinjectAutoregistration', '2.6.0'
```

Then run `pod install` command. For details of the installation and usage of CocoaPods, visit [its official website](https://cocoapods.org).

### Registration

Here is a simple example to auto-register a pet owner

```swift
let container = Container()
container.register(Animal.self) { _ in Cat(name: "Mimi") } // Regular register method
container.autoregister(Person.self, initializer: PetOwner.init) // Autoregistration
```

where PetOwner looks like this:

```swift
class PetOwner: Person {
    let pet: Animal

    init(pet: Animal) {
        self.pet = pet
    }
}
```

The `autoregister` function is given the `PetOwner` initializer `init(pet:Animal)`. From its signature Swinject knows that it needs a dependency `Animal` and resolves it from the container. Nothing else is needed.

Autoregistration becomes especially useful when used to register services with many dependencies. Compare autoregistration code:

```swift
container.autoregister(MyService.self, initializer: MyService.init)
```

with equivalent code in pure Swinject:

```swift
container.register(MyService.self) { r in
	MyService(dependencyA: r.resolve(DependencyA.self)!, dependencyB: r.resolve(DependencyB.self)!, dependencyC: r.resolve(DependencyC.self)!, dependencyD: r.resolve(DependencyD.self)!)
}
```

Another advantage is that if you add more dependencies during the development the registration code doesn't have to be rewritten.

#### Registration with name
Service can be also given name - same as with the regular register method.

```swift
container.autoregister(Person.self, name: "johnny", initializer: PetOwner.init)

```

#### Arguments
You can also use auto-registration for services with dynamic arguments. Pet owner whose name needs to be passed as argument is defined like this:

```swift
class PetOwner: Person {
    let name: String
    let pet:


дробная часть в единственном и множественном числе (может отсутствовать);
            * 2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).Для болгарского языка (bg_BG):
            "лев, лева, м, стотинка, стотинки, ж, 2", где:
            "лев, лева, м" – предмет исчисления:
            * лев - единственное число целой части;
            * лева - множественное число целой части;
            * м - род целой части,"стотинка, стотинки, ж" - дробная часть:
            * стотинка - единственное число дробной части;
            * стотинки - множественное число дробной части;
            * ж - род дробной части,"2" - количество разрядов дробной части.
            Для румынского языка (ro_RO):
            "leu, lei, M, ban, bani, W, 2";
            "leu, lei, M" – предмет исчисления:
            * leu - единственное число целой части;
            * lei - множественное число целой части;
            * M - род целой части;"ban, bani, W" - дробная часть:
            * ban - единственное число дробной части;
            * bani - множественное число дробной части;
            * W - род дробной части;"2" - количество разрядов дробной части.
            Для грузинского языка (ka_GE):
            "ლარი, თეთრი, 2";
            * ლარი - целая часть;
            * თეთრი - дробная часть;
            * "2" - количество разрядов дробной части.Для азербайджанского(az) и туркменского языков(tk):
            "TL,Kr,2 " , где
            * "TL" - предмет исчисления;
            * "Kr" - дробная часть (может отсутствовать);
            * 2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)Для вьетнамского языка (vi_VN):
            "dong, xu, 2";
            * dong, - целая часть;
            * xu, - дробная часть;
            * 2 - количество разрядов дробной части.Для турецкого языка (tr_TR):
            "TL,Kr,2,Separate", где:
            * TL - целая часть;
            * Kr - дробная часть (может отсутствовать);
            * 2 - количество разрядов дробной части (может отсутсвовать, значение по умолчанию - 2);
            * "Separate" - признак написания прописи раздельно, "Solid" - слитно (может отсутствовать, по умолчанию слитно).Для венгерск


0556-3.7705 8.1667 0.47806 1.7751 1.8653 3.0438 3.4009 4.4481 2.5016 2.2877 5.3968 4.9354 5.3968 10.718 0 6.2223-3.3515 10.111-10.054 11.667 3.3515-2.3333 4.6083-5.0556 3.7704-8.1667-0.47805-1.775-1.8653-3.0438-3.4009-4.4481-2.5015-2.2877-5.3967-4.9354-5.3967-10.718z" />
    <path d="m50.594 15.872h-3.9481v7.6c0 2.0267 1.3373 1.995 3.9481 1.8683v3.0717c-5.2853 0.6333-7.3867-0.8233-7.3867-4.94v-7.6h-2.9292v-3.2933h2.9292v-4.2534l3.4386-1.0133v5.2667h3.9481v3.2933zm21.324-3.2933h3.6297l-4.9988 15.833h-3.3749l-3.3113-10.672-3.3431 10.672h-3.375l-4.9987-15.833h3.6297l3.0884 10.925 3.3431-10.925h3.2794l3.3113 10.925 3.1202-10.925zm7.8961-2.375c-1.2099 0-2.1969-1.0134-2.1969-2.185 0-1.2033 0.987-2.185 2.1969-2.185s2.1969 0.98167 2.1969 2.185c0 1.1717-0.987 2.185-2.1969 2.185zm-1.7193 18.208v-15.833h3.4386v15.833h-3.4386zm15.792-16.245c3.566 0 6.1131 2.4067 6.1131 6.5233v9.7217h-3.4386v-9.3733c0-2.4067-1.401-3.6734-3.566-3.6734-2.2606 0-4.0436 1.33-4.0436 4.56v8.4867h-3.4386v-15.833h3.4386v2.0266c1.0507-1.6466 2.77-2.4383 4.9351-2.4383z" />
  </svg>
)

export default Logo
import React from 'react'
import 'twin.macro'

const Logo = () => (
  <a
    // Use the tw prop to add tailwind styles directly on jsx elements
    tw="w-32 mb-10 p-5 block opacity-50 hover:opacity-100"
    href="https://github.com/ben-rogerson/twin.macro"
    target="_blank"
    rel="noopener noreferrer"
  >
    <TwinSvg />
  </a>
)

const TwinSvg = () => (
  <svg fill="black" viewBox="0 0 100 35" xmlns="http://www.w3.org/2000/svg">
    <path d="m31.839 11.667c0-6.2223-3.3515-10.111-10.054-11.667 3.3514 2.3333 4.6082 5.0556 3.7704 8.1667-0.4781 1.7751-1.8653 3.0438-3.4009 4.4481-2.5016 2.2877-5.3968 4.9354-5.3968 10.718 0 6.2223 3.3515 10.111 10.054 11.667-3.3515-2.3333-4.6083-5.0556-3.7704-8.1667 0.478-1.775 1.8653-3.0438 3.4009-4.4481 2.5015-2.2877 5.3967-4.9354 5.3967-10.718z" />
    <path d="m-2.7803e-7 11.667c1.4828e-7 -6.2223 3.3515-10.111 10.055-11.667-3.3515 2.3333-4.6083 5.0556-3.7705 8.1667 0.47806 1.7751 1.8653 3.0438 3.4009 4.4481 2.5016 2.2877 5.3968 4.9354 5.3968 10.718 0 6.2223-3.3515 10.111-10.054 11.667 3.3515-2.3333 4.6083-5


 The server does not meet one of the preconditions that the requester put on the request.
    PRECONDITION_FAILED = 412,
    --- The request is larger than the server is willing or able to process.
    PAYLOAD_TOO_LARGE = 413,
    --- The URI provided was too long for the server to process.
    URI_TOO_LONG = 414,
    --- The request entity has a media type which the server or resource does not support.
    UNSUPPORTED_MEDIA_TYPE = 415,
    --- The client has asked for a portion of the file, but the server cannot supply that portion.
    RANGE_NOT_SATISFIABLE = 416,
    --- The server cannot meet the requirements of the Expect request‑header field.
    EXPECTATION_FAILED = 417,
    --- This code is defined as unused in the RFC (commonly known as “I’m a teapot”).
    IM_A_TEAPOT = 418,
    --- The request was directed at a server that is not able to produce a response.
    MISDIRECTED_REQUEST = 421,
    --- The request was well‑formed but was unable to be followed due to semantic errors.
    UNPROCESSABLE_ENTITY = 422,
    --- The resource that is being accessed is locked.
    LOCKED = 423,
    --- The request failed due to failure of a previous request.
    FAILED_DEPENDENCY = 424,
    --- Indicates that the server is unwilling to risk processing a request that might be replayed.
    TOO_EARLY = 425,
    --- The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.
    UPGRADE_REQUIRED = 426,
    --- The origin server requires the request to be conditional.
    PRECONDITION_REQUIRED = 428,
    --- The user has sent too many requests in a given amount of time.
    TOO_MANY_REQUESTS = 429,
    --- The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
    REQUEST_HEADER_FIELDS_TOO_LARGE = 431,
    --- The user requests an illegal resource, such as a web page censored by a government.
    UNAVAILABLE_FOR_LEGAL_REASONS = 451,

    --- A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
    INTERNAL_SERVER_ERROR = 500,
    --- The server either does not recognize the request method, or it lacks the ability to fulfill the request.
    NOT_IMPLEMENTED = 501,
    --- The server was acting as a gateway or proxy and received an invalid response from the upstream server.
    BAD_GATEWAY = 502,
    --- The server is currently unavailable (because it is overloaded or down for maintenance).
    SERVICE_UNAVAILABLE = 503,
    --- The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
    GATEWAY_TIMEOUT = 504,
    --- The server does not support the HTTP protocol version used in the request.
    HTTP_VERSION_NOT_SUPPORTED = 505,
    --- Transparent content negotiation for the request results in a circular reference.
    VARIANT_ALSO_NEGOTIATES = 506,
    --- The server is unable to store the representation needed to complete the request.
    INSUFFICIENT_STORAGE = 507,
    --- The server detected an infinite loop while processing the request.
    LOOP_DETECTED = 508,
    --- Further extensions to the request are required for the server to fulfill it.
    NOT_EXTENDED = 510,
    --- The client needs to authenticate to gain network access.
    NETWORK_AUTHENTICATION_REQUIRED = 511
}

return http


 table: KClass<T>): Index<T> = Index(name, table.java)

/**
 * Starts a TRIGGER statement.
 *
 * @param name The name of the trigger.
 * @return A new TRIGGER statement.
 */
fun createTrigger(name: String): Trigger = Trigger.create(name)

/**
 * Starts a temporary TRIGGER statement.
 *
 * @param name The name of the trigger.
 * @return A new TEMPORARY TRIGGER statement.
 */
fun createTempTrigger(name: String): Trigger = Trigger.create(name).temporary()

/**
 * Starts a CASE statement.
 *
 * @param operator The condition to check for in the WHEN.
 * @return A new [CaseCondition].
 */
fun <T> caseWhen(operator: SQLOperator): CaseCondition<T> = Case<T>().whenever(operator)

/**
 * Starts an efficient CASE statement. The value passed here is only evaulated once. A non-efficient
 * case statement will evaluate all of its [SQLOperator].
 *
 * @param caseColumn The value
 */
@JvmName("_case")
fun <TReturn> case(caseColumn: Property<TReturn>): Case<TReturn> = Case(caseColumn)

/**
 * Starts an efficient CASE statement. The value passed here is only evaulated once. A non-efficient
 * case statement will evaluate all of its [SQLOperator].
 *
 * @param caseColumn The value
 */
@JvmName("_case")
fun <TReturn> case(caseColumn: IProperty<*>): Case<TReturn> = Case(caseColumn)package com.dbflow5.database

/**
 * Description: Provides callbacks for [OpenHelper] methods
 */
interface DatabaseCallback {

    /**
     * Called when the DB is opened
     *
     * @param database The database that is opened
     */
    fun onOpen(database: DatabaseWrapper) = Unit

    /**
     * Called when the DB is created
     *
     * @param database The database that is created
     */
    fun onCreate(database: DatabaseWrapper) = Unit

    /**
     * Called when the DB is upgraded.
     *
     * @param database   The database that is upgraded
     * @param oldVersion The previous DB version
     * @param newVersion The new DB version
     */
    fun onUpgrade(database: DatabaseWrapper, oldVersion: Int, newVersion: Int) = Unit

    /**
     * Called when DB is downgraded. Note that this may not be supported by all implementations of the DB.
     *
     * @param databaseWrapper The database downgraded.
     * @param oldVersion      The old. higher version.
     * @param newVersion      The new lower version.
     */
    fun onDowngrade(databaseWrapper: DatabaseWrapper, oldVersion: Int, newVersion: Int) = Unit

    /**
     * Called when DB connection is being configured. Useful for checking foreign key support or enabling
     * write-ahead-logging.
     */
    fun onConfigure(db: DatabaseWrapper) = Unit
}
package com.dbflow5.database

/**
 * Description: Default implementation for some [DatabaseStatement] methods.
 */
abstract class BaseDatabaseStatement : DatabaseStatement {

    override fun bindStringOrNull(index: Int, s: String?) {
        if (s != null) {
            bindString(index, s)
        } else {
            bindNull(index)
        }
    }

    override fun bindNumber(index: Int, number: Number?) {
        bindNumberOrNull(index, number)
    }

    override fun bindNumberOrNull(index: Int, number: Number?) {
        if (number != null) {
            bindLong(index, number.toLong())
        } else {
            bindNull(index)
        }
    }

    override fun bindDoubleOrNull(index: Int, aDouble: Double?) {
        if (aDouble != null) {
            bindDouble(index, aDouble)
        }


21&&(Sl(21),Al(0),Sl(1)),Al(5),Sl(30),Vl.endNonterminal("Pragma",Pl)}function kr(){xl(35),Al(251),Hl==21&&xl(21),Ba(),Al(10),Hl==21&&(xl(21),Al(0),xl(1)),Al(5),xl(30)}function Lr(){Vl.startNonterminal("PathExpr",Pl);switch(Hl){case 46:Sl(46),kl(285);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Nl(),Or()}break;case 47:Sl(47),kl(264),Nl(),Or();break;default:Or()}Vl.endNonterminal("PathExpr",Pl)}function Ar(){switch(Hl){case 46:xl(46),kl(285);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Mr()}break;case 47:xl(47),kl(264),Mr();break;default:Mr()}}function Or(){Vl.startNonterminal("RelativePathExpr",Pl),_r();for(;;){switch(Hl){case 26:Ll(265);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(264),Dr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,Pl,_l)}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:Sl(46);break;c


], v[v_b+8:v_b+9], v[a_c+64:a_c+79]     ; repeat:1x0, step:0x0, num_a_c:16
    v_mfma_f32_32x32x8bf16_1k v[a_c+80:a_c+95], v[v_a+6:v_a+7], v[v_b+10:v_b+11], v[a_c+80:a_c+95]     ; repeat:1x0, step:0x1, num_a_c:16
    ds_read2_b64 v[v_b+4+0:v_b+4+3], v[v_sld_b_os], offset0:144, offset1:180
    ds_read_b64 v[v_a+2:v_a+2+1], v[v_sld_a_os] offset:576
    v_mfma_f32_32x32x8bf16_1k v[a_c+96:a_c+111], v[v_a+6:v_a+7], v[v_b+12:v_b+13], v[a_c+96:a_c+111]     ; repeat:1x1, step:0x0, num_a_c:16
    v_mfma_f32_32x32x8bf16_1k v[a_c+112:a_c+127], v[v_a+6:v_a+7], v[v_b+14:v_b+15], v[a_c+112:a_c+127]     ; repeat:1x1, step:0x1, num_a_c:16
    s_branch L_igemm_wrw_gtcx3_nhwc_bf16_bx0_ex1_bt128x256x32_wt32x32x8_ws1x2_wr2x2_ta1x4x1x4_1x8x1x32_tb1x4x1x8_1x8x1x32_mfma_body
L_igemm_wrw_gtcx3_nhwc_bf16_bx0_ex1_bt128x256x32_wt32x32x8_ws1x2_wr2x2_ta1x4x1x4_1x8x1x32_tb1x4x1x8_1x8x1x32_mfma_finishing:
    v_mfma_f32_32x32x8bf16_1k v[a_c+64:a_c+79], v[v_a+6:v_a+7], v[v_b+8:v_b+9], v[a_c+64:a_c+79]     ; repeat:1x0, step:0x0, num_a_c:16
    v_mfma_f32_32x32x8bf16_1k v[a_c+80:a_c+95], v[v_a+6:v_a+7], v[v_b+10:v_b+11], v[a_c+80:a_c+95]     ; repeat:1x0, step:0x1, num_a_c:16

    v_mfma_f32_32x32x8bf16_1k v[a_c+96:a_c+111], v[v_a+6:v_a+7], v[v_b+12:v_b+13], v[a_c+96:a_c+111]     ; repeat:1x1, step:0x0, num_a_c:16
    v_mfma_f32_32x32x8bf16_1k v[a_c+112:a_c+127], v[v_a+6:v_a+7], v[v_b+14:v_b+15], v[a_c+112:a_c+127]     ; repeat:1x1, step:0x1, num_a_c:16

L_igemm_wrw_gtcx3_nhw


D1F38
	dw 0xA6040004 ; 800D1F3C
	dw 0x3C02800B ; 800D1F40
	dw 0x8442780A ; 800D1F44
	dw 0x00000000 ; 800D1F48
	dw 0x1040000A ; 800D1F4C
	dw 0x00000000 ; 800D1F50
	dw 0x0C005C24 ; 800D1F54
	dw 0x24040010 ; 800D1F58
	dw 0x922308FC ; 800D1F5C
	dw 0x00000000 ; 800D1F60
	dw 0x00430018 ; 800D1F64
	dw 0x96020002 ; 800D1F68
	dw 0x00004012 ; 800D1F6C
	dw 0x00481021 ; 800D1F70
	dw 0xA6020002 ; 800D1F74
	dw 0x8FBF003C ; 800D1F78
	dw 0x8FB20038 ; 800D1F7C
	dw 0x8FB10034 ; 800D1F80
	dw 0x8FB00030 ; 800D1F84
	dw 0x03E00008 ; 800D1F88
	dw 0x27BD0040 ; 800D1F8C


  getAll(): Promise<DatabaseResult<User[]>> {
    const query = {
      text: `
          SELECT
            *
          FROM
            users
          ORDER BY
            updated_at DESC
        `,
    };

    return this.database.query<User>(query);
  }

  /**
   * ユーザーの登録
   * @returns 登録したユーザー
   */
  create(user: User): Promise<DatabaseResult<number>> {
    const query = {
      text: `
        INSERT INTO
          users (name, hobby)
        VALUES
          ($1, $2)
        RETURNING id
      `,
      values: [user.name, user.hobby],
    };

    return this.database.insert(query);
  }
}
import { HttpClient, json } from "aurelia-fetch-client";
import { inject } from "aurelia-framework";
import { api } from "../config/api";

@inject(HttpClient)
export class ApplicantService {
  private http: HttpClient;
  applicants: [];
  countries: [];

  constructor(http: HttpClient) {
    http.configure((config) => {
      config
        .withBaseUrl(api.baseUrl)
        .withDefaults({
          credentials: "same-origin",
          headers: {
            Accept: "application/json",
            "X-Requested-With": "Fetch",
          },
        })
        .withInterceptor({
          request(request) {
            console.log(`Requesting ${request.method} ${request.url}`);
            return request; // you can return a modified Request, or you can short-circuit the request by returning a Response
          },
          response(response) {
            console.log(`Received ${response.status} ${response.url}`);
            return response; // you can return a modified Response
          },
        });
    });
    this.http = http;
  }

  addApplicant(applicant) {
    return this.http
      .fetch("applicant", {
        method: "post",
        body: json(applicant),
      })
      .then((response) => response.json())
      .then((responseMessage) => {
        return responseMessage;
      })
      .catch((error) => {
        console.log("Error saving applicant", error);
      });
  }

  deleteApplicant(id) {
    return this.http
      .fetch(`applicant/${id}`, {
        method: "delete",
      })
      .then((response) => response.json())
      .then((responseMessage) => {
        return responseMessage;
      })
      .catch((error) => {
        console.log("Error deleting applicant", error);
      });
  }

  updateApplicant(applicant) {
    return this.http
      .fetch(`applicant/${applicant.id}`, {
        method: "put",
        body: json(applicant),
      })
      .then((response) => response.json())
      .then((responseMessage) => {
        return responseMessage;
      })
      .catch((error) => {
        console.log("Error updating applicant", error);
      });
  }

  getApplicant() {
    return this.http
      .fetch("applicant", {
        method: "get",
      })
      .then((response) => response.json())
      .then((applicants) => {
        return applicants;
      })
      .catch((error) => {
        console.log("Error retrieving applicant.", error);
        return [];
      });
  }

  getApplicantById(id) {
    return this.http
      .fetch(`applicant/${id}`)
      .then((response) => response.json())
      .then((applicants) => {
        return applicants;
      })
      .catch((error) => {
        console.log


essible as "<extra_id_{%d}>" where "{%d}" is a number between 0 and extra_ids-1. Extra tokens are
            indexed from the end of the vocabulary up to beginning ("<extra_id_0>" is the last token in the vocabulary
            like in T5 preprocessing see `here
            <https://github.com/google-research/text-to-text-transfer-transformer/blob/9fd7b14a769417be33bc6c850f9598764913c833/t5/data/preprocessors.py#L2117>`__).
        additional_special_tokens (:obj:`List[str]`, `optional`):
            Additional special tokens used by the tokenizer.
    """

    vocab_files_names = VOCAB_FILES_NAMES
    pretrained_vocab_files_map = PRETRAINED_VOCAB_FILES_MAP
    max_model_input_sizes = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
    model_input_names = ["attention_mask"]
    slow_tokenizer_class = T5Tokenizer

    prefix_tokens: List[int] = []

    @add_start_docstrings(PREPARE_SEQ2SEQ_BATCH_DOCSTRING)


94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-


>

✅ 正常 ${active}

🔒 异常 ${abnormal}

⚠ 无令牌 ${noToken}

          <button class=\"btn btn-primary\" id=\"batch\" style=\"margin-left:auto\">批量检测</button>
          <button class=\"btn btn-secondary\" id=\"exportAll\">导出格式</button>
          <button class=\"btn btn-danger\" id=\"clearAll\">一键清空</button>

`;

      const groupBy = (pred) => creds.filter(pred).map(c => this.card(c, statuses[c.id])).join('') || '
无
';
      const okHtml = groupBy(c => (statuses[c.id] || c.status) === 'ACTIVE');
      const badHtml = groupBy(c => ['EXPIRED', 'NO_BALANCE', 'ERROR'].includes(statuses[c.id] || c.status));
      const emptyHtml = groupBy(c => (statuses[c.id] || c.status) === 'NO_TOKEN');

      const body = `

✅ 正常 ${active}
${okHtml}

🔒 异常 ${abnormal}
${badHtml}

⚠ 无令牌 ${noToken}
${emptyHtml}
`;

      const el = this.show(header + body);

      // 点击复制（单项）
      el.querySelectorAll('[data-copy]').forEach(x => x.onclick = () => { copy(x.dataset.copy); x.classList.add('copy-flash'); setTimeout(() => x.classList.remove('copy-flash'), 400); });
      // 点击标题复制整条凭证（JSON）
      el.querySelectorAll('[data-copy-cred]').forEach(h => h.onclick = () => {
        const id = h.getAttribute('data-copy-cred'); // 现在ID是字符串，不需要转数字
        const cred = creds.find(c => c.id === id);
        copy(JSON.stringify(cred, null, 2));
        h.classList.add('copy-flash'); setTimeout(() => h.classList.remove('copy-flash'), 400);
      });

      // 生成带时区 ISO 字符串（形如 2025-08-19T03:51:23.8457265+08:00）
      const isoWithTZ = (d=new Date()) => {
        const pad=n=>String(n).padStart(2,'0');
        const y=d.getFullYear(), m=pad(d.getMonth()+1), day=pad(d.getDate());
        const hh=pad(d.getHours()), mm=pad(d.getMinutes()), ss=pad(d.getSeconds());
        const ms=String(d.getMilliseconds()).padStart(3,'0');
        const off=-d.getTimezoneOffset();
        const sign=off>=0?'+':'-';
        const th=pad(Math.floor(Math.abs(off)/60)), tm=pad(Math.abs(off)%60);
        return `${y}-${m}-${day}T${hh}:${mm}:${ss}.${ms}0000${sign}${th}:${tm}`;
      };

      // 导出格式化数据
      const exportBtn =


FilesystemRoots

func TestScanner_GetFilesystemRoots(t *testing.T) {
	s := scanner.New()

	result, err := s.GetFilesystemRoots()
	require.NoError(t, err)
	require.NotNil(t, result)

	// Should always succeed
	assert.True(t, result.Success)
	assert.Empty(t, result.Error)
	assert.NotNil(t, result.Tree)

	// Check root node properties
	assert.Equal(t, "Filesystem", result.Tree.Name)
	assert.Empty(t, result.Tree.Path)
	assert.NotNil(t, result.Tree.Children)

	// Should have at least one child (filesystem root)
	assert.NotEmpty(t, result.Tree.Children)

	// Verify OS-specific behavior
	switch runtime.GOOS {
	case "windows":
		// Windows should have drive letters
		for _, child := range result.Tree.Children {
			assert.True(t, strings.HasSuffix(child.Path, ":\\") || strings.HasSuffix(child.Path, ":/"))
		}
	case "linux", "darwin":
		// Unix systems should have root directory or subdirectories
		foundRoot := false
		for _, child := range result.Tree.Children {
			if strings.HasPrefix(child.Path, "/") {
				foundRoot = true
				break
			}
		}
		assert.True(t, foundRoot, "Should find at least one Unix-style path")
	}
}

// Test ListDirectory

func TestScanner_ListDirectory_ValidDirectories(t *testing.T) {
	s := scanner.New()
	tempDir := createTempDirWithStructure(t)
	defer cleanupTempDir(t, tempDir)

	result, err := s.ListDirectory(tempDir)
	require.NoError(t, err)
	require.NotNil(t, result)

	assert.True(t, result.Success)
	assert.Empty(t, result.Error)
	assert.NotNil(t, result.Directories)

	// Find expected directories (excluding system directories)
	dirNames := make(map[string]bool)
	for _, dir := range result.Directories {
		dirNames[dir.Name] = true
	}

	// Should include Go projects
	assert.True(t, dirNames["go_project_with_mod"], "Should include directory with go.mod")
	assert.True(t, dirNames["go_project_with_git"], "Should include directory with .git and nested go.mod")

	// Should include directories with Go files
	assert.True(t, dirNames["regular_dir"], "Should include directory with .go files")

	// Should exclude system directories
	assert.False(t, dirNames["node_modules"], "Should exclude node_modules")
	assert.False(t, dirNames[".git"], "Should exclude .git")
	assert.False(t, dirNames["vendor"], "Should exclude vendor")

	// Should exclude empty directories (no Go content)
	assert.False(t, dirNames["empty_dir"], "Should exclude empty directories")
}

// setupGoProjectTestCase creates a test directory with specific Go project characteristics.
func setupGoProjectTestCase(t *testing.T, baseDir, testName string, hasGoMod, hasGitFolder bool) string {
	t.Helper()

	testDir := filepath.Join(baseDir, "test_"+strings.ReplaceAll(testName, " ", "_"))
	err := os.MkdirAll(testDir, 0755)
	require.NoError(t, err)

	if hasGoMod {
		goModContent := "module test\n\ngo 1.19\n"
		err = os.WriteFile(filepath.Join(testDir, "go.mod"), []byte(goModContent), 0644)
		require.NoError(t, err)
	}

	if hasGitFolder {
		setupGitFolder(t, testDir, !hasGoMod)
	}

	return testDir
}

// setupGitFolder creates a .git directory


/*
 * @author Valentin Simonov / http://va.lent.in/
 */

using TouchScript.InputSources;

namespace TouchScript.Pointers
{
    /// <summary>
    /// Static factory to create pointers.
    /// </summary>
    public static class PointerFactory
    {
        /// <summary>
        /// Creates a pointer of certain type attached to the input source.
        /// </summary>
        /// <param name="type">Pointer type to create.</param>
        /// <param name="input">Input source to attach the pointer to.</param>
        /// <returns></returns>
        public static


ratorSubManager::getSnippet");
    if (text.empty())
        return false;

    //ignore values in first few cells containing summaryoffset
    unsigned int i = offsetPairs[0]*2 + 1;

    double max_score1 = 0.0;
    double max_score2 = 0.0;
    int max_idx1 = -1;
    int max_idx2 = -1;
    int start_off1 = 0;
    int start_off2 = 0;
    int sen_off1 = 0;
    int sen_off2 = 0;

    std::vector<uint32_t> contained_term1;
    std::vector<uint32_t> contained_term2;

    for (; i < offsetPairs.size()-1; i+=2)
    {
        CharacterOffset start = offsetPairs[i+1];
        CharacterOffset end = offsetPairs[i];
        CharacterOffset start_off = offsetPairs[i+1];
        unsigned int tf = 0;
        double score = 0.0;

        UString subText;
        CharacterOffset length;

        if (offsetPairs[i+1] <= text.length())
            text.substr(subText, offsetPairs[i], offsetPairs[i+1]
                        - offsetPairs[i]);
        else
            continue;

        if (subText.empty())
            continue;

        length = subText.length();

        std::vector<uint32_t> contained_term;
        uint32_t termIndex=0;
        bool has_first_term = false;

        for (vector<UString>::const_iterator it = queryTerms.begin(); it
                != queryTerms.end(); it++, termIndex++)
        {
            CharacterOffset offset = 0;
            CharacterOffset s=-1, e=-1;
            bool first = true;
            //fetches character offset of query term string in text
            while ( ( (offset = subText.find(*it, offset, SM_IGNORE))
                      != izenelib::util::UString::NOT_FOUND ) && (offset < length)
                    && (tf < MAX_TERM_FREQUENCY))
            {
                if (termIndex == 0)
                {
                    has_first_term = true;
                }
                string str;
                if (contained_term.size()==0||contained_term[contained_term.size()-1]!=termIndex)
                    contained_term.push_back(termIndex);

                tf += 1;
                if (first)
                {
                    s = offset+ offsetPairs[i];
                    first = false;

                }
                e = offset + offsetPairs[i];
                offset += static_cast<CharacterOffset>(it->length());
            } //end while
            if ( s != (CharacterOffset)-1 && (start == 0 || s < start) )
                start = s;
            if ( start < start_off )
                start_off = start;
            if ( e > end )
                end = e;
        }
        if (queryTerms.size()>1&&contained_term1.size()==1&&contained_term.size()==1
                &&contained_term[0]==contained_term1[0])
            continue;
        if (queryTerms.size()>1&&contained_term2.size()==1&&contained_term.size()==1
                &&contained_term[0]==contained_term2[0])
            continue;
        score = computeScore_(tf, start, end);
        //keep track of two maximum score sentences
        if (has_first_term && score > max_score1)
        {
            max_score2 = max_score1;
            max_idx2 = max_idx1;
            contained_term2.swap(contained_term1);
            max_score1 = score;
            max_idx1 = i;
            contained_term1.swap(contained_term);

            start_off2 = start_off1;
            start_off1 = start


abase_log', 'file_log', 'remote_log', 'composite']:
            errors.append(f"无效的默认策略: {default_strategy}")

        # 检查文件路径
        if self.settings.file_log_path:
            log_dir = os.path.dirname(self.settings.file_log_path)
            if log_dir and not os.access(log_dir, os.W_OK):
                try:
                    os.makedirs(log_dir, exist_ok=True)
                except Exception:
                    errors.append(f"无法创建日志目录: {log_dir}")

        # 检查远程配置
        if default_strategy == 'remote_log' or 'remote_log' in str(self._config_cache):
            if not self.settings.remote_endpoint:
                errors.append("远程记录策略缺少endpoint配置")

        return errors

# 全局配置管理器实例
_config_manager: Optional[EventLogConfigManager] = None

def get_config_manager() -> EventLogConfigManager:
    """
    获取全局配置管理器实例

    Returns:
        EventLogConfigManager: 配置管理器实例
    """
    global _config_manager
    if _config_manager is None:
        _config_manager = EventLogConfigManager()
    return _config_manager

def init_config_manager(config_file: Optional[str] = None) -> EventLogConfigManager:
    """
    初始化配置管理器

    Args:
        config_file: 配置文件路径

    Returns:
        EventLogConfigManager: 配置管理器实例
    """
    global _config_manager
    _config_manager = EventLogConfigManager(config_file)
    return _config_manager


read_arg ra1;
    BOOST_CHECK_EQUAL(ra1.val(), read_arg::NONE);
    BOOST_CHECK_EQUAL(ra1.str(), "NONE");
    read_arg ra2(read_arg::NONE);
    BOOST_CHECK_EQUAL(ra2.val(), read_arg::NONE);
    BOOST_CHECK_EQUAL(ra2.str(), "NONE");
    read_arg ra3(read_arg::ALL);
    BOOST_CHECK_EQUAL(ra3.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra3.str(), "ALL");
    read_arg ra4(read_arg::RANDOM);
    BOOST_CHECK_EQUAL(ra4.val(), read_arg::RANDOM);
    BOOST_CHECK_EQUAL(ra4.str(), "RANDOM");
    read_arg ra5(read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra5.val(), read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra5.str(), "LAZYLOAD");
    cout << "ok" << endl;
}

QPID_AUTO_TEST_CASE(set_val)
{
    cout << test_filename << ".set_val: " << flush;
    read_arg ra;
    BOOST_CHECK_EQUAL(ra.val(), read_arg::NONE);
    BOOST_CHECK_EQUAL(ra.str(), "NONE");
    ra.set_val(read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.str(), "ALL");
    ra.set_val(read_arg::RANDOM);
    BOOST_CHECK_EQUAL(ra.val(), read_arg::RANDOM);
    BOOST_CHECK_EQUAL(ra.str(), "RANDOM");
    ra.set_val(read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra.val(), read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra.str(), "LAZYLOAD");
    cout << "ok" << endl;
}

QPID_AUTO_TEST_CASE(parse)
{
    cout << test_filename << ".parse: " << flush;
    read_arg ra;
    ra.parse("LAZYLOAD");
    BOOST_CHECK_EQUAL(ra.val(), read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra.str(), "LAZYLOAD");
    ra.parse("ALL");
    BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.str(), "ALL");
    BOOST_CHECK_THROW(ra.parse(""), po::invalid_option_value);
    BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.str(), "ALL");
    BOOST_CHECK_THROW(ra.parse("abc123"), po::invalid_option_value);
    BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.str(), "ALL");
    ra.parse("NONE");
    BOOST_CHECK_EQUAL(ra.val(), read_arg::NONE);
    BOOST_CHECK_EQUAL(ra.str(), "NONE");
    ra.parse("RANDOM");
    BOOST_CHECK_EQUAL(ra.val(), read_arg::RANDOM);
    BOOST_CHECK_EQUAL(ra.str(), "RANDOM");
    cout << "ok" << endl;
}

QPID_AUTO_TEST_CASE(istream_)
{
    cout << test_filename << ".istream_: " << flush;
    read_arg ra;
    istringstream ss1("LAZYLOAD", ios::in);
    ss1 >> ra;
    BOOST_CHECK_EQUAL(ra.val(), read_arg::LAZYLOAD);
    BOOST_CHECK_EQUAL(ra.str(), "LAZYLOAD");
    istringstream ss2("ALL", ios::in);
    ss2 >> ra;
    BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
    BOOST_CHECK_EQUAL(ra.str(), "ALL");
    istringstream ss3("NONE", ios::in);
    ss3 >> ra;
    BOOST_CHECK_EQUAL(ra.val(), read_arg::NONE);
    BOOST_CHECK_EQUAL(ra.str(), "NONE");
    i


)
        );
        assert_eq!(1, interrupting.read(&mut buf).unwrap());
    }

    #[test]
    fn std_bufreader_leaves_us_alone() {
        use std::io::BufRead;

        let mut naughty = io::BufReader::new(ShortRead::new(
            io::Cursor::new(b"1234567890"),
            vec![2, 3, 4, 5, 6].into_iter(),
        ));

        assert_eq!(b"12", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"2", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"345", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"45", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"5", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"6789", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"789", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"89", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"9", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"0", naughty.fill_buf().unwrap());
        naughty.consume(1);
        assert_eq!(b"", naughty.fill_buf().unwrap());
    }
}
<reponame>dcoles/advent-of-code<gh_stars>1-10
use std::collections::HashSet;
use std::fs::read_to_string;
use std::path::Path;
use std::io::Result;

fn main() {
    let input = read_input("input.txt").expect("Failed to read input");

    println!("[Part 1] Number of valid passphrases: {}", input.iter().filter(|p| valid(&p)).count());
    println!("[Part 2] Number of valid passphrases: {}", input.iter().filter(|p| no_anagrams(&p)).count());
}

fn read_input<P: AsRef<Path>>(path: P) -> Result<Vec<String>> {
    Ok(read_to_string(path)?.lines().map(|l| l.to_string()).collect())
}

fn valid(passphrase: &str) -> bool {
    let mut seen = HashSet::new();
    for word in passphrase.split_whitespace() {
        if seen.contains(word) {
            return false;
        }
        seen.insert(word);
    }
    true
}

fn no_anagrams(passphrase: &str) -> bool {
    let mut seen = HashSet::new();
    for word in passphrase.split_whitespace() {
        let mut word: Vec<char> = word.chars().collect();
        word.sort();
        if seen.contains(&word) {
            return false;
        }
        seen.insert(word);
    }
    true
}
pub mod local_sign_tx;
pub mod offer_create;
pub mod offer_cancel;
pub mod relation;
pub mod transaction;
pub mod set_brokerage;
use crate::{
    enemies::{
        EnemyGeneratorConfig,
        EnemyGeneratorId,
        EnemyGeneratorSpawn,
    },
    entities::{
        Entity,
        RegisteredBody,
        RegisteredBodyBuilder,
    },
    physics::{
        collision_category,
        PhysicsSimulation,
    },
};
use nalgebra::{
    Point2,
    Vector2,
};
use ncollide2d::{
    pipeline::object::


        bool m_isAutomated = false;
        CWindLayer m_windLayer;
        physical_quantities::CLength m_visibility;
        CPresentWeatherList m_presentWeathers;
        CCloudLayerList m_cloudLayers;
        physical_quantities::CTemperature m_temperature;
        physical_quantities::CTemperature m_dewPoint;
        physical_quantities::CPressure m_altimeter;

        SWIFT_METACLASS(
            CMetar,
            SWIFT_METAMEMBER(metarMessage),
            SWIFT_METAMEMBER(reportType),
            SWIFT_METAMEMBER(airport),
            SWIFT_METAMEMBER(reportDay),
            SWIFT_METAMEMBER(reportTime),
            SWIFT_METAMEMBER(isAutomated),
            SWIFT_METAMEMBER(windLayer),
            SWIFT_METAMEMBER(visibility),
            SWIFT_METAMEMBER(presentWeathers),
            SWIFT_METAMEMBER(cloudLayers),
            SWIFT_METAMEMBER(temperature),
            SWIFT_METAMEMBER(dewPoint),
            SWIFT_METAMEMBER(altimeter));
    };
} // namespace swift::misc::weather

Q_DECLARE_METATYPE(swift::misc::weather::CMetar)

#endif // SWIFT_MISC_AVIATION_METAR_H


t finishes its period ((2^32)-1). Use other functions if you require random
;; numbers to sometimes repeat values (which is often desirable)
;;
;; Details:
;;    This function uses <cpct_nextRandom_mxor_u32> to produce a sequence of
;; 32-bits pseudo-random numbers. It uses <cpct_mxor32_seed> to store the last returned
;; random 32-bits value: this is required to produce the next value in the sequence.
;;
;;    To know more about how these 32-bits numbers are produced, check
;; <cpct_nextRandom_mxor_u32> documentation.
;;
;; Destroyed Register values:
;;      AF, BC, DE, HL
;;
;; Required memory:
;;    57 bytes divided in,
;;    *  18 bytes (this function's code)
;;    * +35 bytes (from <cpct_nextRandom_mxor_u32> function's code)
;;    *  +4 bytes (from <cpct_mxor32_seed>)
;;
;; Time Measures:
;; (start code)
;;    Case     | microSecs (us) | CPU Cycles
;; -----------------------------------------
;;     Any     |      67        |    268
;; -----------------------------------------
;; (end code)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Globals required for linking
.globl _cpct_mxor32_seed
.globl cpct_nextRandom_mxor_u32_asm

_cpct_getRandom_mxor_u32::
cpct_getRandom_mxor_u32_asm::
   ;; Calculate next 32-bits random value using Marsaglia's XOR-shift
   ld   de, (_cpct_mxor32_seed+0)     ;; [6] |
   ld   hl, (_cpct_mxor32_seed+2)     ;; [5] | DE:HL = Current 32-bits seed

   call cpct_nextRandom_mxor_u32_asm  ;; [5+37] Calculate next 32-bits pseudo-random value

   ld   (_cpct_mxor32_seed+0), de     ;; [6] |
   ld   (_cpct_mxor32_seed+2), hl     ;; [5] | Store new value as next seed

   ret                                ;; [3] Returns next 32-bits random value (DE:HL)


github.com/globalsign/certlint/checks/extensions/extkeyusage"
	_ "github.com/globalsign/certlint/checks/extensions/keyusage"

	// Also check the parsed certificate (ext) keyusage content
	_ "github.com/globalsign/certlint/checks/certificate/extkeyusage"
	_ "github.com/globalsign/certlint/checks/certificate/keyusage"
)

func main() {
	var e = errors.New(nil)

	// Certificate with no keyusage
	der := []byte{0x30, 0x82, 0x5, 0x9, 0x30, 0x82, 0x3, 0xf1, 0xa0, 0x3, 0x2,
		0x1, 0x2, 0x2, 0xc, 0x58, 0x66, 0xb4, 0xcf, 0x2, 0x14, 0xdc, 0x22, 0x49, 0xc3,
		0x8e, 0x61, 0x30, 0xd, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x1,
		0xb, 0x5, 0x0, 0x30, 0x66, 0x31, 0xb, 0x30, 0x9, 0x6, 0x3, 0x55, 0x4, 0x6,
		0x13, 0x2, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17, 0x6, 0x3, 0x55, 0x4, 0xa, 0x13,
		0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e,
		0x76, 0x2d, 0x73, 0x61, 0x31, 0x3c, 0x30, 0x3a, 0x6, 0x3, 0x55, 0x4, 0x3,
		0x13, 0x33, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20,
		0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
		0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41,
		0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47,
		0x32, 0x30, 0x1e, 0x17, 0xd, 0x31, 0x36, 0x30, 0x39, 0x31, 0x35, 0x30, 0x39,
		0x32, 0x37, 0x30, 0x30, 0x5a, 0x17, 0xd, 0x31, 0x39, 0x30, 0x38, 0x32, 0x37,
		0x31, 0x32, 0x31, 0x38, 0x31, 0x32, 0x5a, 0x30, 0x5d, 0x31, 0xb, 0x30, 0x9,
		0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2, 0x4e, 0x4f, 0x31, 0xd, 0x30, 0xb, 0x6,
		0x3, 0x55, 0x4, 0x8, 0x13, 0x4, 0x4f, 0x73, 0x6c, 0x6f, 0x31, 0xd, 0x30, 0xb,
		0x6, 0x3, 0x55, 0x4, 0x7, 0x13, 0x4, 0x4f, 0x73, 0x6c, 0x6f, 0x31, 0x18, 0x30,
		0x16, 0x6, 0x3, 0x55, 0x4, 0xa, 0x13, 0xf, 0x49, 0x6d, 0x65, 0x6e, 0x74, 0x6f,
		0x20, 0x4e, 0x6f, 0x72, 0x67, 0x65, 0x20, 0x41, 0x53, 0x31, 0x16, 0x30, 0x14,
		0x6, 0x3, 0x55, 0x4, 0x3, 0x13, 0xd, 0x6e, 0x65, 0x77, 0x2e, 0x69, 0x6d, 0x65,
		0x6e, 0x74, 0x6f, 0x2e, 0x6e, 0x6f, 0x30, 0x82, 0x1, 0x22, 0x30, 0xd, 0x6,
		0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1,


eared but SQL failed")
        sys.exit(1)
    else:
        print("❌ FAILURE: Both SQL database and vector store clearing failed")
        print("🔧 Please check the logs and try again")
        logger.error("Admin operation: Both SQL and vector store clearing failed")
        sys.exit(1)

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print("\n\n❌ Operation cancelled by user (Ctrl+C)")
        sys.exit(130)
    except Exception as e:
        print(f"\n❌ Unexpected error: {e}")
        logger.error(f"Admin script unexpected error: {e}")
        sys.exit(1)


0 critical', 'p0', 'p0-critical'],
  'P1': ['p1 high', 'p1', 'p1-high'],
  'P2': ['p2 medium', 'p2', 'p2-medium'],
  'P3': ['p3 low', 'p3', 'p3-low'],
  'status-blocked': ['blocked', 'state: blocked'],
  'status-needs-info': [
    'needs info',
    'needs-info',
    'state: needs info',
    'waiting for customer response',
  ],
  'type-bug': ['bug', 'type: bug'],
  'type-code-health': ['code health'],
  'type-documentation': ['docs', 'documentation', 'Type: documentation'],
  'type-enhancement': [
    'enhancement',
    'feature',
    'feature-request',
    'type: enhancement',
  ],
  'type-infra': ['github_actions', 'infra', 'infrastructure'],
  'type-performance': ['performance', 'type: perf'],
  'type-question': ['question', 'type: question'],
  'type-ux': ['ux'],
};

/// These label names are grandfathered in.
final Set<String> allowList = {
  'cla: no',
  'cla: yes',
  'dependencies',
  'Epic',
  'good first issue',
  'meta',
  'P4',
  'S0',
  'S1',
  'S2',
  'S3',
};

/// The cannonical set of dart-lang labels.
const String templateRepoSlug = 'dart-lang/.github';

/// If a `package:<name>` label exists, ensure it has this color.
final String packageColor = '4774bc';

class LabelsUpdateCommand extends ReportCommand {
  LabelsUpdateCommand()
      : super('labels-update',
            'Audit and update the labels used by dart-lang repos.') {
    argParser.addFlag(
      'dry-run',
      aliases: ['audit'],
      negatable: false,
      help: "Audit the labels used but don't make any changes to the given "
          'repos.',
    );
    argParser.addFlag(
      'apply-changes',
      aliases: ['apply'],
      negatable: false,
      help: 'Rename, edit, and add labels to bring them in line with those '
          "at $templateRepoSlug.\nWARNING: this will make changes to a repo's "
          'labels; please preview the changes first by running without '
          "'--apply-changes'.",
    );
  }

  @override
  String get invocation => '${super.invocation} <repo-org/repo-name>';

  @override
  Future<int> run() async {
    var dryRun = argResults!['dry-run'] as bool;
    var applyChanges = argResults!['apply-changes'] as bool;
    var rest = argResults!.rest;

    if (!dryRun && !applyChanges) {
      stdout.writeln(usage);
      return 0;
    }

    if (rest.isEmpty) {
      stderr.writeln('Please provide a repo slug (e.g. dart-lang/foo_repo).');
      stderr.writeln();
      stderr.writeln(usage);
      return 1;
    }

    return await performAudit(rest, alsoFix: applyChanges);
  }

  Future<int> performAudit(
    List<String> repoSlugs, {
    required bool alsoFix,
  }) async {
    final templateRepo = RepositorySlug.full(templateRepoSlug);

    var templateLabels =
        await reportRunner.github.issues.listLabels(templateRepo).toList()
          ..sort(labelCompare);

    print('## template repo: $templateRepo');
    for (var label in templateLabels) {
      print('  ${label.name} 0x${label.color} "${label.description}"');
    }

    final templateSet = templateLabels.map((l) => l.name).toSet();

    for (var slug in repoSlugs) {
      print('');
      print('## $slug (https://github.com/$slug/labels)');

      final labelsEncountered = <String>{};

      var labels = await reportRunner.github.issues


, 7, 5, 3]
  //
  // This now has a 1-into-3 in the high half! Instead, we do two shuffles:
  //
  // Input: [a, b, c, d, e, f, g, h] PSHUFHW[0,2,1,3]-> [a, b, c, d, e, g, f, h]
  // Mask:  [3, 7, 1, 0, 2, 7, 3, 5] -----------------> [3, 7, 1, 0, 2, 7, 3, 6]
  //
  // Input: [a, b, c, d, e, g, f, h] -PSHUFD[0,2,1,3]-> [a, b, e, g, c, d, f, h]
  // Mask:  [3, 7, 1, 0, 2, 7, 3, 6] -----------------> [5, 7, 1, 0, 4, 7, 5, 6]
  //
  // The result is fine to be handled by the generic logic.
  auto balanceSides = [&](ArrayRef<int> AToAInputs, ArrayRef<int> BToAInputs,
                          ArrayRef<int> BToBInputs, ArrayRef<int> AToBInputs,
                          int AOffset, int BOffset) {
    assert((AToAInputs.size() == 3 || AToAInputs.size() == 1) &&
           "Must call this with A having 3 or 1 inputs from the A half.");
    assert((BToAInputs.size() == 1 || BToAInputs.size() == 3) &&
           "Must call this with B having 1 or 3 inputs from the B half.");
    assert(AToAInputs.size() + BToAInputs.size() == 4 &&
           "Must call this with either 3:1 or 1:3 inputs (summing to 4).");

    bool ThreeAInputs = AToAInputs.size() == 3;

    // Compute the index of dword with only one word among the three inputs in
    // a half by taking the sum of the half with three inputs and subtracting
    // the sum of the actual three inputs. The difference is the remaining
    // slot.
    int ADWord = 0, BDWord = 0;
    int &TripleDWord = ThreeAInputs ? ADWord : BDWord;
    int &OneInputDWord = ThreeAInputs ? BDWord : ADWord;
    int TripleInputOffset = ThreeAInputs ? AOffset : BOffset;
    ArrayRef<int> TripleInputs = ThreeAInputs ? AToAInputs : BToAInputs;
    int OneInput = ThreeAInputs ? BToAInputs[0] : AToAInputs[0];
    int TripleInputSum = 0 + 1 + 2 + 3 + (4 * TripleInputOffset);
    int TripleNonInputIdx =
        TripleInputSum - std::accumulate(TripleInputs.begin(), TripleInputs.end(), 0);
    TripleDWord = TripleNonInputIdx / 2;

    // We use xor with one to compute the adjacent DWord to whichever one the
    // OneInput is in.
    OneInputDWord = (OneInput / 2) ^ 1;

    // Check for one tricky case: We're fixing a 3<-1 or a 1<-3 shuffle for AToA
    // and BToA inputs. If there is also such a problem with the BToB and AToB
    // inputs, we don't try to fix it necessarily -- we'll recurse and see it in
    // the next pass. However, if we have a 2<-2 in the BToB and AToB inputs, it
    // is essential that we don't *create* a 3<-1 as then we might oscillate.
    if (BToBInputs.size() == 2 && AToBInputs.size() == 2) {
      // Compute how many inputs will be flipped by swapping these DWords. We
      // need
      // to balance this to ensure we don't form a 3


(params: &Params, rhosq: f64) -> (f64, f64, f64) {
    // Reformulate in terms of a normalized input:  beta = rho^2 / delta^2
    let beta = rhosq / (params.delta * params.delta);
    let beta_d_rhosq = f64::recip(params.delta * params.delta);

    // f(rho) = exp(-beta)(C_0 + C_1 * beta + C_2 * beta^2)
    let [C0, C2, C4] = params.C2N;
    let poly = C0 + beta * (C2 + beta * C4);
    let poly_d_beta = C2 + 2.0 * beta * C4;
    let poly_dd_beta_beta = 2.0 * C4;
    dbg!("Csum: {:.9}", poly);

    let exp = f64::exp(-beta);
    let exp_d_beta = -exp;
    let exp_dd_beta_beta = exp;
    dbg!("expbeta: {:.9}", exp);

    let value = exp * poly;
    let d_beta = exp_d_beta * poly + exp * poly_d_beta;
    let dd_beta_beta = {
        exp_dd_beta_beta * poly
            + 2.0 * exp_d_beta * poly_d_beta
            + exp * poly_dd_beta_beta
    };
    dbg!("frho: {:.9}", value);

    // Reformulate back as a function of rhosq
    let d_rhosq = d_beta * beta_d_rhosq;
    let dd_rhosq_rhosq = dd_beta_beta * beta_d_rhosq * beta_d_rhosq;
    (value, d_rhosq, dd_rhosq_rhosq)
}

/// The repulsive part of the potential f(rho), but calculates rho from input distance vector
/// r, and unit normal n
fn crespi_f(params: &Params, r: V3) -> (f64, V3, M33) {
    // first we need the transverse distances (aka rho^2)
    let (rhosq, rhosq_d_r, rhosq_dd_r_r) = rho_squared(r);

    // then we calculate f itself
    let (f, f_d_rhosq, f_dd_rhosq_rhosq) = crespi_fp(params, rhosq);

    let value = f;
    let d_r = f_d_rhosq * rhosq_d_r;
    let dd_r_r = f_d_rhosq * rhosq_dd_r_r + f_dd_rhosq_rhosq * outer(rhosq_d_r, rhosq_d_r);

    (value, d_r, dd_r_r)
}

/// `C + fij + fji`
fn unscaled_repulsive_part(params: &Params, distsq: f64, r: V3) -> (f64, V3, M33) {
    debug_assert_eq!(distsq, r.sqnorm());

    // calculate f(rho_ij) for ij and ji
    let (fij, fij_d_r, fij_dd_r_r) = crespi_f(params, r);
    let (fji, fji_d_r, fji_dd_r_r) = crespi_f(params, r);

    let value = params.C + fij + fji;
    let d_r = fij_d_r + fji_d_r;
    let dd_r_r = fij_dd_r_r + fji_dd_r_r;
    dbg!("VR: {:.9}", value);

    (value, d_r, dd_r_r)
}

/// The repulsive part of the potential.
fn scaled_repulsive_part(params: &Params, distsq: f64, rdata: RData, r: V3) -> (f64, V3, M33) {
    // the sum factor
    let RData { dist, dist_d_r, dist_dd_r_r } = rdata;
    let (rep, rep_d_r, rep_dd_r_r) = unscaled_repulsive_part(params, distsq, r);

    // the exponential scaling factor


m)
data = pickle.load(open('banner.p', 'rb'))
line = 0

for i in data:
    xpos = 0
    for j in i:
        if j[0] == " ":
            draw.line([(xpos,line), (xpos+j[1],line)], 255)
        xpos += j[1]
    line += 1
im.save("banner.bmp")
```
以上代码需要安装`Image`模块后才能实现，关于该模块的安装和学习在[课程Python图片转字符画](https://www.shiyanlou.com/courses/370)和[课程Python破解验证码](https://www.shiyanlou.com/courses/364)里面有详细介绍，欢迎各位学完那些课程再来查看以上代码是否更加熟悉。

当然，不一定要直接转成图片文件，也可以直接把字符串的输出结果写入到文件中。

## 七、作业

请完成以下作业，并写入实验报告，不一定要做出结果，但是一定要写出思路以及对这门课程的总结：

![此处输入图片的描述](https://dn-anything-about-doc.qbox.me/document-uid73259labid1295timestamp1439372984631.png/wm)

### 问题：请访问[挑战题链接](http://www.pythonchallenge.com/pc/def/channel.html)查看源代码，找到通往下一个网址的链接。（提示：与`zip`有关）# 真实的Python字节码

## 一、Python字节码

本节课开始我们要接触真实的Python字节码了！Python字节码与我们之前自己定义的指令的不同之处在于它并不是用一个长长的名字来表示一个指令而是用一个字节。

让我们实地观察一下它，打开python交互环境，先定义一个方法：

    >>> def cond():
    ...     x = 3
    ...     if x < 5:
    ...         return 'yes'
    ...     else:
    ...         return 'no'

Python会在运行时暴露大量的内部信息，拿定义的cond方法举例，``cond.__code__``是其``code object``，``cond.__code__.co_code`` 是其字节码，它们也许对你写代码一点用都没有，但这里我们可以通过它们了解Python的运行机制。

    >>> cond.__code__.co_code  # 字节码组成的字节串
    b'd\x01\x00}\x00\x00|\x00\x00d\x02\x00k\x00\x00r\x16\x00d\x03\x00Sd\x04\x00Sd\x00
       \x00S'
    >>> list(bytearray(cond.__code__.co_code))  # 将每个字节转换成数字
    [100, 1, 0, 125, 0, 0, 124, 0, 0, 100, 2, 0, 107, 0, 0, 114, 22, 0, 100, 3, 0, 83,
     100, 4, 0, 83, 100, 0, 0


import pymadx

import halosigma as _h

# definitions
primSig = _h.primSig
secoSig = _h.secoSig
tertSig = _h.tertSig
openSig = _h.openSig
primMat = 'carbon'
secoMat = 'copper'
tertMat = 'tungsten'
filename = 'collimatorSettings.dat'

# load optics
o = pymadx.Data.Tfs("../madx/ring.tfs.gz")
rcols = o.GetElementsOfType('RCOLLIMATOR')

# make up a simple text file with NAME MATERIAL XSIZE YSIZE on each line separated by white space
# this is fairly fictional and roughly expanding for primary, secondary and tertiary collimators
# the python code here is just a bit if elsey but does the right thing
# in practice the user may have their own settings or source of collimator settings

# loop over collimators we find and make up sizes from optics in nsigma
coldefs = []
for col in rcols:
    name  = col['NAME']
    index = o.IndexFromName(name)
    data  = o[index-1] # element before to get the optics at the start of the collimator
    sigx  = data['SIGMAX']
    sigy  = data['SIGMAY']
    print(name, sigx, 6*sigx)

    horizontal = 'x' in name.lower()
    vertical   = not horizontal
    primary    = 'prim' in name.lower()
    tertiary   = 'tert' in name.lower()
    print(name, 'is primary', primary)

    sigval = primSig if primary else secoSig
    if tertiary:
        sigval = tertSig
    print('sigval', sigval)
    xhgap  = sigval if horizontal else openSig
    if tertiary:
        xhgap = sigval
    print('x sigmas', xhgap)
    yhgap  = sigval if vertical else openSig
    if tertiary:
        yhgap = sigval
    print('y sigmas', yhgap)
    xhgap *= sigx
    yhgap *= sigy

    print('xhgap', xhgap)
    print('yhgap', yhgap)
    mat    = primMat if primary else secoMat
    if tertiary:
        mat = tertMat

    result = '\t'.join([name.ljust(10), mat.ljust(15), "{0:1.8e}".format(xhgap), "{0:1.8e}".format(yhgap)]) + '\n'

    coldefs.append(result)

# write a wee text file
f = open(filename, 'w')
f.write("# Collimator Settings\n")
# write a header so we know what's going on in the file
f.write('\t'.join(['name'.ljust(10), 'material', 'xsize[m]', 'ysize[m]'])+'\n')
# write the list of lines
for d in coldefs:
    f.write(d)
f.close()


persistence.Id
import javax.persistence.IdClass
import javax.persistence.Table

/**
 * An entity representing a member info as visible by the current VNode.
 */
@Entity
@Table(name = DbSchema.VNODE_MEMBER_INFO)
@IdClass(MemberInfoEntityPrimaryKey::class)
@Suppress("LongParameterList")
class MemberInfoEntity(
    @Id
    @Column(name = "group_id", nullable = false, updatable = false)
    var groupId: String,

    @Id
    @Column(name = "member_name", nullable = false, updatable = false)
    var memberX500Name: String,

    @Id
    @Column(name = "is_pending", nullable = false, updatable = false)
    var isPending: Boolean,

    @Column(nullable = false)
    var status: String,

    @Column(name = "modified_time", nullable = false)
    var modifiedTime: Instant,

    @Column(name = "member_context", nullable = false)
    var memberContext: ByteArray,

    @Column(name = "member_signature_key", nullable = false, columnDefinition = "BLOB")
    var memberSignatureKey: ByteArray,

    @Column(name = "member_signature_content", nullable = false, columnDefinition = "BLOB")
    var memberSignatureContent: ByteArray,

    // TODO Are we going to be storing `ParameterizedSignatureSpec` here?
    //  If so need to consider saving extra signature spec parameters as recorded in https://r3-cev.atlassian.net/browse/CORE-11685
    @Column(name = "member_signature_spec", nullable = false)
    var memberSignatureSpec: String,

    @Column(name = "mgm_context", nullable = false)
    var mgmContext: ByteArray,

    @Column(name = "serial_number", nullable = false)
    var serialNumber: Long,

    @Column(name = "is_deleted", nullable = false, updatable = true)
    var isDeleted: Boolean = false,
) {
    override fun equals(other: Any?): Boolean {
        if (other === this) return true
        if (other == null) return false
        if (other !is MemberInfoEntity) return false
        return other.groupId == this.groupId &&
            MemberX500Name.parse(other.memberX500Name) == MemberX500Name.parse(this.memberX500Name) &&
            other.isPending == this.isPending
    }

    override fun hashCode(): Int {
        var result = groupId.hashCode()
        result = 31 * result + memberX500Name.hashCode()
        result = 31 * result + isPending.hashCode()
        return result
    }
}

@Embeddable
data class MemberInfoEntityPrimaryKey(
    var groupId: String,
    var memberX500Name: String,
    var isPending: Boolean,
) : Serializable
package net.corda.kotlin

import java.util.LinkedList

@Suppress("unused")
class KotlinExample : Base(), ExtraApi {
    private val privateField: String = "Hello Example!"

    private fun privateFunction(data: String): String = data

    override val secondVal: String?
        get() = null
    override var secondVar: String? = null

    override fun tell(name: String, message: String?): String {
        return "Say '$message' to $name"
    }

    override val firstVal: String = "Override First Val"
    override var firstVar: String = "Override First Var"

    override val primitiveIntVal: Int = 101

    override fun greet(name: String) {
        println("Hello, $name")
    }

    @Suppress("unused_parameter")
    override var Collection<Any>.apiShow: String
        get() = "Api Show Getter"
        set(value) {}

    override fun ByteArray.testFunc(obj: Any): Boolean = false

    override fun shareApi(item: Any) {
        println("Enjoy $item")
    }

    override fun anything(): LinkedList<Any> {
        return LinkedList()
    }

    override fun anything(index: Int) {
    }

    override fun anything(message: String, vararg params: Any?) = listOf(message