id,
      'created_time': createdTime,
      'phone_number': phoneNumber,
    }.withoutNulls,
  );

  return firestoreData;
}

class UsersRecordDocumentEquality implements Equality<UsersRecord> {
  const UsersRecordDocumentEquality();

  @override
  bool equals(UsersRecord? e1, UsersRecord? e2) {
    return e1?.email == e2?.email &&
        e1?.displayName == e2?.displayName &&
        e1?.photoUrl == e2?.photoUrl &&
        e1?.uid == e2?.uid &&
        e1?.createdTime == e2?.createdTime &&
        e1?.phoneNumber == e2?.phoneNumber;
  }

  @override
  int hash(UsersRecord? e) => const ListEquality().hash([
        e?.email,
        e?.displayName,
        e?.photoUrl,
        e?.uid,
        e?.createdTime,
        e?.phoneNumber
      ]);

  @override
  bool isValidKey(Object? o) => o is UsersRecord;
}
import 'package:provider/provider.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';

import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_web_plugins/url_strategy.dart';
import 'package:firebase_core/firebase_core.dart';
import 'auth/firebase_auth/firebase_user_provider.dart';
import 'auth/firebase_auth/auth_util.dart';

import 'backend/firebase/firebase_config.dart';
import 'flutter_flow/flutter_flow_theme.dart';
import 'flutter_flow/flutter_flow_util.dart';
import 'flutter_flow/internationalization.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'flutter_flow/nav/nav.dart';
import 'index.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  usePathUrlStrategy();
  await initFirebase();

  await FlutterFlowTheme.initialize();

  final appState = FFAppState(); // Initialize FFAppState
  await appState.initializePersistedState();

  runApp(ChangeNotifierProvider(
    create: (context) => appState,
    child: MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  // This widget is the root of your application.
  @override
  State<MyApp> createState() => _MyAppState();

  static _MyAppState of(BuildContext context) =>
      context.findAncestorStateOfType<_MyAppState>()!;
}

class _MyAppState extends State<MyApp> {
  Locale? _locale;
  ThemeMode _themeMode = FlutterFlowTheme.themeMode;

  late Stream<BaseAuthUser> userStream;

  late AppStateNotifier _appStateNotifier;
  late GoRouter _router;

  final authUserSub = authenticatedUserStream.listen((_) {});

  @override
  void initState() {
    super.initState();

    _appStateNotifier = AppStateNotifier.instance;
    _router = createRouter(_appStateNotifier);
    userStream = autoguardFirebaseUserStream()
      ..listen((user) => _appStateNotifier.update(user));
    jwtTokenStream.listen((_) {});
    Future.delayed(
      Duration(milliseconds: 3000),
      () => _appStateNotifier.stopShowingSplashImage(),
    );
  }

  @override
  void dispose() {
    authUserSub.cancel();

    super.dispose();
  }

  void setLocale(String language) {
    setState(() => _locale = createLocale(language));
  }

  void setThemeMode(ThemeMode mode) => setState(() {
        _themeMode = mode;
        FlutterFlowTheme.saveThemeMode(mode);
      });

  @override
  Widget build(BuildContext context) {
    return MaterialApp


`)
}

// GetTaskFolder enumerates the Task Schedule database for all task sub folders and currently
// registered tasks under the folder specified, if it exists. If it doesn't exist, nil will be
// returned in place of the task folder.
func (t TaskService) GetTaskFolder(path string) (TaskFolder, error) {
	if path[0] != '\\' {
		return TaskFolder{}, ErrInvalidPath
	}

	var topFolderObj *ole.IDispatch
	if path == `\` {
		topFolderObj = t.rootFolderObj
	} else {
		topFolder, err := oleutil.CallMethod(t.taskServiceObj, "GetFolder", path)
		if err != nil {
			return TaskFolder{}, fmt.Errorf("error getting folder %s: %v", path, getTaskSchedulerError(err))
		}
		topFolderObj = topFolder.ToIDispatch()
		defer topFolderObj.Release()
	}

	// get tasks from the top folder
	res, err := oleutil.CallMethod(topFolderObj, "GetTasks", int(TASK_ENUM_HIDDEN))
	if err != nil {
		return TaskFolder{}, fmt.Errorf("error getting tasks of folder %s: %v", path, getTaskSchedulerError(err))
	}
	topFolderTaskCollection := res.ToIDispatch()
	defer topFolderTaskCollection.Release()
	topFolder := TaskFolder{Path: `\`}
	err = oleutil.ForEach(topFolderTaskCollection, func(v *ole.VARIANT) error {
		task := v.ToIDispatch()

		registeredTask, path, err := parseRegisteredTask(task)
		if err != nil {
			return fmt.Errorf("error parsing registered task %s: %v", path, err)
		}
		topFolder.RegisteredTasks = append(topFolder.RegisteredTasks, registeredTask)

		return nil
	})
	if err != nil {
		return TaskFolder{}, err
	}

	res, err = oleutil.CallMethod(topFolderObj, "GetFolders", 0)
	if err != nil {
		return TaskFolder{}, fmt.Errorf("error getting subfolders of folder %s: %v", path, getTaskSchedulerError(err))
	}
	taskFolderList := res.ToIDispatch()
	defer taskFolderList.Release()

	// recursively enumerate folders and tasks
	var initEnumTaskFolders func(*TaskFolder) func(*ole.VARIANT) error
	initEnumTaskFolders = func(parentFolder *TaskFolder) func(*ole.VARIANT) error {
		var enumTaskFolders func(*ole.VARIANT) error
		enumTaskFolders = func(v *ole.VARIANT) error {
			taskFolder := v.ToIDispatch()
			defer taskFolder.Release()

			name := oleutil.MustGetProperty(taskFolder, "Name").ToString()
			path := oleutil.MustGetProperty(taskFolder, "Path").ToString()
			res, err := oleutil.CallMethod(taskFolder, "GetTasks", int(TASK_ENUM_HIDDEN))
			if err != nil {
				return fmt.Errorf("error getting tasks of folder %s: %v", path, getTaskSchedulerError(err))
			}
			taskCollection := res.ToIDispatch()
			defer taskCollection.Release()

			taskSubFolder := &TaskFolder{
				Name: name,
				Path: path,
			}

			err = oleutil.ForEach(taskCollection, func(v *ole.VARIANT) error {
				task := v.ToIDispatch()

				registeredTask, path, err := parseRegisteredTask(task)
				if err != nil {
					return fmt.Errorf("error parsing registered task %s: %v", path, err)
				}
				taskSubFolder.RegisteredTasks = append(taskSubFolder.RegisteredTasks, registeredTask)

				return nil
			})
			if err != nil {
				return err
			}

			parentFolder.SubFolders = append(parentFolder.SubFolders, taskSubFolder)

			res, err = oleutil.CallMethod(taskFolder, "GetFolders", 0)
			if err != nil {
				return fmt.Errorf("error getti


Y - fromY);
      otherToY = image.getHeight() - 1;
    }
    otherToX = (int) (fromX + (otherToX - fromX) * scale);

    result += sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);

    // Middle pixel is double-counted this way; subtract 1
    return result - 1.0f;
  }

  /**
   *
This method traces a line from a point in the image, in the direction towards another point.
   * It begins in a black region, and keeps going until it finds white, then black, then white again.
   * It reports the distance from the start to this point.

   *
   *
This is used when figuring out how wide a finder pattern is, when the finder pattern
   * may be skewed or rotated.

   */
  private float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY) {
    // Mild variant of Bresenham's algorithm;
    // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
    boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);
    if (steep) {
      int temp = fromX;
      fromX = fromY;
      fromY = temp;
      temp = toX;
      toX = toY;
      toY = temp;
    }

    int dx = Math.abs(toX - fromX);
    int dy = Math.abs(toY - fromY);
    int error = -dx / 2;
    int xstep = fromX < toX ? 1 : -1;
    int ystep = fromY < toY ? 1 : -1;

    // In black pixels, looking for white, first or second time.
    int state = 0;
    // Loop up until x == toX, but not beyond
    int xLimit = toX + xstep;
    for (int x = fromX, y = fromY; x != xLimit; x += xstep) {
      int realX = steep ? y : x;
      int realY = steep ? x : y;

      // Does current pixel mean we have moved white to black or vice versa?
      // Scanning black in state 0,2 and white in state 1, so if we find the wrong
      // color, advance to next state or end if we are in state 2 already
      if ((state == 1) == image.get(realX, realY)) {
        if (state == 2) {
          return MathUtils.distance(x, y, fromX, fromY);
        }
        state++;
      }

      error += dy;
      if (error > 0) {
        if (y == toY) {
          break;
        }
        y += ystep;
        error -= dx;
      }
    }
    // Found black-white-black; give the benefit of the doubt that the next pixel outside the image
    // is "white" so this last point at (toX+xStep,toY) is the right ending. This is really a
    // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.
    if (state == 2) {
      return MathUtils.distance(toX + xstep, toY, fromX, fromY);
    }
    // else we didn't find even black-white-black; no estimate is really possible
    return Float.NaN;
  }

  /**
   *
Attempts to locate an alignment pattern in a limited region of the image, which is
   * guessed to contain it. This method uses {@link AlignmentPattern}.

   *
   * @param overallEstModuleSize estimated module size so far
   * @param estAlignmentX x coordinate of center of area probably containing alignment pattern
   * @param estAlignmentY y coordinate of above
   * @param allowanceFactor number of pixels in all directions to search from the center
   * @return {@link AlignmentPattern} if found, or null otherwise
   * @throws NotFoundException if an unexpected error occurs during detection
   */
  protected final AlignmentPattern findAlignmentInRegion(float overallEstModuleSize,


];
  var int32x4;

  for (var test in tests) {
    var input = test[0];
    var expected = test[1];

    int32x4 = new Int32x4(input, 2, 3, 4);
    Expect.equals(expected, int32x4.x);
    Expect.equals(2, int32x4.y);
    Expect.equals(3, int32x4.z);
    Expect.equals(4, int32x4.w);

    int32x4 = new Int32x4(1, input, 3, 4);
    Expect.equals(1, int32x4.x);
    Expect.equals(expected, int32x4.y);
    Expect.equals(3, int32x4.z);
    Expect.equals(4, int32x4.w);

    int32x4 = new Int32x4(1, 2, input, 4);
    Expect.equals(1, int32x4.x);
    Expect.equals(2, int32x4.y);
    Expect.equals(expected, int32x4.z);
    Expect.equals(4, int32x4.w);

    int32x4 = new Int32x4(1, 2, 3, input);
    Expect.equals(1, int32x4.x);
    Expect.equals(2, int32x4.y);
    Expect.equals(3, int32x4.z);
    Expect.equals(expected, int32x4.w);
  }
}

// TODO: Maybe move to `int32x4_arithmetic_test.dart`.
void testBitOperators() {
  var m = Int32x4(0xAAAAAAA, 0xAAAAAAA, 0xAAAAAAA, 0xAAAAAAA);
  var n = Int32x4(0x5555555, 0x5555555, 0x5555555, 0x5555555);
  Expect.equals(0xAAAAAAA, m.x);
  Expect.equals(0xAAAAAAA, m.y);
  Expect.equals(0xAAAAAAA, m.z);
  Expect.equals(0xAAAAAAA, m.w);
  Expect.equals(0x5555555, n.x);
  Expect.equals(0x5555555, n.y);
  Expect.equals(0x5555555, n.z);
  Expect.equals(0x5555555, n.w);
  Expect.equals(true, n.flagX);
  Expect.equals(true, n.flagY);
  Expect.equals(true, n.flagZ);
  Expect.equals(true, n.flagW);
  var o = m | n; // or
  Expect.equals(0xFFFFFFF, o.x);
  Expect.equals(0xFFFFFFF, o.y);
  Expect.equals(0xFFFFFFF, o.z);
  Expect.equals(0xFFFFFFF, o.w);
  Expect.equals(true, o.flagX);
  Expect.equals(true, o.flagY);
  Expect.equals(true, o.flagZ);
  Expect.equals(true, o.flagW);
  o = m & n; // and
  Expect.equals(0x0, o.x);
  Expect.equals(0x0, o.y);
  Expect.equals(0x0, o.z);
  Expect.equals(0x0, o.w);
  n = n.withX(0xAAAAAAA);
  n = n.withY(0xAAAAAAA);
  n = n.withZ(0xAAAAAAA);
  n = n.withW(0xAAAAAAA);
  Expect.equals(0xAAAAAAA, n.x);
  Expect.equals(0xAAAAAAA, n.y);
  Expect.equals(0xAAAAAAA, n.z);
  Expect.equals(0xAAAAAAA, n.w);
  o = m ^ n; // xor
  Expect.equals(0x0, o.x);
  Expect.equals(0x0, o.y);
  Expect.equals(0x0, o.z);
  Expect.equals(0x0, o.w);
  Expect.equals(false, o.flagX);
  Expect.equals(false, o.flagY);
  Expect.equals(false, o.flagZ);
  Expect.equ


# Code generated by Lark OpenAPI.

import lark_oapi as lark
from lark_oapi.api.attendance.v1 import *

def main():
    # 创建client
    client = lark.Client.builder() \
        .app_id(lark.APP_ID) \
        .app_secret(lark.APP_SECRET) \
        .log_level(lark.LogLevel.DEBUG) \
        .build()

    # 构造请求对象
    request: QueryUserDailyShiftRequest = QueryUserDailyShiftRequest.builder() \
        .employee_type("employee_id") \
        .request_body(QueryUserDailyShiftRequestBody.builder()
                      .user_ids([])
                      .check_date_from(20190817)
                      .check_date_to(20190820)
                      .build()) \
        .build()

    # 发起请求
    response: QueryUserDailyShiftResponse = client.attendance.v1.user_daily_shift.query(request)

    # 处理失败返回
    if not response.success():
        lark.logger.error(
            f"client.attendance.v1.user_daily_shift.query failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}")
        return

    # 处理业务结果
    lark.logger.info(lark.JSON.marshal(response.data, indent=4))

# 异步方式
async def amain():
    # 创建client
    client = lark.Client.builder() \
        .app_id(lark.APP_ID) \
        .app_secret(lark.APP_SECRET) \
        .log_level(lark.LogLevel.DEBUG) \
        .build()

    # 构造请求对象
    request: QueryUserDailyShiftRequest = QueryUserDailyShiftRequest.builder() \
        .employee_type("employee_id") \
        .request_body(QueryUserDailyShiftRequestBody.builder()
                      .user_ids([])
                      .check_date_from(20190817)
                      .check_date_to(20190820)
                      .build()) \
        .build()

    # 发起请求
    response: QueryUserDailyShiftResponse = await client.attendance.v1.user_daily_shift.aquery(request)

    # 处理失败返回
    if not response.success():
        lark.logger.error(
            f"client.attendance.v1.user_daily_shift.aquery failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}")
        return

    # 处理业务结果
    lark.logger.info(lark.JSON.marshal(response.data, indent=4))

if __name__ == "__main__":
    # asyncio.run(amain()) 异步方式
    main()


pygame.sprite.Group()
player_group = pygame.sprite.Group()
ai_group = pygame.sprite.Group()
projectiles = pygame.sprite.Group()
obstacles = pygame.sprite.Group()

# Create player tank
player = PlayerTank()
player_group.add(player)
all_sprites.add(player)

# Create AI tanks
while len(ai_group) < 3:
    ai_tank = AITank()
    if not pygame.sprite.spritecollide(ai_tank, ai_group, False):
        ai_group.add(ai_tank)
        all_sprites.add(ai_tank)

# Create obstacles
while len(obstacles) < 5:
    obstacle = Obstacle(random.randint(100, 700), random.randint(100, 400), 50, 50)
    if not pygame.sprite.spritecollide(obstacle, obstacles, False):
        obstacles.add(obstacle)
        all_sprites.add(obstacle)

# Game loop variables
running = True
score = 0

# Game loop
while running:
    clock.tick(60)

    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Player controls
    keys = pygame.key.get_pressed()
    player.update(keys)

    # Change direction of all tanks with arrow keys
    if keys[pygame.K_LEFT]:
        for ai_tank in ai_group:
            ai_tank.direction_x = -1
    if keys[pygame.K_RIGHT]:
        for ai_tank in ai_group:
            ai_tank.direction_x = 1

    # AI tank behavior
    for ai_tank in ai_group:
        ai_tank.update(player.rect, obstacles)
        if ai_tank.can_shoot():
            projectile = ai_tank.shoot(player.rect)
            projectiles.add(projectile)
            all_sprites.add(projectile)

    # Update projectiles
    projectiles.update()

    # Check collisions
    for projectile in projectiles:
        if pygame.sprite.spritecollide(projectile, player_group, False):
            print("Game Over! Final Score:", score)
            running = False

    # Check for player shooting
    if keys[pygame.K_SPACE] and player.can_shoot():
        projectile = Projectile(player.rect.centerx, player.rect.top, -7)
        projectiles.add(projectile)
        all_sprites.add(projectile)

    # Destroy AI tanks
    for ai_tank in ai_group:
        if pygame.sprite.spritecollide(ai_tank, projectiles, True):
            score += 1
            ai_tank.kill()

    # Redraw screen
    screen.fill(WHITE)
    all_sprites.draw(screen)

    # Display score
    font = pygame.font.Font(None, 36)
    score_text = font.render(f"Score: {score}", True, BLACK)
    screen.blit(score_text, (10, 10))

    # Update display
    pygame.display.flip()

pygame.quit()


//// @file
//
// Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>
//
// This program and the accompanying materials
// are licensed and made available under the terms and conditions
// of the BSD License which accompanies this distribution.  The
// full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
////

.file  "IpfThunk.s"

#include  "IpfMacro.i"
#include  "Ipf/IpfThunk.i"

.align	0x10
//-----------------------------------------------------------------------------
//++
// EfiIaEntryPoint
//
// Register physical address of Esal Data Area
//
// On Entry :
//  in1 = ptr to legacy bios reg
//  in2 = ptr to Call Stack
//  in3 = Call Stack Size
//
// Return Value:
//  r8 = SAL_SUCCESS
//
// As per static calling conventions.
//
//--
//---------------------------------------------------------------------------
PROCEDURE_ENTRY(EfiIaEntryPoint)

	        alloc	      loc0 = 8,10,8,0;;

	        mov	        out0 = r0;;
          mov	        out1 = r0;;
          mov	        out2 = r0;;
          mov	        out3 = r0;;
	        mov	        out4 = r0;;
          mov	        out5 = r0;;
          mov	        out6 = r0;;
          mov	        out7 = r0;;

	        mov	        loc1 = b0;;						        // save efi (b0)
	        mov	        loc2 = psr;;					        // save efi (PSR)
	        mov	        loc3 = gp;;						        // save efi (GP)
	        mov	        loc4 = pr;;						        // save efi (PR)
	        mov	        loc5 = sp;;						        // save efi (SP)
	        mov	        loc6 = r13;;					        // save efi (TP)
	        mov	        loc7 = ar.lc;;				        // save efi (LC)
	        mov	        loc8 = ar.fpsr;;			        // save efi (FPSR)

	        mov	        r8   = r0;; 						      // return status
	        mov	        r9   = r0;; 						      // return value
	        mov	        r10  = r0;;						        // return value
	        mov	        r11  = r0;;						        // return value

bios_int_func::
	        rsm		      0x4000;;					            // i(14)=0, disable interrupt
	        srlz.d;;
	        srlz.i;;

//---------------------//
// save fp registers   //
//---------------------//

	        dep		      sp = 0,sp,0,4;;					      // align 16
	        add		      sp = -16,sp;;						      // post decrement

int_ip_1x::
	        mov		      r2 = ip;;
	        add		      r2 = (int_ip_1y - int_ip_1x),r2;;
	        mov		      b7 = r2;;
	        br		      save_fp_registers;;

int_ip_1y::
	        add		      sp    = 16,sp;;               // adjust (SP)
	        mov		      loc9  = sp;;						      // save (SP)
	        adds	      sp    = 0x10,in1;;				    // in1 + 0x10 = SP
	        ld4		      sp    = [sp]


rgin-right:20px;margin-left:0}.rc-cont .rc-head .rc-head-item[data-v-0ea70315]:first-child{margin-right:0}.el-table[data-v-0ea70315] thead th{background-color:#f5f5f5;font-weight:400;font-size:12px}.el-table[data-v-0ea70315] tbody{font-size:13px}.rc-cont[data-v-241fcc5a]{position:relative;padding:0 20px 20px}.rc-cont .rc-head[data-v-241fcc5a]{margin-bottom:15px;position:relative}.rc-cont .rc-head .rc-head-item[data-v-241fcc5a]{font-size:12px;padding:8px 5px;border-radius:2px;margin-right:20px;margin-left:0}.rc-cont .rc-head .rc-head-item[data-v-241fcc5a]:first-child{margin-right:0}.el-table[data-v-241fcc5a] thead th{background-color:#f5f5f5;font-weight:400;font-size:12px}.el-table[data-v-241fcc5a] tbody{font-size:13px}.rc-cont[data-v-757d7c7d]{position:relative;padding:0 20px 20px}.rc-cont .rc-head[data-v-757d7c7d]{margin-bottom:15px;position:relative}.rc-cont .rc-head .rc-head-item[data-v-757d7c7d]{font-size:12px;padding:8px 5px;border-radius:2px;margin-right:20px;margin-left:0}.rc-cont .rc-head .rc-head-item[data-v-757d7c7d]:first-child{margin-right:0}.el-table[data-v-757d7c7d] thead th{background-color:#f5f5f5;font-weight:400;font-size:12px}.el-table[data-v-757d7c7d] tbody{font-size:13px}.rc-cont[data-v-6e6089a8]{position:relative;padding:0 20px 20px}.rc-cont .rc-head[data-v-6e6089a8]{margin-bottom:15px;position:relative}.rc-cont .rc-head .rc-head-item[data-v-6e6089a8]{font-size:12px;padding:8px 5px;border-radius:2px;margin-right:20px;margin-left:0}.rc-cont .rc-head .rc-head-item[data-v-6e6089a8]:first-child{margin-right:0}.el-table[data-v-6e6089a8] thead th{background-color:#f5f5f5;font-weight:400;font-size:12px}.el-table[data-v-6e6089a8] tbody{font-size:13px}.el-tabs[data-v-3c3ad3cf] .el-tabs__nav-wrap:after{display:none!important}.el-tabs[data-v-3c3ad3cf] .el-tabs__header{background-color:#f5f6f9;padding:0 17px;margin:0 0 15px!important}.el-tabs[data-v-3c3ad3cf] .el-tabs__item{font-size:13px!important;height:40px!important;line-height:40px!important}.d-container[data-v-3c3ad3cf]{position:relative;height:100%}.t-loading-content[data-v-3c3ad3cf]{position:relative;overflow-y:scroll;-webkit-box-flex:1;-ms-flex:1;flex:1}.examine-info[data-v-3c3ad3cf]{padding:0 17px 17px}.examine-info .examine-info-border[data-v-3c


b64
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmaddsub132pd_ymm_k1z_ymm_ymmm256b64
	0x2000_00B6, 0x0900_0002,// EVEX_Vfmaddsub132pd_zmm_k1z_zmm_zmmm512b64_er
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmsubadd132ps_xmm_xmm_xmmm128
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmsubadd132ps_ymm_ymm_ymmm256
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmsubadd132pd_xmm_xmm_xmmm128
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmsubadd132pd_ymm_ymm_ymmm256
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmsubadd132ps_xmm_k1z_xmm_xmmm128b32
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmsubadd132ps_ymm_k1z_ymm_ymmm256b32
	0x2000_00B6, 0x0900_0002,// EVEX_Vfmsubadd132ps_zmm_k1z_zmm_zmmm512b32_er
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmsubadd132pd_xmm_k1z_xmm_xmmm128b64
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmsubadd132pd_ymm_k1z_ymm_ymmm256b64
	0x2000_00B6, 0x0900_0002,// EVEX_Vfmsubadd132pd_zmm_k1z_zmm_zmmm512b64_er
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132ps_xmm_xmm_xmmm128
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132ps_ymm_ymm_ymmm256
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132pd_xmm_xmm_xmmm128
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132pd_ymm_ymm_ymmm256
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmadd132ps_xmm_k1z_xmm_xmmm128b32
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmadd132ps_ymm_k1z_ymm_ymmm256b32
	0x2000_00B6, 0x0900_0002,// EVEX_Vfmadd132ps_zmm_k1z_zmm_zmmm512b32_er
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmadd132pd_xmm_k1z_xmm_xmmm128b64
	0x2000_00B6, 0x1200_0002,// EVEX_Vfmadd132pd_ymm_k1z_ymm_ymmm256b64
	0x2000_00B6, 0x0900_0002,// EVEX_Vfmadd132pd_zmm_k1z_zmm_zmmm512b64_er
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132ss_xmm_xmm_xmmm32
	0x2000_00B6, 0x3A00_0001,// VEX_Vfmadd132sd_xmm_xmm_xmmm64
	0x2000_00B6, 0x0900_0002,// EVEX_Vf


using System.Collections.Generic;
using System.IO;
using Arrowgene.Ddon.Client;
using Xunit;

namespace Arrowgene.Ddon.Test.Client;

public class ArcArchiveTest
{
    [Fact]
    public void TestArcFlags()
    {
        uint flags = 1073925413;
        uint sizeBits28__0_29 = flags & ((1 << 29) - 1);
        uint compressionBits3__29_31 = (flags >> 29) & ((1 << 3) - 1);
        ArcArchive.ArcCompression compression = (ArcArchive.ArcCompression)compressionBits3__29_31;

        uint reFlags = sizeBits28__0_29
                       | compressionBits3__29_31 << 29;

        Assert.True(flags == reFlags);
        Assert.Equal(ArcArchive.ArcCompression.Normal, compression);
    }

    [Fact]
    public void TestArcPacking()
    {
        string arcTest = TestUtils.GetTestPath("arc_test.bin");
        byte[] arcBytes = File.ReadAllBytes(arcTest);
        ArcArchive archiveExpected = new ArcArchive();
        archiveExpected.Open(arcBytes);

        byte[] savedArcBytes = archiveExpected.Save();
        ArcArchive archiveActual = new ArcArchive();
        archiveActual.Open(savedArcBytes);

        Assert.Equal(archiveExpected.MagicTag, archiveActual.MagicTag);
        Assert.Equal(archiveExpected.MagicId, archiveActual.MagicId);

        List<ArcArchive.ArcFile> expectedArcFiles = archiveExpected.GetFiles();


'豈知らんや、未だ身の穏やかならざるを。',
        '独り自ら閑非を惹く。',
        '冬枯れの木にまだ春は来ない。しかし時期がきたと思いこんで一人大空へ昇ってしまった。どうしてまだ身の不運は去っていないのに気づかないのか。一人で鬱々と過ちを悔やむことになるだろう。',
      ],
      中文: [
        '變成枯木，枝幹上沒有長葉子，似乎現在還沒有迎接春天般地，',
        '就算要有執行不會實現的願望，心中只是越來越煩惱而已。',
        '不瞭解自己的身份、地位，就要有所行動，是無法安穩的。要有信心，要舉止謹慎吧。',
        '不悔悟自己的到前幾日為止錯誤，以後就會後悔吧。',
      ],
    },
    解答: [
      {
        key: '願望',
        value: '難實現吧。',
      },
      {
        key: '疾病',
        value: '會拖長吧。',
      },
      {
        key: '遺失物',
        value: '難出現吧。',
      },
      {
        key: '盼望的人',
        value: '不會出現吧。',
      },
      {
        key: '蓋新居、搬家',
        value: '多比較看看比較好吧。',
      },
      {
        key: '旅行',
        value: '不好吧。',
      },
      {
        key: '結婚、交往',
        value: '壞吧。',
      },
    ],
  },
  {
    編號: '第六十八',
    運勢: '吉',
    內容: {
      日文: ['異夢生英傑', '前来事可疑', '芳韮春日暖', '依旧発残枝'],
      中文: ['異夢生英傑', '前來事可疑', '芳菲春日暖', '依舊發殘枝'],
    },
    解籤: {
      日文: [
        '異夢、英傑を生じ。',
        '前来、事疑う可し。',
        '芳菲、春日暖かなり。',
        '旧に依りて残枝に発く。',
        '悪夢を見て英雄を生んだという伝説のように、思いがけない幸運がやってくるだろうと喜んでいたが、幸運は一向にやってこない。あの夢はなんだったのだろうと疑う心がでてくるが、春になると花のよい香りとともに、冬枯れの枝にも花が咲くように運が開く。',
      ],
      中文: [
        '生出優秀的人、做好夢是因為神佛加持庇護的幸運到來的暗示。',
        '雖然得到這個幸福，但和昨天的自身相比較，卻難以置信吧。',
        '像春天變溫暖，飄散蔬菜花的香味般地，幸福來臨。',
        '枯了的樹


  *  9d10aa52ee949386ca9385695f04ede2
  *  70dda20810decd12bc9b048aaab31471 ... Merkle root
  *  24d95a54 ........................... Unix time: 1415239972
  *  30c31b18 ........................... Target (bits)
  *  fe9f0864 ........................... Nonce
  *
  *  00 ................................. Transaction count (0x00)
  */
object HeadersCodec : ProtocolMessageCodec<Headers> {
  override val command = "headers"
  override val clazz = Headers::class.java
  val TransactionCountCodec = VariableIntCodec()
  override fun transcode(io : CodecInputOutputStream, obj : Headers? ) : Headers? {
    val headers = BlockHeaderListCodec.transcode(io, obj?.headers)
    val transactionCount = TransactionCountCodec.transcode(io, 0)

    if (io.isInput) {
      // BUGBUG : Check if transactionCount is zero.
      return Headers(
          headers!!
      )
    }
    return null
  }

/*
  val ZERO = ByteArray(0)

  data class BlockHeaderWithDummy (
     header : BlockHeader,
     dummy : Unit )

  private val BlockHeaderWithDummyCodec : Codec<BlockHeaderWithDummy> {
    ("block_header" | BlockHeaderCodec.codec) ::
    ("transaction_count" | constant(ByteVector.view(ZERO)))
  }.as<BlockHeaderWithDummy>

  val blockHeaderCoodec : Codec<BlockHeader> = BlockHeaderWithDummyCodec.xmap(
    _.header, BlockHeaderWithDummy(_:BlockHeader, ())
  )

  val codec : Codec<Headers> {
    ("headers" | VarList.varlistOf(blockHeaderCoodec))
  }.as<Headers>
*/
}

/**
  * <Description>
  * The getaddr message requests an addr message from the receiving node,
  * preferably one with lots of IP addresses of other receiving nodes.
  *
  * The transmitting node can use those IP addresses to quickly update
  * its database of available nodes rather than waiting for
  * unsolicited addr messages to arrive over time.
  *
  * <Reference>
  * https://bitcoin.org/en/developer-reference#getaddr
  *
  * <Protocol>
  *  No Payload.
  */
object GetAddrCodec : ProtocolMessageCodec<GetAddr> {
  override val command = "getaddr"
  override val clazz = GetAddr::class.java

  private val codec = Codecs.provide(GetAddr())
  override fun transcode(io : CodecInputOutputStream, obj : GetAddr? ) : GetAddr? {
    return codec.transcode(io, obj)
  }
}

/**
  * <Description>
  * The mempool message requests the TXIDs of transactions that the receiving node has verified as valid
  * but which have not yet appeared in a block. That is, transactions which are
  * in the receiving node’s memory pool. The response to the mempool message is
  * one or more inv messages containing the TXIDs in the usual inventory format.
  *
  * Sending the mempool message is mostly useful when a program first connects to the network.
  * Full nodes can use it to quickly gather most or all of the unconfirmed transactions
  * available on the network; this is especially useful for miners trying to gather transactions
  * for their transaction fees.
  *
  * SPV clients can set a filter before sending a mempool to only receive transactions
  * that match that filter; this allows a recently-started client to get most or
  * all unconfirmed transactions related to its wallet.
  *
  * The inv response to the mempool message is, at best, one node’s view of the network—
  * not a complete list of unconfirmed transactions on the network.
  *
  * <Since>


.text
	.file	"sin.cc"
	.globl	_Z3sinN9fixedmath7fixed_tE      // -- Begin function _Z3sinN9fixedmath7fixed_tE
	.p2align	2
	.type	_Z3sinN9fixedmath7fixed_tE,@function
_Z3sinN9fixedmath7fixed_tE:             // @_Z3sinN9fixedmath7fixed_tE
	.cfi_startproc
// %bb.0:
	mov	w8, #37407
	mov	w9, #18558
	movk	w8, #1, lsl #16
	movk	w9, #6, lsl #16
	add	x10, x0, x8
	cmp	x10, x9
	b.hs	.LBB0_2
.LBB0_1:
	mov	w9, #9279
	movk	w9, #3, lsl #16
	cmp	x0, x8
	sub	x9, x9, x0
	csel	x9, x9, x0, gt
	mul	x11, x9, x9
	mov	w8, #2752512
	lsr	x11, x11, #16
	sub	x8, x8, x11
	mov	w10, #6881280
	mul	x8, x8, x11
	sub	x8, x10, x8, asr #19
	mov	w10, #20643840
	mul	x8, x8, x11
	sub	x8, x10, x


.star2 {
		   position: absolute;
		   display: block;
		   color: #fff;
		   width: 0px;
		   height: 0px;
		   border-right:  10px solid transparent;
		   border-bottom: 7px  solid #fff;
		   border-left:   10px solid transparent;
		   transform:         rotate(35deg);
		   -webkit-transform: rotate(35deg);
		}
		.star2:before {
		   border-bottom: 8px solid #fff;
		   border-left: 3px solid transparent;
		   border-right: 3px solid transparent;
		   position: absolute;
		   height: 0;
		   width: 0;
		   top: -4.5px;
		   left: -6.5px;
		   display: block;
		   content: '';
		   transform:         rotate(-35deg);
		   -webkit-transform: rotate(-35deg);

		}
		.star2:after {
		   position: absolute;
		   display: block;
		   color: #fff;
		   top: 1px;
		   left: -10px;
		   width: 0px;
		   height: 0px;
		   border-right: 10px solid transparent;
		   border-bottom: 7px solid #fff;
		   border-left: 10px solid transparent;
		   transform:         rotate(-70deg);
		   -webkit-transform: rotate(-70deg);
		   content: '';
		}
	</style>

<!DOCTYPE html>

  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100&display=swap" rel="stylesheet">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
  <title>Decodificador de Texto</title>
  <link rel="stylesheet" href="style.css">

      <form action="">
        <textarea class="text-input" type="text" name="input-texto" maxlength="120" id="input-texto" placeholder="Digite seu texto"></text


aveMod"], ["rd"] = fields["flags"]}, -- protection from spell
						{["op"] = 139, ["p1"] = %feedback_strref_no_damage%, ["rd"] = fields["flags"]}, -- display string
					}
					--
					for _, attributes in ipairs(effectCodes) do
						CGameSprite:applyEffect({
							["effectID"] = attributes["op"] or EEex_Error("opcode number not specified"),
							["effectAmount"] = attributes["p1"] or 0,
							["res"] = attributes["res"] or "",
							["savingThrow"] = attributes["stype"] or 0,
							["saveMod"] = attributes["sbonus"] or 0,
							["m_flags"] = attributes["rd"] or 0,
							["m_sourceRes"] = "%MONK_ROGUE_EVASION%B",
							["m_sourceType"] = 1, -- spl
							["sourceID"] = CGameSprite.m_id,
							["sourceTarget"] = CGameSprite.m_id,
						})
					end

				end
			end
		end

	end
end

-- apply ability --

EEex_Opcode_AddListsResolvedListener(function(sprite)
	-- sanity check
	if not EEex_GameObject_IsSprite(sprite) then
		return
	end
	-- internal function that applies the actual feat
	local apply = function()
		-- Mark the creature as 'feat applied'
		sprite:setLocalInt("gtNWNEvasion", 1)
		--
		sprite:applyEffect({
			["effectID"] = 321, -- Remove effects by resource
			["res"] = "%MONK_ROGUE_EVASION%",
			["sourceID"] = sprite.m_id,
			["sourceTarget"] = sprite.m_id,
		})
		sprite:applyEffect({
			["effectID"] = 403, -- Screen effects
			["durationType"] = 9,
			["res"] = "%MONK_ROGUE_EVASION%", -- lua function
			["m_sourceRes"] = "%MONK_ROGUE_EVASION%",
			["sourceID"] = sprite.m_id,
			["sourceTarget"] = sprite.m_id,
		})
	end
	-- Check creature's class / kit
	local class = GT_Resource_SymbolToIDS["class"]
	-- single/multi/(complete)dual rogues
	local isThiefAll = GT_Sprite_CheckIDS(sprite, class["THIEF_ALL"], 5)
	-- monks
	local isMonk = GT_Sprite_CheckIDS(sprite, class["MONK"], 5)
	--
	local applyAbility = isMonk or isThiefAll
	--
	if sprite:getLocalInt("gtNWNEvasion") == 0 then
		if applyAbility then
			apply()
		end
	else
		if applyAbility then
			-- do nothing
		else
			-- Mark the creature as 'feat removed'
			sprite:setLocalInt("gtNWNEvasion", 0)
			--
			sprite:applyEffect({
				["effectID"] = 321, -- Remove effects by resource
				["res"] = "%MONK_ROGUE_EVASION%",
				["sourceID"] = sprite.m_id,
				["sourceTarget"] = sprite.m_id,
			})
		end
	end
end)


creates an immunity to damage from acid
spells.
-ELECTRICITY - Creates an exception to the +All rule by permitting damage from
electric spells.
+ELECTRICITY - If +All is not used, this creates an immunity to damage from
electric spells.
-POISON - Creates an exception to the +All rule by permitting damage from
poison spells.
+POISON - If +All is not used, this creates an immunity to damage from poison
spells.
-UNDEAD - Creates an exception to the +All rule by permitting damage from
undead spells.
+UNDEAD - If +All is not used, this creates an immunity to damage from
undead/evil spells.
-DISEASE - Creates an exception to the +All rule by permitting damage from
disease spells.
+DISEASE - If +All is not used, this creates an immunity to damage from disease
spells.
-TRAPS - Creates an exception to the +All rule by permitting damage from traps
spells.
+TRAPS - If +All is not used, this creates an immunity to damage from traps
spells.

			Prop_WearAdjuster: Adjustments to stats when worn

Property   : Prop_WearAdjuster
Targets    : Items (armor and weapons principally)
Parameters : see Prop_HaveAdjuster, and may include optional LAYERED flag
Example    : str+2 dex-2 class=thief race=elf allset=aname-3
Example    : str+2 dex-2 move+100 LAYERED MASK=-Race +Dwarf
Description:
Whenever the item having this property is wielded or worn, the statistics of
the owner will be adjusted as described in the parameters.  Removing the item
will remove the effects.  The Layered flag may be used to prevent bonus or
penalty stacking due to multiple items worn on the same location. See
Prop_HaveAdjuster for more information on the valid parameters for this
property.

			Prop_WearEnabler: Granting skills when worn/wielded

Property   : Prop_WearEnabler
Targets    : Items
Parameters : a list of properly named spells separated by semicolons
Parameters : Spell names may optionally have parameters in parenthesis.
Parameters : The above parameters may be followed by an optional mask
Parameters : The above parameters may include optional LAYERED flag
Example    : Spell_MageArmor;Spell_Shield
Example    : Spell_MageArmor;LAYERED;Spell_Shield
Example    : 90%;Spell_Portal(Somewhere else);Prayer_SummonElemental(/FIRE)
Example    : Spell_MageArmor;Spell_Shield; MASK=-RACE +Dwarf
Description:
So long as the item with this property is worn, wielded, or held, the owner
will be granted the spells, skills listed.  The percentage given is optional,
and will be the proficiency of the skill.  If a percentage is not given, the
default is 100%.  The layered flag means that, among layers of armor, only the
top layer will grant its effect.

The parameters may also END with the key word MASK= followed by a mask.  This
mask will select which kinds of mobs and players will be affected by this
property. See ZAPPERMASKS for more information on zapper mask syntax.

			Prop_WearOverride: Wearable Unzapper

Property   : Prop_WearOverride
Targets    : Items
Parameters : (DRESS) (CONTENTS) ([masking params])
Example


/*
 * Copyright 2019 Advanced Micro Devices, Inc.
 *
 * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
 *
 * Authors: AMD
 *
 */
#include "dc_bios_types.h"
#include "dcn31/dcn31_hpo_dp_link_encoder.h"
#include "dcn32_hpo_dp_link_encoder.h"
#include "reg_helper.h"
#include "dc_link.h"
#include "stream_encoder.h"

#define DC_LOGGER \
		enc3->base.ctx->logger

#define REG(reg)\
	(enc3->regs->reg)

#undef FN
#define FN(reg_name, field_name) \
	enc3->hpo_le_shift->field_name, enc3->hpo_le_mask->field_name

#define CTX \
	enc3->base.ctx

static bool dcn32_hpo_dp_link_enc_is_in_alt_mode(
		struct hpo_dp_link_encoder *enc)
{
	struct dcn31_hpo_dp_link_encoder *enc3 = DCN3_1_HPO_DP_LINK_ENC_FROM_HPO_LINK_ENC(enc);
	uint32_t dp_alt_mode_disable = 0;

	ASSERT((enc->transmitter >= TRANSMITTER_UNIPHY_A) && (enc->transmitter <= TRANSMITTER_UNIPHY_E));

	/* if value == 1 alt mode is disabled, otherwise it is enabled */
	REG_GET(RDPCSTX_PHY_CNTL6[enc->transmitter], RDPCS_PHY_DPALT_DISABLE, &dp_alt_mode_disable);
	return (dp_alt_mode_disable == 0);
}

static struct hpo_dp_link_encoder_funcs dcn32_hpo_dp_link_encoder_funcs = {
	.enable_link_phy = dcn31_hpo_dp_link_enc_enable_dp_output,
	.disable_link_phy = dcn31_hpo_dp_link_enc_disable_output,
	.link_enable = dcn31_hpo_dp_link_enc_enable,
	.link_disable = dcn31_hpo_dp_link_enc_disable,
	.set_link_test_pattern = dcn31_hpo_dp_link_enc_set_link_test_pattern,
	.update_stream_allocation_table = dcn31_hpo_dp_link_enc_update_stream_allocation_table,
	.set_throttled_vcp_size = dcn31_hpo_dp_link_enc_set_throttled_vcp_size,
	.is_in_alt_mode = dcn32_hpo_dp_link_enc_is_in_alt_mode,
	.read_state = dcn31_hpo_dp_link_enc_read_state,
	.set_ffe = dcn31_hpo_dp_link_enc_set_ffe,
};

void hpo_dp_link_encoder32_construct(struct dcn31_hpo_dp_link_encoder *enc31,
		struct dc_context *ctx,
		uint32_t inst,
		const struct dcn31_hpo_dp_link_encoder_registers *hpo_le_regs,
		const struct dcn31_hpo_dp_link_encoder_shift *hpo_le_shift,
		const struct dcn31_hpo_dp_link_encoder_mask *hpo_le_mask)
{
	enc31->base.ctx = ctx;

	enc31->base.inst = inst;
	enc31->base.funcs = &dcn32_hpo_dp_link_encoder_funcs;
	enc31->base.hpd_source = HPD_SOURCEID_UNKNOWN;
	enc31->base.transmitter = TRANSMITTER_UNKNOWN;

	enc31->regs = hpo_le_regs;
	enc31->hpo_le_shift = hpo_le_shift;
	enc31->hpo_le_mask = hpo_le_mask;
}


"""RFC 5280 certificate basic constraints tests."""

import pytest
from cryptography import x509
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa

from swarmauri_certs_local_ca import LocalCaCertService
from swarmauri_core.crypto.types import ExportPolicy, KeyRef, KeyType, KeyUse

def _key() -> KeyRef:
    sk = rsa.generate_private_key(public_exponent=65537, key_size=2048)
    pem = sk.private_bytes(
        serialization.Encoding.PEM,
        serialization.PrivateFormat.PKCS8,
        serialization.NoEncryption(),
    )
    return KeyRef(
        kid="ca",
        version=1,
        type=KeyType.RSA,
        uses=(KeyUse.SIGN,),
        export_policy=ExportPolicy.SECRET_WHEN_ALLOWED,
        material=pem,
    )

@pytest.mark.unit
@pytest.mark.asyncio
async def test_basic_constraints_ca_true() -> None:
    svc = LocalCaCertService()
    key = _key()
    cert_bytes = await svc.create_self_signed(key, {"CN": "root"})
    cert = x509.load_pem_x509_certificate(cert_bytes)
    bc = cert.extensions.get_extension_for_class(x509.BasicConstraints).value
    assert bc.ca is True


5c1f6acb2c047b7689e7d14d4f4772899a"
    private const val redirectUri = "autoaccounting://github/auth"

    fun getLoginUrl():String{
        return   "https://github.com/login/oauth/authorize?client_id=$clientId&redirect_uri=$redirectUri&scope=public_repo"
;
    }
    fun parseAuthCode(code:String?,onSuccess: ()->Unit,onError: (String)->Unit){
        if(code==null) {
            onError("响应代码为空！")
            return
        }
        val requestBody = FormBody.Builder()
            .add("client_id", clientId)
            .add("client_secret", clientSecret)
            .add("code", code)
            .add("redirect_uri", redirectUri)
            .build()

        val  httpUtils = HttpUtils()
        httpUtils.post("https://github.com/login/oauth/access_token",requestBody,null,{
            val params = it.split("&")
            for (param in params) {
                val keyValue = param.split("=")
                if (keyValue.size == 2 && keyValue[0] == "access_token") {
                    SpUtils.putString("accessToken",keyValue[1])
                    onSuccess()
                }
            }
        },{ _, error ->
            onError(error)
        })

    }

    fun getHeaders(): Headers {
        val accessToken = SpUtils.getString("accessToken","")
        val builder =   Headers.Builder()
            .add("Accept","application/vnd.github+json")
            .add("X-GitHub-Api-Version","2022-11-28")
        if(accessToken.isNotEmpty()){
            builder.add("Authorization", "Bearer ${SpUtils.getString("accessToken")}")
        }
        return  builder.build();
    }
    fun createIssue(title: String, body: String,onSuccess: (String)->Unit,onError: (String)->Unit) {
        val url = "https://api.github.com/repos/Auto-Accounting/AutoRule/issues"

        val jsonRequest = JSONObject()
        try {
            jsonRequest.put("title", title)
            jsonRequest.put("body", body)
        } catch (e: JSONException) {
            e.printStackTrace()
            onError(e.message.toString())
            return
        }

        val bodyInfo = jsonRequest.toString().toRequestBody("application/json; charset=utf-8".toMediaTypeOrNull())

        val  httpUtils = HttpUtils()
        httpUtils.post(url,bodyInfo, getHeaders(),{
            try {
                val jsonObject = JSONObject(it)
                val id = jsonObject.getInt("number")
                onSuccess(id.toString())
            } catch (e: JSONException) {
                e.printStackTrace()
                onError(e.message.toString())
            }
        },{url, errorInfo ->
            onError(errorInfo)
        })
    }

    fun getIssueStatus( issueNumber: Int) {
        val url = "https://api.github.com/repos/Auto-Accounting/AutoRule/issues/$issueNumber"
        val  httpUtils = HttpUtils()
        httpUtils.get(url,getHeaders(),{

        },{url, errorInfo ->  })
    }

    fun checkVersionUpdate(onUpdate: (updateInfo: UpdateInfo) -> Unit) {
        val url = "https://api.github.com/repos/Auto-Accounting/AutoRule/issues"

    }
    @SuppressLint("SimpleDateFormat")
    private fun checkUpdate(url:String, name: String, onUpdate: (updateInfo: UpdateInfo) -> Unit){
        val  httpUtils = HttpUtils()
        val ruleVersion =  SpUtils.getInt("${name}Version",0)
        httpUtils.get(url, getHeaders(),{
            Log.e("更新信息",it)
            try {
                val jsonArray = Gson().fromJson(it,JsonArray::class.java)
                if(jsonArray.isEmpty){
                    return@get
                }
                val json = jsonArray[0].asJsonObject
                val


of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a73bb

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20971486    10484719+  83  Linux

Disk /dev/vdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

So we can see the second disk that it can see is /dev/vdb at a size of 5GB, proving that Nova has successfully attached our Cinder volume to our instance. Next, we can create a filesystem and mount that up:

[root@my-vm ~]# mkfs.xfs /dev/vdb
meta-data=/dev/vdb               isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@my-vm ~]# mount /dev/vdb /mnt
[root@my-vm ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda1      xfs        10G  885M  9.2G   9% /
devtmpfs       devtmpfs  900M     0  900M   0% /dev
tmpfs          tmpfs     920M     0  920M   0% /dev/shm
tmpfs          tmpfs     920M  8.4M  912M   1% /run
tmpfs          tmpfs     920M     0  920M   0% /sys/fs/cgroup
tmpfs          tmpfs     184M     0  184M   0% /run/user/0
/dev/vdb       xfs       5.0G   33M  5.0G   1% /mnt

Next unmount your volume and disconnect from the VM:

[root@my-vm ~]# umount /mnt
[root@my-vm ~]# exit
logout
Connection to 192.168.122.202 closed.

Let's confirm how the iSCSI export has worked to our hypervisor via targetcli, noting that in the printout this information will have gone off the page in the printed version, but the electronic HTML copy should allow you to scroll through. We'll need to execute this command on our controller node (summit-controller) as this is where the volume resides, and is where it's exported from, hence we're executing this command remotely:

$ ssh root@summit-controller targetcli ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- iqn.2010-10.org.openstack:volume-da6c2b7b-d10c-4171-89e3-e2e76e7638f0  [/dev/cinder-volumes/volume-da6c2b7b-d10c-4171-89e


t><svg aria-hidden="true" class="icon_comments_bubble" viewBox="0 0 14 14"><use xlink:href="#svg-comentarios"></use></svg>Ir a los comentarios</button>Normas ›

<button class="button | flex btn btn-1 btn-c _pa" id="comments_close"><svg aria-hidden="true" class="icon_comments_close" viewBox="0 0 26 26"><use xlink:href="#svg-cerrar"></use></svg></button>
Mis comentarios<svg aria-hidden="true" class="icon_arrow_down" viewBox="0 0 16 16"><use xlink:href="#svg-flecha-abajo"></use></svg>Normas<svg aria-hidden="true" class="icon_arrow_down" viewBox="0 0 16 16"><use xlink:href="#svg-flecha-abajo"></use></svg>

Rellena tu nombre y apellido para comentarcompletar datos

<a class="btn btn-2" href="https://elpais.com/suscripciones/#/campaign?prod=SUSDIGCRART&o=COM&prm=suscrip_articulo_comentarios_el-pais&backURL=https%3A%2F%2Felpais.com%2Fus%2Fmigracion%2F2025-04-07%2Fun-tribunal-supremo-dividido-permite-a-trump-seguir-usando-una-ley-de-guerra-de-1798-para-las-deportaciones.html" id="comments_subscribe_link" data-link-am="https://elpais.com/suscripciones/america/#/campaign?prod=SUSDIGCRARTAM&o=COMAM&prm=suscrip_articulo_comentarios_el-pais-america&backURL=https%3A%2F%2Felpais.com%2Fus%2Fmigracion%2F2025-04-07%2Fun-tribunal-supremo-dividido-permite-a-trump-seguir-usando-una-ley-de-guerra-de-1798-para-las-deportaciones.html" data-link-mx="https://elpais.com/suscripciones/america/#/campaign?prod=SUSDIGMX&o=COMMX&prm=suscrip_articulo_comentarios_el-pais-mexico&backURL=https%3A%2F%2Felpais.com%2Fus%2Fmigracion%2F2025-04-07%2Fun-tribunal-supremo-dividido-permite-a-trump-seguir-usando-una-ley-de-guerra-de-1798-para-las-deportaciones.html" data-link-co="https://elpais.com/suscripciones/america/#/campaign?prod=SUSDIGCOL&o=COMCOL&amp


[d-float],$0x0
   5fcff:	00          	halt
   5fd00:	70 00 00    	movd $0x0 [d-float],$0x0 [d-float]
   5fd03:	00          	halt
   5fd04:	2c 00 00 00 	movc5 $0x0,$0x0,$0x0,*0x70ffffff(ap),$0x0
   5fd08:	fc ff ff ff
   5fd0c:	70 00
   5fd0e:	00          	halt
   5fd0f:	00          	halt
   5fd10:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd13:	00          	halt
   5fd14:	2c 00 00 00 	movc5 $0x0,$0x0,$0x0,*0x6effffff(r8),$0x0
   5fd18:	f8 ff ff ff
   5fd1c:	6e 00
   5fd1e:	00          	halt
   5fd1f:	00          	halt
   5fd20:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd23:	00          	halt
   5fd24:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd27:	00          	halt
   5fd28:	08 00 00 00 	cvtps $0x0,$0x0,$0x0,-(r0)
   5fd2c:	70
   5fd2d:	00          	halt
   5fd2e:	00          	halt
   5fd2f:	00          	halt
   5fd30:	6a 00 00    	cvtdl $0x0 [d-float],$0x0
   5fd33:	00          	halt
   5fd34:	2c 00 00 00 	movc5 $0x0,$0x0,$0x0,$0x0,$0x0
   5fd38:	00 00
   5fd3a:	00          	halt
   5fd3b:	00          	halt
   5fd3c:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd3f:	00          	halt
   5fd40:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd43:	00          	halt
   5fd44:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd47:	00          	halt
   5fd48:	04          	ret
   5fd49:	00          	halt
   5fd4a:	00          	halt
   5fd4b:	00          	halt
   5fd4c:	70 00 00    	movd $0x0 [d-float],$0x0 [d-float]
   5fd4f:	00          	halt
   5fd50:	6e 00 00    	cvtld $0x0,$0x0 [d-float]
   5fd53:	00          	halt
   5fd54:	1c 00       	bvc 5fd56 <op+0xefa>
   5fd56:	00          	halt
   5fd57:	00          	halt
   5fd58:	10 00       	bsbb 5fd5a <op+0xefe>
   5fd5a:	00          	halt
   5fd5b:	00          	halt
   5fd5c:	6a 00 00    	cvtdl $0x0 [d-float],$0x0
   5fd5f:	00          	halt
   5fd60:	70 00 00    	movd $0x0 [d-float],$0x0 [d-float]
   5fd63:	00          	halt
   5fd64:	1c 00       	bvc 5fd66 <op+0xf0a>
   5fd66:	00


RESULT = i32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const HITRESULT_OUTSIDE: HITRESULT = 0i32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const HITRESULT_TRANSPARENT: HITRESULT = 1i32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const HITRESULT_CLOSE: HITRESULT = 2i32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const HITRESULT_HIT: HITRESULT = 3i32;
pub type IAdviseSinkEx = *mut ::core::ffi::c_void;
pub type ICanHandleException = *mut ::core::ffi::c_void;
pub type IClassFactory2 = *mut ::core::ffi::c_void;
pub type IContinue = *mut ::core::ffi::c_void;
pub type IContinueCallback = *mut ::core::ffi::c_void;
pub type ICreateErrorInfo = *mut ::core::ffi::c_void;
pub type ICreateTypeInfo = *mut ::core::ffi::c_void;
pub type ICreateTypeInfo2 = *mut ::core::ffi::c_void;
pub type ICreateTypeLib = *mut ::core::ffi::c_void;
pub type ICreateTypeLib2 = *mut ::core::ffi::c_void;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_BZ_ICON: u32 = 601u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_BZ_MESSAGE1: u32 = 602u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_BZ_RETRY: u32 = 600u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_BZ_SWITCHTO: u32 = 604u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_BROWSE: u32 = 130u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_CURRENT: u32 = 121u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_CURRENTICON: u32 = 122u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_DEFAULT: u32 = 123u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_DEFAULTICON: u32 = 124u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_FROMFILE: u32 = 125u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_FROMFILEEDIT: u32 = 126u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_GROUP: u32 = 120u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_ICONDISPLAY: u32 = 131u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_ICONLIST: u32 = 127u32;
#[doc = "*Required features: `\"Win32_System_Ole\"`*"]
pub const IDC_CI_LABEL: u32 = 128u32;
#[doc = "*


4129f4 <memalign_check+0xa4>
  412a68:	aa1503e0 	mov	x0, x21
  412a6c:	d2801021 	mov	x1, #0x81                  	// #129
  412a70:	d2800022 	mov	x2, #0x1                   	// #1
  412a74:	d2800003 	mov	x3, #0x0                   	// #0
  412a78:	d2800c48 	mov	x8, #0x62                  	// #98
  412a7c:	d4000001 	svc	#0x0
  412a80:	17ffffea 	b	412a28 <memalign_check+0xd8>
  412a84:	d503201f 	nop
  412a88:	b0000460 	adrp	x0, 49f000 <__sys_errlist_internal+0x320>
  412a8c:	f946ac00 	ldr	x0, [x0, #3416]
  412a90:	d53bd041 	mrs	x1, tpidr_el0
  412a94:	52800182 	mov	w2, #0xc                   	// #12
  412a98:	b8206822 	str	w2, [x1, x0]
  412a9c:	d2800000 	mov	x0, #0x0                   	// #0
  412aa0:	f9400bb3 	ldr	x19, [x29, #16]
  412aa4:	f9400ff4 	ldr	x20, [sp, #24]
  412aa8:	a8c37bfd 	ldp	x29, x30, [sp], #48
  412aac:	d65f03c0 	ret
  412ab0:	aa0003f3 	mov	x19, x0
  412ab4:	17ffffc7 	b	4129d0 <memalign_check+0x80>
  412ab8:	b0000460 	adrp	x0, 49f000 <__sys_errlist_internal+0x320>
  412abc:	f946ac00 	ldr	x0, [x0, #3416]
  412ac0:	d53bd041 	mrs	x1, tpidr_el0
  412ac4:	528002c2 	mov	w2, #0x16                  	// #22
  412ac8:	b8206822 	str	w2, [x1, x0]
  412acc:	17fffff4 	b	412a9c <memalign_check+0x14c>

0000000000412ad0 <free_check>:
  412ad0:	b40005c0 	cbz	x0, 412b88 <free_check+0xb8>
  412ad4:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  412ad8:	52800021 	mov	w1, #0x1                   	// #1
  412adc:	910003fd 	mov	x29, sp
  412ae0:	a90153f3 	stp	x19, x20, [sp, #16]
  412ae4:	aa0003f4 	mov	x20, x0
  412ae8:	d0000473 	adrp	x19, 4a0000 <_GLOBAL_OFFSET_TABLE_+0x568>
  412aec:	911ce260 	add	x0, x19, #0x738
  412af0:	885ffc02 	ldaxr	w2, [x0]
  412af4:	7100005f 	cmp	w2, #0x0
  412af8:	54000061


F;
	double J = pt.m_J;

	// calculate left and right Cauchy-Green tensor
	mat3ds b = pt.LeftCauchyGreen();
	mat3ds c = pt.RightCauchyGreen();
	mat3ds c2 = c.sqr();
	mat3dd I(1.);

	// get the local coordinate systems
	mat3d Q = GetLocalCS(mp);

	for (i=0; i<3; i++) {	// Perform sum over all three texture directions
		// Copy the texture direction in the reference configuration to a0
		a0[i].x = Q[0][i]; a0[i].y = Q[1][i]; a0[i].z = Q[2][i];
		K[i] = a0[i]*(c*a0[i]);
		L[i] = a0[i]*(c2*a0[i]);
		a[i] = F*a0[i]/sqrt(K[i]);	// Evaluate the texture direction in the current configuration
		A[i] = dyad(a[i]);			// Evaluate the texture tensor in the current configuration
	}

	// Evaluate exp(Q)
	eQ = 0;
	for (i=0; i<3; i++) {
		eQ += 2*mu[i]*(L[i]-2*K[i]+1);
		for (j=0; j<3; j++)
			eQ += lam[i][j]*(K[i]-1)*(K[j]-1);
	}
	eQ = exp(eQ/(4.*m_c));

	// Evaluate the stress
	mat3ds s;
	s.zero();		// Initialize for summation
	bmi = b - I;
	for (i=0; i<3; i++) {
		s += (A[i]*bmi).sym()*(2.0*mu[i] * K[i]);
		for (j=0; j<3; j++)
			s += lam[i][j]*((K[i]-1)*K[j]*A[j]+(K[j]-1)*K[i]*A[i])/2.;
	}
	s *= eQ/(2.0*J);

	s += I*(m_k*log(J)/J);

	return s;
}

//-----------------------------------------------------------------------------
//! Calculates the tangent
tens4ds FEFungOrthoCompressible::Tangent(FEMaterialPoint& mp)
{
	FEElasticMaterialPoint& pt = *mp.ExtractData<FEElasticMaterialPoint>();

	int i,j;
	vec3d a0[3];		// texture direction in reference configuration
	vec3d a[3];			// texture direction in current configuration
	mat3ds A[3];		// texture tensor in current configuration
	double K[3];		// Ka
	double L[3];		// La
	double eQ;			// exp(Q)
	mat3ds bmi;			// B - I
	// Evaluate the strain and texture
	mat3d &F = pt.m_F;
	double J = pt.m_J;

	// calculate left and right Cauchy-Green tensor
	mat3ds b = pt.LeftCauchyGreen();
	mat3ds c = pt.RightCauchyGreen();
	mat3ds c2 = c.sqr();
	mat3dd I(1.);

	// get the local coordinate systems
	mat3d Q = GetLocalCS(mp);

	for (i=0; i<3; i++) {	// Perform sum over all three texture directions
		// Copy the texture direction in the reference configuration to a0
		a0[i].x = Q[0][i]; a0[i].y = Q[1][i]; a0[i].z = Q[2][i];
		K[i] = a0[i]*(c*a0[i]);
		L[i] = a0[i]*(c2*a0[i]);
		a[i]


 *             $REST.Components.Alert({
 *                 el: alert,
 *                 header: "Demo",
 *                 content: "This is an alert.",
 *                 isDismissible: true,
 *                 type: $REST.Components.AlertTypes.Success
 *             });
 *         }
 *     });
 * </script>
 */

/**
 * ### Alert
 *
 * ```ts
 * import { Components } from "gd-sprest-bs";
 *
 * // Create the alert
 * let el = document.querySelector("#alert");
 * let alert = Components.Alert({
 *     el: el,
 *     header: "Demo",
 *     content: "This is an alert.",
 *     isDismissible: true,
 *     type: Components.AlertTypes.Success
 * });
 * ```
 */
export const Alert: (props: IAlertProps, template?: string) => IAlert;

/**
 * Alert Types
 */
export const AlertTypes: IAlertTypes;

import { IBase, IBaseProps } from "../types";

/**
 * Alert
 */
export interface IAlert extends IBase<IAlertProps> {
    /** Closes an alert by removing it from the DOM. */
    close: () => void;

    /** Updates the alert text. */
    setText: (alertText?: string) => void;

    /** Updates the alert type. */
    setType: (alertType: number) => void;
}

/**
 * Alert Properties
 */
export interface IAlertProps<T = HTMLElement> extends IBaseProps<IAlert> {
    content?: string | T;
    data?: any;
    header?: string;
    isDismissible?: boolean;
    onClose?: (props?: IAlertProps) => void;
    type?: number;
}

/**
 * Alert Types
 */
export type IAlertTypes = {
    Danger: number;
    Dark: number;
    Info: number;
    Light: number;
    Primary: number;
    Secondary: number;
    Success: number;
    Warning: number;
}import constructFrom from '../constructFrom/index'
import toDate from '../toDate/index'

/**
 * @name setYear
 * @category Year Helpers
 * @summary Set the year to the given date.
 *
 * @description
 * Set the year to the given date.
 *
 * @param date - the date to be changed
 * @param year - the year of the new date
 * @returns the new date with the year set
 *
 * @example
 * // Set year 2013 to 1 September 2014:
 * const result = setYear(new Date(2014, 8, 1), 2013)
 * //=> Sun Sep 01 2013 00:00:00
 */
export default function setYear<DateType extends Date>(
  dirtyDate: DateType | number,
  year: number
): DateType {
  const date = toDate(dirtyDate)

  // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date
  if (isNaN(date.getTime())) {
    return constructFrom(dirtyDate, NaN)
  }

  date.setFullYear(year)
  return date
}
import { APITeamChannelRolePermissionOverwrite, RolePermissions } from "@guildedjs/guilded-api-typings";
import { TeamChannel } from "./Channel";
import { Client } from "./Client";

/**
 * Object representing permission overwrites for a role on a team channel.
 */
export class RolePermissionOverwrite {
    /**
     * The ID of the team this overwrite belongs to.
     */
    public readonly teamID: string;

    /**
     * The ID of the channel this overwrite belongs to.
     */
    public readonly channelID: string;

    /**
     * Date this overwrite was created on.
     */
    public readonly createdAt: Date;

    /**
     * Date this overwrite was last updated on.
     */
    public readonly updatedAt: Date | null;

    /**
     * The ID of the role this overwrite belongs to.
     */
    public readonly teamRoleID: string;

    /**
     * The permissions this overwrite currently has denied.
     */
    public readonly denyPermissions: RolePermissions;


RAL            )\
LIR_OPCODE(LOP_IPUT                 ,lirContinue|lirThrow            ,lirFmtABS            )\
LIR_OPCODE(LOP_IGET                 ,lirContinue|lirThrow            ,lirFmtRAS            )\
LIR_OPCODE(LOP_INSTANCE_OF          ,lirContinue|lirThrow            ,lirFmtRAS            )\
LIR_OPCODE(LOP_NEW_ARRAY            ,lirContinue|lirThrow            ,lirFmtRAS            )\
LIR_OPCODE(LOP_beginSwitch          ,0                               ,lirFmtV              )\
LIR_OPCODE(LOP_TABLE_SWITCH         ,lirContinue|lirSwitch           ,lirFmtSWITCH         )\
LIR_OPCODE(LOP_LOOKUP_SWITCH        ,lirContinue|lirSwitch           ,lirFmtSWITCH         )\
LIR_OPCODE(LOP_FILL_ARRAY_DATA      ,lirContinue|lirThrow            ,lirFmtSWITCH         )\
LIR_OPCODE(LOP_beginInvoke          ,0                               ,lirFmtV              )\
LIR_OPCODE(LOP_INVOKE               ,lirContinue|lirInvoke|lirThrow  ,lirFmtINVOKE         )\
LIR_OPCODE(LOP_FILLED_NEW_ARRAY     ,lirContinue|lirThrow            ,lirFmtINVOKE         )\
LIR_OPCODE(LOP_CMPG                 ,lirContinue                     ,lirFmtRAB            )\
LIR_OPCODE(LOP_PHI                  ,0                               , 0                   )\
LIR_OPCODE(LOP_PACKED_SWITCH_PAYLOAD,0                               ,lirFmt00X            )\
LIR_OPCODE(LOP_SPARSE_SWITCH_PAYLOAD,0                               ,lirFmt00X            )\

#define LIR_OPCODE(op,flags,du) flags,
static UInt8 gLIROpcodeFlags[lirOPCount] = {
    DECLARE_LIR_OPCODES
};
#undef LIR_OPCODE

#define LIR_OPCODE(op,flags,du) du,
static UInt8 gLIROpcodeFormats[lirOPCount] = {
    DECLARE_LIR_OPCODES
};
#undef LIR_OPCODE

const char* gLirFlags[33] = {
    "LIR_unknown"
    "LIR_JDT_void",
    "LIR_JDT_int",
    "LIR_JDT_object",
    "LIR_JDT_boolean",
    "LIR_JDT_byte",
    "LIR_JDT_char",
    "LIR_JDT_short",
    "LIR_JDT_float",

    "LIR_JDT_wide",
    "LIR_JDT_long",
    "LIR_JDT_double",

    "LIR_cond_EQ",
    "LIR_cond_NE",
    "LIR_cond_LT",
    "LIR_cond_GE",
    "LIR_cond_GT",
    "LIR_cond_LE",

    "LIR_convert_i2l",
    "LIR_convert_i2f",
    "LIR_convert_i2d",
    "LIR_convert_l2i",
    "LIR_convert_l2f",
    "LIR_convert_l2d",
    "LIR_convert_f2i",
    "LIR_convert_f2l",
    "LIR_convert_f2d",
    "LIR_convert_d2i",
    "LIR_convert_d2l",
    "LIR_convert_d2f",
    "LIR_convert_i2b",
    "LIR_convert_i2c",
    "LIR_convert_i2s",
};

const char* gLirOpName[lirOPCount] = {
    "nop",
    "begin1",
    "return",
    "throw",
    "monitor_enter",
    "monitor_exit",
    "move_result",
    "move_exception",
    "goto",
    "begin2",
    "move",
    "neg",
    "not",
    "convert",
    "add_assign",
    "sub_assign",
    "mul_assign",
    "div_assign",
    "rem_assign",
    "and


}

      //std::cout << prev->id << "-" << decoder(prev->code) << " " << prev->Coverage() << std::endl;
      //for(Edge* edge : prev->outedges){
      //  std::cout << "\t" << edge->head->id << "-" << decoder(edge->head->code) << " " << edge->weight << std::endl;
      //}
        //std::cout << decoder(prev->code) << " -> " << decoder(curr->code)  << std::endl;

      endNode = prev->id;
    }

    prev = curr;
  }

  if (last) {
      //std::cout << "allo2" << std::endl;
      //std::cout << "a ne pas oublier: " << last->id << std::endl;
    //endNode = last->id;
    //AddEdge(prev, last, weights[valid.back()] + weights[valid.back() + 1]);
  }
  sequences_.emplace_back(begin);

  //TopologicalSort();
       // std::cout << "done" << std::endl;

}

void Graph::AddAlignment(
    const Alignment& alignment,
    const std::vector<std::uint64_t>& sequence, std::uint64_t sequence_len,
    std::vector<std::uint64_t>& weights) {

      //for(size_t i=0; i<weights.size(); i++) weights[i] = 1;
      //std::cout << "Add align: " << sequence_len << std::endl;
  //std::vector<std::uint64_t> weights(sequence_len, weight);

  if (sequence_len == 0) {
    return;
  }
  if (sequence_len != weights.size()) {
    throw std::invalid_argument(
        "[spoa::Graph::AddAlignment] error: "
        "sequence and weights are of unequal size!");
  }

  for (std::uint64_t i = 0; i < sequence_len; ++i) {
    if (coder(sequence[i]) == -1) {

      //std::cout << sequence[i] << std::endl;

      coder_[sequence[i]] = num_codes_;
      decoder_[num_codes_++] = sequence[i];

    }
  }

  if (alignment.empty()) {
    sequences_.emplace_back(AddSequence(sequence, weights, 0, sequence_len));
    TopologicalSort();
    return;
  }

  std::vector<std::uint64_t> valid;
  for (const auto& it : alignment) {
    if (it.second != -1) {
      if (it.second < 0 || it.second >= static_cast<std::int64_t>(sequence_len)) {  // NOLINT
        throw std::invalid_argument(
            "[spoa::Graph::AddAlignment] error: invalid alignment");
      }
      valid.emplace_back(it.second);
    }
  }
  if (valid.empty()) {
    throw std::invalid_argument(
        "[spoa::Graph::AddAlignment] error: missing sequence in alignment");
  }

  // add unaligned bases
  Node* begin = AddSequence(sequence, weights, 0, valid.front());
  Node* prev = begin ? nodes_.back().get() : nullptr;
  Node* last = AddSequence(sequence, weights, valid.back() + 1, sequence_len);

  //for (const auto& it : alignment) {
  //  std::cout << it.first << " " << it.second << std::endl;
  //}

  // add aligned bases
  for (const auto& it : alignment) {
    if (it.second == -1) {
      continue;
    }

    std::uint64_t code = coder(sequence[it.second]);
    Node* curr = nullptr;
    if (it.first == -1) {
      curr = AddNode(code);
    } else {
      auto jt = nodes_[it.first].get();
      if (jt->code == code) {
        curr = jt;
      } else {
        for (const auto& kt : jt->aligned_nodes)


: String }
    }
  ],
  date: { type: Date, default: Date.now },
  sponsorUnreads: { type: Number, default: 0, required: true },
  agentUnreads: { type: Number, default: 0, required: true }
});

ChatSchema.plugin(require("mongoose-autopopulate"));

const chatModel = model<Chat>("Chat", ChatSchema);

export default chatModel;

export async function addChat(chat: Chat) {
  try {
    const newChat = new chatModel(chat);
    await newChat.save();
  } catch (error) {
    throw error;
  }
}

export async function getUserChats(userId: string) {
  try {
    return await chatModel.find({ $or: [{ _sponsor: userId as any }, { _agent: userId as any }] });
  } catch (error) {
    throw error;
  }
}

export async function getUserMissionChat(userId: string, missionId: string) {
  try {
    return await chatModel.findOne({ _mission: missionId as any, _agent: userId as any });
  } catch (error) {
    throw error;
  }
}
import ListenerBase from './ListenerBase';
import Signal1 from './Signal1';
import SignalController from './SignalController';

/**
 * Listener1
 * @author AxGord <axgord@gmail.com>
 */
export default class Listener1<T> extends ListenerBase<(v: T, c: SignalController<Listener1<T>, Signal1<T>>) => void> {

	/**
	 * call
	 * @param value listener call argument
	 */
	public call(value: T): void {
		if (this.enabled && this.fn)
			this.fn.call(this.context, value, this._csc as SignalController<Listener1<T>, Signal1<T>>);
	}

}/**
 * isDigit(string)
 * True- If all characters in the string are digits.
 * False- If the string contains 1 or more non-digits.
 */
const isDigit = (str: string): boolean => {
  const strType = typeof str
  if (strType !== 'string') {
    throw new Error(`isDigit() is expecting a string, but ${strType} was given.`)
  }
  return /^[0-9]+$/.test(str)
}

export default isDigit
import { MyCourse } from "../models/MyCourse";

export function isMyCourseArray(data: any[]): data is MyCourse[] {
    return (
        // check if array is not empty to verify data[0] exists
        data.length > 0 &&
        // check if data[0] defines course properties
        data[0].hasOwnProperty('courseId') &&
        data[0].hasOwnProperty('name') &&
        data[0].hasOwnProperty('hidden') &&
        data[0].hasOwnProperty('starred') &&
        data[0].hasOwnProperty('role')
        // -> return type is Course[]
    );
}export interface Clock {
  readonly currentTime: number
  readonly play: () => void
  readonly pause: () => void
}

// The default tolerance for matching the handler
// invocation to clock presentation time.
const DEFAULT_TOLERANCE = 10

/**
 * A scheduler that can decide when to execute a certain
 * timestamped callback so that it happens in sync with a video
 * element.
 *
 * To use it:
 *
 * (1) Initialize a new Scheduler with a clock (to synchronize
 * against) and a callback (to be called when a message is in
 * sync with the video). The clock can be a HTMLVideoElement,
 * or anything that has a `currentTime` property which gives
 * the current presentation time in seconds, and a `pause` and
 * `play` method to control playback.
 *
 * (2) Call the `run` method every time a new message arrives
 * that you want to schedule (it needs to have an ntpTimestamp).
 * As soon at the presentation time is known, call the `init`
 * method and pass in that time, so that the scheduler can
 * start to schedule the callbacks. From then on


// server_loggerd.h,v 4.1 1999/06/25 19:24:05 shuston Exp

// Define classes used with templates in server_loggerd.h.

#ifndef __SERVER_LOGGERD_H
#define __SERVER_LOGGERD_H

#include "ace/SOCK_Stream.h"
#include "ace/Svc_Handler.h"
#include "ace/Synch.h"

class Options
{
  // = TITLE
  //     Keeps track of the options.
public:
  void parse_args (int argc, char *argv[]);
  u_short port (void);

private:
  u_short port_;
  // Port number;
};

class Logging_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
// = TITLE
//     Receive client message from the remote clients.
//
// = DESCRIPTION
//     This class demonstrates how to receive messages from remote
//     clients using the notification mechanisms in the
//     <ACE_Reactor>.  In addition, it also illustrates how to
//     utilize the <ACE_Reactor> timer mechanisms, as well.
{
public:
  // = Initialization and termination methods.
  Logging_Handler (void);

  // = Hooks for opening and closing handlers.
  virtual int open (void *);

protected:
  // = Demultiplexing hooks.
  virtual int handle_input (ACE_HANDLE);
  virtual int handle_timeout (const ACE_Time_Value &tv,
			      const void *arg);

private:
  char peer_name_[MAXHOSTNAMELEN + 1];
  // Host we are connected to.
};

#endif /* __SERVER_LOGGERD_H */


" : "蓮冠（花蓮縣花蓮市中山路426號）",
      "872382" : "蓮美（花蓮縣花蓮市中美路209號）",
      "872740" : "蓮讚（花蓮縣花蓮市國聯里國聯三路16號18號）",
      "891420" : "慈濟（花蓮縣花蓮市中央路三段808號810號）",
      "910965" : "新蓮信（花蓮縣花蓮市中美路186號）",
      "920342" : "讚蓮（花蓮縣花蓮市富吉路2號）",
      "921529" : "名品（花蓮縣花蓮市國富里莊敬路72號）",
      "923134" : "統軒（花蓮縣花蓮市公園路7-1號）",
      "932529" : "尚美（花蓮縣花蓮市中興路71號）",
      "943725" : "長勝（花蓮縣花蓮市中美路83-1號83-2號）",
      "950723" : "華廈（花蓮縣花蓮市民享里府前路638號640號）",
      "959177" : "如意（花蓮縣花蓮市中美路37號）",
      "966739" : "德安一（花蓮縣花蓮市德安一街307號）",
      "966968" : "好家園（花蓮縣花蓮市國聯一路2號2-1號）",
      "980137" : "鑫盈佳（花蓮縣花蓮市林森路258號1樓）",
      "981738" : "鑫花蓮（花蓮縣花蓮市中正路383號385號）",
      "987747" : "蓮成（花蓮縣花蓮市中華路283之1號）",
      "991827" : "蓮華（花蓮縣花蓮市民生里中山路183-185號1樓）"
   },
   "SEU336" : {
      "138745" : "蓮莊（花蓮縣新城鄉北埔村光復路462號）",
      "138941" : "精舍（花蓮縣新城鄉康樂村康樂路286號288號）",
      "151287" : "新廉瀚（花蓮縣新城鄉新興路28號30號1樓）",
      "151759" : "北埔（花蓮縣新城鄉北埔路282號）",
      "196165" : "海星（花蓮縣新城鄉嘉新路63巷1號1樓）",
      "215105" : "蓮發（花蓮縣新城鄉北


EndCharIndex = 23, EntityName = "Type" }
                                }
                            },
                            new EntityLabelObject
                            {
                                StartCharIndex = 37,
                                EndCharIndex = 48,
                                EntityName = "Toppings",
                                Children = new[]
                                {
                                    new EntityLabelObject { StartCharIndex = 37, EndCharIndex = 41, EntityName = "Quantity" },
                                    new EntityLabelObject { StartCharIndex = 43, EndCharIndex = 48, EntityName = "Type" }
                                }
                            }
                        }
                    },
                }


