code: func unlockAccounts(ctx *cli.Context, stack *node.Node) {
  	var unlocks []string
  	inputs := strings.Split(ctx.GlobalString(utils.UnlockedAccountFlag.Name), ",")
  	for _, input := range inputs {
  		if trimmed := strings.TrimSpace(input); trimmed != "" {
  			unlocks = append(unlocks, trimmed)
  		}
  	}
  	// Short circuit if there is no account to unlock.
  	if len(unlocks) == 0 {
  		return
  	}
  	// If insecure account unlocking is not allowed if node's APIs are exposed to external.
  	// Print warning log to user and skip unlocking.
  	if !stack.Config().InsecureUnlockAllowed && stack.Config().ExtRPCEnabled() {
  		utils.Fatalf("Account unlock with HTTP access is forbidden!")
  	}
  	ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore)
  	passwords := utils.MakePasswordList(ctx)
  	for i, account := range unlocks {
  		unlockAccount(ks, account, i, passwords)
  	}
  }
docs: // unlockAccounts unlocks any account specifically requested.