что творится в Храме Атал\'Хаккара.$B$BТролли Атал\'ай – племя темных заклинателей, известных тем, что используют запретную магию. Можешь себе представить, как мы были поражены, когда узнали что храм затоплен.$B$BТеперь его сторожат зеленые драконы, которые утверждают, что они защитники Азерота.$B$BМы должны выяснить, что произошло. Исследуй окрестности озера Слез и собери артефакты Атал\'ай. С их помощью я смогу собрать всю картину воедино.",
    ["O"] = "Соберите 10 артефактов Атал\'ай для Фелзерула из Каменора.",
    ["T"] = "Озеро Слез",
  },
  [1425] = {
    ["D"] = "Пока я чиню эту повозку, $N, выполни для меня еще одно, последнее задание. $B$BЯ собрал наиболее важные припасы, уцелевшие после набегов огров. Доставь их в Крепость Стражей Пустоты. Она выстроена в холмах, на севере Выжженных земель, для наблюдения за Темным порталом.$B$BДобраться туда можно по восточной дороге. Когда она разветвится, сверни на юг к Выжженным землям, а потом налево на следующей развилке. Не сходи с дороги,$N, и не теряй бдительности",
    ["O"] = "Доставьте груз в Крепость Стражей Пустоты интенданту Лунгерцу.",
    ["T"] = "Доставка груза",
  },
  [1426] = {
    ["D"] = "Мне не нравится ни море, ни твари, что лезут из его глубин. Море могущественно, но слепо, бесчувственно и жестоко. С какой радостью я истреблял бы этих рыболюдей сотнями, будь у меня возможность. Но мне принесет и некоторую радость зрелище их гибели от рук тех, кто выполняет волю Орды.$B$BОт твоих рук, $c. Скольких ты сможешь убить? Хочешь ли рискнуть и сразиться с сильнейшими из них?",
    ["O"] = "Убейте 10 болотных мурлоков, 10 болотных чернильщиков и 10 болотных трупоедов, затем вернитесь к Котору в Болото Печали.",
    ["T"] = "Угроза с моря.",
  },
  [1427] = {
    ["D"] = "Прежде чем пойти отдохнуть, пообщайся с Ток\'Каром. Пок


FPIS_U3;

			// Get all user last points
			const last_point_U1 = await veFPIS_instance.get_last_user_point(STAKING_OWNER);
			const last_point_U2 = await veFPIS_instance.get_last_user_point(STAKING_OWNER2);
			const last_point_U3 = await veFPIS_instance.get_last_user_point(STAKING_OWNER3);

			// Get all user biases
			const bias_U1 = parseFloat(new BigNumber(last_point_U1.bias).div(BIG18).toNumber().toFixed(4));
			const bias_U2 = parseFloat(new BigNumber(last_point_U2.bias).div(BIG18).toNumber().toFixed(4));
			const bias_U3 = parseFloat(new BigNumber(last_point_U3.bias).div(BIG18).toNumber().toFixed(4));
			const bias_SUM = bias_U1 + bias_U2 + bias_U3;
			// console.log(`bias_U1 @${j}: `, bias_U1);

			// Get all user slopes
			const slope_U1 = parseFloat(new BigNumber(last_point_U1.slope).div(BIG18).toNumber().toFixed(10));
			const slope_U2 = parseFloat(new BigNumber(last_point_U2.slope).div(BIG18).toNumber().toFixed(10));
			const slope_U3 = parseFloat(new BigNumber(last_point_U3.slope).div(BIG18).toNumber().toFixed(10));
			const slope_SUM = slope_U1 + slope_U2 + slope_U3;
			// console.log(`slope_U1 @${j}: `, slope_U1);

			// Get all user fpis_amts (from last_point)
			const fpis_amt_last_point_U1 = parseFloat(new BigNumber(last_point_U1.fpis_amt).div(BIG18).toNumber().toFixed(4));
			const fpis_amt_last_point_U2 = parseFloat(new BigNumber(last_point_U2.fpis_amt).div(BIG18).toNumber().toFixed(4));
			const fpis_amt_last_point_U3 = parseFloat(new BigNumber(last_point_U3.fpis_amt).div(BIG18).toNumber().toFixed(4));
			const fpis_amt_last_point_SUM = fpis_amt_last_point_U1 + fpis_amt_last_point_U2 + fpis_amt_last_point_U3;

			// Get all user fpis_amts (from locked)
			const fpis_amt_locked_U1 = new BigNumber(await veFPIS_instance.locked__amount(STAKING_OWNER)).div(BIG18).toNumber();
			const fpis_amt_locked_U2 = new BigNumber(await veFPIS_instance.locked__amount(STAKING_OWNER2)).div(BIG18).toNumber();
			const fpis_amt_locked_U3 = new BigNumber(await veFPIS_instance.locked__amount(STAKING_OWNER3)).div(BIG18).toNumber();
			const fpis_amt_locked_SUM = fpis_amt_locked_U1 + fpis_amt_locked_U2 + fpis_amt_locked_U3;

			const veFPIS_balance_mid_usr = veFPIS_SUM;
			const slope_mid_usr = slope_SUM;
			const bias_mid_usr = bias_SUM;
			const FPIS_supply_mid_usr = fpis_amt_last_point_SUM;
			const total_fpis = parseFloat(new BigNumber(await veFPIS_instance.totalFPISSupply()).div(BIG18).toNumber().toFixed(4));
			const total_supply = parseFloat(new BigNumber(await veFPIS_instance.totalSupply()).div(BIG18).toNumber().toFixed(4));
			const last_point_ttl = awai


# This file was auto-generated by Fern from our API Definition.

from __future__ import annotations
from ..core.unchecked_base_model import UncheckedBaseModel
import typing
from .image import Image
from .api_meta import ApiMeta
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
from .embed_by_type_response_embeddings import EmbedByTypeResponseEmbeddings
import typing_extensions
from ..core.unchecked_base_model import UnionMetadata

class EmbeddingsFloatsEmbedResponse(UncheckedBaseModel):
    response_type: typing.Literal["embeddings_floats"] = "embeddings_floats"
    id: str
    embeddings: typing.List[typing.List[float]]
    texts: typing.List[str]
    images: typing.Optional[typing.List[Image]] = None
    meta: typing.Optional[ApiMeta] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow")  # type: ignore # Pydantic v2
    else:

        class Config:
            smart_union = True
            extra = pydantic.Extra.allow

class EmbeddingsByTypeEmbedResponse(UncheckedBaseModel):
    response_type: typing.Literal["embeddings_by_type"] = "embeddings_by_type"
    id: str
    embeddings: EmbedByTypeResponseEmbeddings
    texts: typing.List[str]
    images: typing.Optional[typing.List[Image]] = None
    meta: typing.Optional[ApiMeta] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow")  # type: ignore # Pydantic v2
    else:

        class Config:
            smart_union = True
            extra = pydantic.Extra.allow

EmbedResponse = typing_extensions.Annotated[
    typing.Union[EmbeddingsFloatsEmbedResponse, EmbeddingsByTypeEmbedResponse],
    UnionMetadata(discriminant="response_type"),
]


().mockImplementation(() => "bar");
  expect(mock("foo")).toBe("bar");
  expect(mock).toHaveBeenCalledWith("foo");
  expect(mock("foo")).toBe("bar");
  expect(mock).toHaveBeenCalledWith("foo");
});

test("mock implementation one time", () => {
  /* Accepts a function that will be used as an implementation of the mock
    for one call to the mocked function.
    Can be chained so that multiple function calls produce different results. */

  const mock = jest.fn().mockImplementationOnce(() => "bar");

  expect(mock("foo")).toBe("bar");
  expect(mock).toHaveBeenCalledWith("foo");

  expect(mock("baz")).toBe(undefined); // To Understand 'undefined' read the above message
  expect(mock).toHaveBeenCalledWith("baz");
});

test("mock return value", () => {
  const mock = jest.fn();
  mock.mockReturnValue("bar");

  expect(mock("foo")).toBe("bar");
  expect(mock).toHaveBeenCalledWith("foo");
});

test("mock promise resolution", () => {
  // Useful to mock async functions in async tests:

  const mock = jest.fn();
  mock.mockResolvedValue("bar");

  expect(mock("foo")).resolves.toBe("bar");
  expect(mock).toHaveBeenCalledWith("foo");
});
import { useEffect } from 'react'
import { useDispatch } from 'react-redux'
import { useScores, useMatchesLeft } from './globalStateHooks'
import { addMessage } from '../../features/TwoPlayerGame/twoPlayerGameSlice'
import { MessageType } from '../../features/TwoPlayerGame/MessageType'

export const useDetermineWinner = () => {
  const dispatch = useDispatch()
  const scores = useScores()
  const matchesLeft = useMatchesLeft()

  const determineWinner = () => {
    if (scores.player1 === scores.player2) {
      dispatch(
        addMessage({
          msg: 'The Game is a Tie!',
          type: MessageType.neutral
        })
      )
    } else {
      dispatch(
        addMessage({
          msg: `Player ${scores.player2 > scores.player1 ? 2 : 1} Wins!`,
          type: MessageType.success
        })
      )
    }
  }

  useEffect(() => {
    if (matchesLeft === 0) {
      determineWinner()
    }
  }, [addMessage, matchesLeft, scores])
}
import { IWeapon } from "./type";
import { Component } from "./component";

export class Weapon {
    private _weapon: IWeapon;
    private _ammo: number;
    private _components: Set<Component>;

    Id: number; // TODO: set internal weapon number, so cheat is not possible!
    Name: string;
    Hash: number;

    constructor(weapon:IWeapon, ammo:number) {
        this.Id = -1; // TODO: generate random weapon id for anti cheat :)
        this._weapon = weapon;
        this.Name = this._weapon.Name;
        this.Hash = this._weapon.Hash;

        this._ammo = ammo; // TODO: Client send shoot event to calc new server-side ammo.
        this._components = new Set();

        this.addComponent(new Component("Base Model", 0xF3462F33, "COMPONENT_KNUCKLE_VARMOD_BASE"));
    }

    setAmmo(amount:number):void {
        this._ammo = amount;
        // TODO: send client update!
        // TODO: Fire update event!
    }

    getAmmo():number {
        return this._ammo;
    }

    addComponent(weaponComp:Component):boolean {
        if(!this._components.has(weaponComp)) {
            return false;
        } else {
            // TODO: Send client update!
            this._components.add(weaponComp);
            return true;
        }
    }

    removeComponent(weaponComp:Component):boolean


tag() - 1;

            if (spieltag <= 0) {
                spieltag = 1;
            }
        }
        // Nächste Spieltag
        else if (spieltag == NAECHSTER_SPIELTAG) {
            spieltag = HOVerwaltung.instance().getModel().getBasics().getSpieltag();

            if (spieltag > 14) {
                spieltag = 14;
            }

        }

       List<Paarung> paarungen = this.model.getCurrentSeries().getFixturesOfMatchDay(spieltag);

        String bordertext = TranslationFacility.tr("Spieltag") + " " + spieltag;

        if (paarungen != null && !paarungen.isEmpty()) {
            bordertext += ("  ( " + paarungen.get(0).getDatum().toLocaleDateTime() + " )");
        }

        setBorder(BorderFactory.createTitledBorder(bordertext));

        // Update panel when pairings are found
        if ((paarungen != null) && (paarungen.size() == 4)) {
            resetAllLabelsFormat();

            // Erste Paarung------------------------------------------

            for (int i = 0; i < buttons.length; i++) {
                Paarung paarung = paarungen.get(i);
                buttons[i].setActionCommand(paarung.getMatchId() + "," + paarung.getHeimId() + ","
                        + paarung.getGastId() + "," + paarung.getToreHeim() + ","
                        + paarung.getToreGast());
                setMatchButton(buttons[i], paarung);
                fillRow(homeTeams[i], visitorTeams[i], results[i], paarung, myTeamID, myTeamName);
            }
        }
        // Keine Paarungen
        else {
            for (JButton button : buttons) setMatchButton(button, null);
        }
    }

    private void fillRow(JLabel homeTeam, JLabel visitorTeam, JLabel result, Paarung paarung,
                         int myTeamID, String myTeamName) {
        homeTeam.setText(paarung.getHeimName());
        visitorTeam.setText(paarung.getGastName());
        homeTeam.setBackground(getColor(HOColorName.LEAGUE_PANEL_BG));
        visitorTeam.setBackground(getColor(HOColorName.LEAGUE_PANEL_BG));
        result.setBackground(getColor(HOColorName.LEAGUE_PANEL_BG));
        if ((paarung.getToreHeim() > -1) && (paarung.getToreGast() > -1)) {
            result.setText(StringUtils.getResultString(paarung.getToreHeim(), paarung.getToreGast(), ""));

            // HomeVictory
            if (paarung.getToreHeim() > paarung.getToreGast()) {
                homeTeam.setFont(homeTeam.getFont().deriveFont(Font.BOLD));
                homeTeam.setForeground(HODefaultTableCellRenderer.SELECTION_FG);
                if (paarung.getHeimId() == myTeamID){
                    result.setForeground(getColor(HOColorName.TABLEENTRY_IMPROVEMENT_FG));
                    result.setFont(homeTeam.getFont().deriveFont(Font.BOLD));
                }
                else if (paarung.getGastId() == myTeamID){
                    result.setForeground(getColor(HOColorName.TABLEENTRY_DECLINE_FG));
                    result.setFont(homeTeam.getFont().deriveFont(Font.BOLD));
                }

            }
            // Visitor Victory
            else if (paarung.getToreHeim() < paarung.getToreGast()) {
                visitorTeam.setFont(homeTeam.getFont().deriveFont(Font.BOLD));
                visitorTeam.setForeground(HODefaultTableCellRenderer.SELECTION_FG);
                if (paarung.getHeimId() == myTeamID){
                    result.setForeground(getColor(HOColorName.TABLEENTRY_DECLINE_FG));
                    result.setFont(homeTeam.getFont().deriveFont(Font.BOLD


treesitter.get_node({ bufnr = bufnr, row = row - 1, col = col - 1 })
                else
                    tsnode = vim.treesitter.get_node_at_pos(bufnr, row - 1, col - 1, {})
                end
                if tsnode and tsnode:type() == "type_identifier" then
                    local type_spec_node = tsnode:parent()
                    if not type_spec_node or type_spec_node:type() ~=


us_bits() - current_leading_unset_bits < number_of_bits_required;
		if unlikely!(quick_check_to_eliminate_most_cases_that_are_likely_to_be_unsuccessful)
		{
			return Right(Self::aligned_trailing_unset_bits(current, power_of_two_exponent))
		}

		let (aligned_shift, shift_decrement) =
		{
			let unaligned_shift =
			{
				let lowest_top_bit_count =
				{
					let irrelevant_top_bits_count = current_leading_unset_bits + 1;
					let lowest_top_bit_count = irrelevant_top_bits_count + number_of_bits_required;
					if unlikely!(lowest_top_bit_count > NumberOfBits::InBitSetWord)
					{
						return Right(Self::aligned_trailing_unset_bits(current, power_of_two_exponent))
					}
					lowest_top_bit_count
				};

				(NumberOfBits::InBitSetWord - lowest_top_bit_count).to_u64()
			};

			let shift_decrement = 1 << power_of_two_exponent;

			let too_few_bits_available_for_alignment = unaligned_shift != 0 && unaligned_shift < shift_decrement;
			if unlikely!(too_few_bits_available_for_alignment)
			{
				return Right(Self::aligned_trailing_unset_bits(current, power_of_two_exponent))
			}
			let aligned_shift = unaligned_shift.round_down_to_power_of_two_exponent_usize(power_of_two_exponent);

			(aligned_shift, shift_decrement)
		};

		let unshifted_bits_to_set = (1 << number_of_bits_required.to_u64()) - 1;
		let mut shift = aligned_shift;
		loop
		{
			let bits_to_set = unshifted_bits_to_set << shift;
			let all_bits_to_set_are_currently_unset = current.to_u64() & bits_to_set == 0;
			if all_bits_to_set_are_currently_unset
			{
				return
				{
					bit_set_word_pointer.set_some_bits(current, bits_to_set);

					let offset_into_bit_set =
					{
						let major_location = bit_set_word_pointer.difference_in_number_of_bits(self.inclusive_start_of_bit_set);
						let minor_location = NumberOfBits::InBitSetWord - (number_of_bits_required + NumberOfBits(shift as usize));
						major_location + minor_location
					};

					Left(self.successful_allocation(bit_set_word_pointer, offset_into_bit_set, number_of_bits_required))
				}
			}

			if unlikely!(shift == 0)
			{
				return Right(Self::aligned_trailing_unset_bits(current, power_of_two_exponent))
			}
			shift -= shift_decrement;
		}
	}

	#[inline(always)]
	fn number_of_blocks_is_64_or_more(&self, _number_of_bits_required: NumberOfBits, _bit_set_word_pointer: BitSetWordPointer, current: BitSetWord, current_leading_unset_bits: NumberOfBits, contiguous_unset_bits_now_available: NumberOfBits, power_of_two_exponent: usize) -> Either<(MemoryAddress, usize), NumberOfBits>
	{
		if likely!(current_leading_unset_bits.is_one_bit_set_word())
		{
			Right(contiguous_unset_bits_now_available)
		}
		else
		{
			Right(Self::aligned_trailing_unset_bits(current, power_of_two_exponent))
		}
	}

	#[inline(always


,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4,
.bg-dark h5,
.bg-dark h6,
.bg-dark span,
.bg-color h1,
.bg-color h2,
.bg-color h3,
.bg-color h4,
.bg-color h5,
.bg-color h6,
.bg-color span {
  color: #fff;
}

[data-overlay-dark] p,
.bg-dark p,
.bg-color p {
  color: #dad6d6;
}

[data-overlay-dark="0"]:before,
[data-overlay-light="0"]:before {
  opacity: 0;
}

[data-overlay-dark="1"]:before,
[data-overlay-light="1"]:before {
  opacity: 0.1;
}

[data-overlay-dark="2"]:before,
[data-overlay-light="2"]:before {
  opacity: 0.2;
}

[data-overlay-dark="3"]:before,
[data-overlay-light="3"]:before {
  opacity: 0.3;
}

[data-overlay-dark="4"]:before,
[data-overlay-light="4"]:before {
  opacity: 0.4;
}

[data-overlay-dark="5"]:before,
[data-overlay-light="5"]:before {
  opacity: 0.5;
}

[data-overlay-dark="6"]:before,
[data-overlay-light="6"]:before {
  opacity: 0.6;
}

[data-overlay-dark="7"]:before,
[data-overlay-light="7"]:before {
  opacity: 0.7;
}

[data-overlay-dark="8"]:before,
[data-overlay-light="8"]:before {
  opacity: 0.8;
}

[data-overlay-dark="9"]:before,
[data-overlay-light="9"]:before,
[data-overlay-color="9"]:before {
  opacity: 0.9;
}

[data-overlay-dark="10"]:before,
[data-overlay-light="10"]:before {
  opacity: 1;
}

/* ====================== [ End Overlay ] ====================== */
/* ====================== [ Start Heading ] ====================== */
.sec-head {
  position: relative;
  margin: 0 auto 80px;
}

.sec-head h6 {
  font-weight: 300;
  font-size: 17px;
  text-transform: uppercase;
  letter-spacing: 7px;
  margin-bottom: 10px;
}

.sec-head h3 {
  font-size: 48px;
  font-weight: 600;
}

.sec-head h2 {
  font-size: 70px;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.sub-title {
  position: relative;
  margin-bottom: 20px;
}

.sub-title h6 {
  font-weight: 300;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 4px;
  display: inline-block;
  background: -webkit-gradient(
    linear,
    left top,
    right top,
    from(#12c2e9),
    color-stop(#c471ed),
    to(#f64f59)
  );
  background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59);
  background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59);
  background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59);
  padding: 7px 12px;
  border-radius: 10px;
}

.main-title {
  font-weight: 600;
  line-height: 1.5;
  margin-bottom:


ter = BufWriter::new( f );
            writer.write( listener_data.port.to_string().as_bytes() )
                .expect( "Failed to write pid file" );
            writer.flush()
                .expect( "Failed to flush pid file" );
            drop( writer );
        },
        Err( e ) => println!( "Failed to write pid file: {}", e ),
    };

    // Get the full game file path.
    let mut game_file = PathBuf::from( package_path.clone() );
    game_file.push( game_path );

    // Current working directory is the directory of the game executable
    let cwd: &Path = game_file.parent()
        .expect( "Could not get parent dir from path" );

    let mut package_credentials: PathBuf = PathBuf::from( &package_path );
    package_credentials.push( ".gj-credentials" );

    let mut game_file_credentials: PathBuf = PathBuf::from( cwd );
    game_file_credentials.push( ".gj-credentials" );

    // Copy over the credential file from the package directory to the game executable's directory.
    if package_credentials != game_file_credentials {
        std::fs::copy( package_credentials.as_path(), game_file_credentials.as_path() ).unwrap();
    }

    let mut game_handle: Child = Command::new( &game_file )
        .current_dir( cwd )
        .args( game_args.as_slice() )
        .stderr( Stdio::piped() )
        .spawn()
        .unwrap_or_else( |e| panic!( "Couldn't launch game: {}", e ) );

    let result: ExitStatus = game_handle.wait().unwrap_or_else( |e| panic!( "Couldn't wait for game to launch/finish {}", e ) );

    if std::fs::remove_file( &pid_path ).is_err() {
        println!( "Failed to remove pid file: {}", pid_path.display() );
    }

    println!( "Game exited with exit code {}", result.code().expect( "Could not discern wrapped game exit code" ) );

    if !result.success() {
        let mut err_str = String::new();
        match game_handle.stderr.expect( "Could not get err stream" ).read_to_string( &mut err_str )  {
            Err(e) => panic!( "Could not read err stream {}", e ),
            Ok(_) => println!( "Stderr: {}", err_str ),
        }
    }
}
#[doc = "Register `XTAL_16MHZ_CAPABANK_TRIM` reader"]
pub struct R(crate::R<XTAL_16MHZ_CAPABANK_TRIM_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<XTAL_16MHZ_CAPABANK_TRIM_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::convert::From<crate::R<XTAL_16MHZ_CAPABANK_TRIM_SPEC>> for R {
    fn from(reader: crate::R<XTAL_16MHZ_CAPABANK_TRIM_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Register `XTAL_16MHZ_CAPABANK_TRIM` writer"]
pub struct W(crate::W<XTAL_16MHZ_CAPABANK_TRIM_SPEC>);
impl core::ops::Deref for W {
    type Target = crate::W<XTAL_16MHZ_CAPABANK_TRIM_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::ops::DerefMut for W {
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}
impl core::convert::From<crate::W<XTAL_16MHZ_CAPABANK_TRIM_SPEC>>


solid; border-width: 1px;">
	 */
	YELLOW_LIGHTEN_5("#fffde7"),
	/**
	 * GWT material color name "YELLOW_LIGHTEN_4" -
	 *
	 */
	YELLOW_LIGHTEN_4("#fff9c4"),
	/**
	 * GWT material color name "YELLOW_LIGHTEN_3" -
	 *
	 */
	YELLOW_LIGHTEN_3("#fff59d"),
	/**
	 * GWT material color name "YELLOW_LIGHTEN_2" -
	 *
	 */
	YELLOW_LIGHTEN_2("#fff176"),
	/**
	 * GWT material color name "YELLOW_LIGHTEN_1" -
	 *
	 */
	YELLOW_LIGHTEN_1("#ffee58"),
	/**
	 * GWT material color name "YELLOW" -
	 */
	YELLOW("#ffeb3b"),
	/**
	 * GWT material color name "YELLOW_DARKEN_1" -
	 */
	YELLOW_DARKEN_1("#fdd835"),
	/**
	 * GWT material color name "YELLOW_DARKEN_2" -
	 */
	YELLOW_DARKEN_2("#fbc02d"),
	/**
	 * GWT material color name "YELLOW_DARKEN_3" -
	 */
	YELLOW_DARKEN_3("#f9a825"),
	/**
	 * GWT material color name "YELLOW_DARKEN_4" -
	 */
	YELLOW_DARKEN_4("#f57f17"),
	/**
	 * GWT material color name "YELLOW_ACCENT_1" -
	 */
	YELLOW_ACCENT_1("#ffff8d"),
	/**
	 * GWT material color name "YELLOW_ACCENT_2" -
	 */
	YELLOW_ACCENT_2("#ffff00"),
	/**
	 * GWT material color name "YELLOW_ACCENT_3" -        </