mrutkows closed pull request #807: Deprecating Interactive Mode and introducing 
Preview
URL: https://github.com/apache/incubator-openwhisk-wskdeploy/pull/807
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/cmd/export.go b/cmd/export.go
index 1f8655c3..437fb4f2 100644
--- a/cmd/export.go
+++ b/cmd/export.go
@@ -117,7 +117,7 @@ func ExportCmdImp(cmd *cobra.Command, args []string) error {
        maniyaml := &parsers.YAML{}
        maniyaml.Project.Name = projectName
 
-       config, _ = deployers.NewWhiskConfig(wskpropsPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath, false)
+       config, _ = deployers.NewWhiskConfig(wskpropsPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath)
        client, _ = deployers.CreateNewClient(config)
 
        // Init supported runtimes and action files extensions maps
diff --git a/cmd/report.go b/cmd/report.go
index 655a4b20..3ef86a90 100644
--- a/cmd/report.go
+++ b/cmd/report.go
@@ -42,7 +42,7 @@ var reportCmd = &cobra.Command{
        Short:      wski18n.T(wski18n.ID_CMD_DESC_SHORT_REPORT),
        RunE: func(cmd *cobra.Command, args []string) error {
                if wskpropsPath != "" {
-                       config, _ := deployers.NewWhiskConfig(wskpropsPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath, false)
+                       config, _ := deployers.NewWhiskConfig(wskpropsPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath)
                        client, _ := deployers.CreateNewClient(config)
                        return printDeploymentInfo(client)
                } else {
@@ -51,7 +51,7 @@ var reportCmd = &cobra.Command{
                        // TODO() we should not only use const. for config 
files like .wskprops, but have a dedicated
                        // set of functions in its own package to interact with 
it as a resource
                        propPath := path.Join(userHome, ".wskprops")
-                       config, _ := deployers.NewWhiskConfig(propPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath, false)
+                       config, _ := deployers.NewWhiskConfig(propPath, 
utils.Flags.DeploymentPath, utils.Flags.ManifestPath)
                        client, _ := deployers.CreateNewClient(config)
                        return printDeploymentInfo(client)
                }
diff --git a/cmd/root.go b/cmd/root.go
index c29eca12..ca660a96 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -117,7 +117,7 @@ func init() {
        RootCmd.PersistentFlags().StringVarP(&utils.Flags.ManifestPath, 
"manifest", "m", "", wski18n.T(wski18n.ID_CMD_FLAG_MANIFEST))
        RootCmd.PersistentFlags().StringVarP(&utils.Flags.DeploymentPath, 
"deployment", "d", "", wski18n.T(wski18n.ID_CMD_FLAG_DEPLOYMENT))
        RootCmd.PersistentFlags().BoolVarP(&utils.Flags.Strict, "strict", "s", 
false, wski18n.T(wski18n.ID_CMD_FLAG_STRICT))
-       RootCmd.PersistentFlags().BoolVarP(&utils.Flags.UseInteractive, 
"allow-interactive", "i", false, wski18n.T(wski18n.ID_CMD_FLAG_INTERACTIVE))
+       RootCmd.PersistentFlags().BoolVarP(&utils.Flags.Preview, "preview", "", 
false, wski18n.T(wski18n.ID_CMD_FLAG_PREVIEW))
        RootCmd.PersistentFlags().BoolVarP(&utils.Flags.Verbose, "verbose", 
"v", false, wski18n.T(wski18n.ID_CMD_FLAG_VERBOSE))
        RootCmd.PersistentFlags().StringVarP(&utils.Flags.ApiHost, "apihost", 
"", "", wski18n.T(wski18n.ID_CMD_FLAG_API_HOST))
        RootCmd.PersistentFlags().StringVarP(&utils.Flags.Namespace, 
"namespace", "n", "", wski18n.T(wski18n.ID_CMD_FLAG_NAMESPACE))
@@ -230,7 +230,7 @@ func Deploy() error {
                deployer.ProjectPath = projectPath
                deployer.ManifestPath = utils.Flags.ManifestPath
                deployer.DeploymentPath = utils.Flags.DeploymentPath
-               deployer.IsInteractive = utils.Flags.UseInteractive
+               deployer.Preview = utils.Flags.Preview
 
                // master record of any dependency that has been downloaded
                deployer.DependencyMaster = 
make(map[string]utils.DependencyRecord)
@@ -238,8 +238,7 @@ func Deploy() error {
                clientConfig, error := deployers.NewWhiskConfig(
                        utils.Flags.CfgFile,
                        utils.Flags.DeploymentPath,
-                       utils.Flags.ManifestPath,
-                       deployer.IsInteractive)
+                       utils.Flags.ManifestPath)
                if error != nil {
                        return error
                }
@@ -310,9 +309,9 @@ func Undeploy() error {
                deployer.ProjectPath = utils.Flags.ProjectPath
                deployer.ManifestPath = utils.Flags.ManifestPath
                deployer.DeploymentPath = utils.Flags.DeploymentPath
-               deployer.IsInteractive = utils.Flags.UseInteractive
+               deployer.Preview = utils.Flags.Preview
 
-               clientConfig, error := 
deployers.NewWhiskConfig(utils.Flags.CfgFile, utils.Flags.DeploymentPath, 
utils.Flags.ManifestPath, deployer.IsInteractive)
+               clientConfig, error := 
deployers.NewWhiskConfig(utils.Flags.CfgFile, utils.Flags.DeploymentPath, 
utils.Flags.ManifestPath)
                if error != nil {
                        return error
                }
diff --git a/cmd/root_test.go b/cmd/root_test.go
index c370e601..72f6396c 100644
--- a/cmd/root_test.go
+++ b/cmd/root_test.go
@@ -74,7 +74,7 @@ type Input struct {
        ProjectPath    string
        DeploymentPath string
        ManifestPath   string
-       UseInteractive bool
+       Preview        bool
 }
 
 var expected_input Input
@@ -88,7 +88,7 @@ func initializeParameters() {
 
        expected_input.CfgFile = os.Getenv("GOPATH") + 
"/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/dat/wskprops"
        expected_input.Verbose = true
-       expected_input.UseInteractive = true
+       expected_input.Preview = false
        expected_input.ProjectPath = "fake_project_path"
        expected_input.DeploymentPath = "fake_deployment_path"
        expected_input.ManifestPath = "fake_manifest_path"
@@ -103,7 +103,7 @@ func checkValidAuthInfo(t *testing.T, expected_auth_flags 
Auth_flags) {
 func checkValidInputInfo(t *testing.T, expected_input Input) {
        assert.Equal(t, expected_input.CfgFile, utils.Flags.CfgFile, "CfgFile 
does not match.")
        assert.Equal(t, expected_input.Verbose, utils.Flags.Verbose, "Verbose 
does not match.")
-       assert.Equal(t, expected_input.UseInteractive, 
utils.Flags.UseInteractive, "ApiHoUseInteractivest does not match.")
+       assert.Equal(t, expected_input.Preview, utils.Flags.Preview, "Preview 
does not match.")
        assert.Equal(t, expected_input.ProjectPath, utils.Flags.ProjectPath, 
"ProjectPath does not match.")
        assert.Equal(t, expected_input.DeploymentPath, 
utils.Flags.DeploymentPath, "DeploymentPath does not match.")
        assert.Equal(t, expected_input.ManifestPath, utils.Flags.ManifestPath, 
"ManifestPath does not match.")
@@ -135,9 +135,6 @@ func composeCommand(auth Auth_flags, input Input) string {
        if input.Verbose {
                cmd = cmd + "-v "
        }
-       if input.UseInteractive {
-               cmd = cmd + "-i "
-       }
        return cmd
 }
 
diff --git a/deployers/servicedeployer.go b/deployers/servicedeployer.go
index 7fa8abed..023e18ee 100644
--- a/deployers/servicedeployer.go
+++ b/deployers/servicedeployer.go
@@ -18,10 +18,8 @@
 package deployers
 
 import (
-       "bufio"
        "fmt"
        "net/http"
-       "os"
        "path"
        "reflect"
        "strconv"
@@ -82,16 +80,14 @@ func NewDeploymentPackage() *DeploymentPackage {
 //   3. Collect information about the source code files in the working 
directory
 //   4. Create a deployment plan to create OpenWhisk service
 type ServiceDeployer struct {
-       ProjectName    string
-       Deployment     *DeploymentProject
-       Client         *whisk.Client
-       mt             sync.RWMutex
-       IsInteractive  bool
-       ManifestPath   string
-       ProjectPath    string
-       DeploymentPath string
-       // whether to deploy the action under the package
-       InteractiveChoice bool
+       ProjectName       string
+       Deployment        *DeploymentProject
+       Client            *whisk.Client
+       mt                sync.RWMutex
+       Preview           bool
+       ManifestPath      string
+       ProjectPath       string
+       DeploymentPath    string
        ClientConfig      *whisk.Config
        DependencyMaster  map[string]utils.DependencyRecord
        ManagedAnnotation whisk.KeyValue
@@ -101,7 +97,7 @@ type ServiceDeployer struct {
 func NewServiceDeployer() *ServiceDeployer {
        var dep ServiceDeployer
        dep.Deployment = NewDeploymentProject()
-       dep.IsInteractive = true
+       dep.Preview = true
        dep.DependencyMaster = make(map[string]utils.DependencyRecord)
 
        return &dep
@@ -264,41 +260,11 @@ func (deployer *ServiceDeployer) 
ConstructUnDeploymentPlan() (*DeploymentProject
 // TODO(TBD): according to some planning?
 func (deployer *ServiceDeployer) Deploy() error {
 
-       if deployer.IsInteractive == true {
+       if deployer.Preview {
                deployer.printDeploymentAssets(deployer.Deployment)
-
-               // TODO() See if we can use the promptForValue() function in 
whiskclient.go
-               reader := bufio.NewReader(os.Stdin)
-               fmt.Print(wski18n.T(wski18n.ID_MSG_PROMPT_DEPLOY))
-               text, _ := reader.ReadString('\n')
-               text = strings.TrimSpace(text)
-
-               if text == "" {
-                       text = "n"
-               }
-
-               // TODO() make possible responses constants (enum?) and create 
"No" corallary
-               if strings.EqualFold(text, "y") || strings.EqualFold(text, 
"yes") {
-                       deployer.InteractiveChoice = true
-                       if err := deployer.deployAssets(); err != nil {
-                               
wskprint.PrintOpenWhiskError(wski18n.T(wski18n.ID_MSG_DEPLOYMENT_FAILED))
-                               return err
-                       }
-
-                       
wskprint.PrintOpenWhiskSuccess(wski18n.T(wski18n.ID_MSG_DEPLOYMENT_SUCCEEDED))
-                       return nil
-
-               } else {
-                       // TODO() Should acknowledge if user typed (No/N/n) and 
if not still exit, but
-                       // indicate we took the response to mean "No", 
typically by displaying interpolated
-                       // response in parenthesis
-                       deployer.InteractiveChoice = false
-                       
wskprint.PrintOpenWhiskSuccess(wski18n.T(wski18n.ID_MSG_DEPLOYMENT_CANCELLED))
-                       return nil
-               }
+               return nil
        }
 
-       // non-interactive
        if err := deployer.deployAssets(); err != nil {
                
wskprint.PrintOpenWhiskError(wski18n.T(wski18n.ID_MSG_DEPLOYMENT_FAILED))
                return err
@@ -955,39 +921,11 @@ func (deployer *ServiceDeployer) createApi(api 
*whisk.ApiCreateRequest) error {
 }
 
 func (deployer *ServiceDeployer) UnDeploy(verifiedPlan *DeploymentProject) 
error {
-       if deployer.IsInteractive == true {
+       if deployer.Preview == true {
                deployer.printDeploymentAssets(verifiedPlan)
-
-               // TODO() See if we can use the promptForValue() function in 
whiskclient.go
-               reader := bufio.NewReader(os.Stdin)
-               fmt.Print(wski18n.T(wski18n.ID_MSG_PROMPT_UNDEPLOY))
-               text, _ := reader.ReadString('\n')
-               text = strings.TrimSpace(text)
-
-               if text == "" {
-                       text = "n"
-               }
-
-               // TODO() Use constants for possible return values y/N/yes/No 
etc.
-               if strings.EqualFold(text, "y") || strings.EqualFold(text, 
"yes") {
-                       deployer.InteractiveChoice = true
-
-                       if err := deployer.unDeployAssets(verifiedPlan); err != 
nil {
-                               
wskprint.PrintOpenWhiskError(wski18n.T(wski18n.T(wski18n.ID_MSG_UNDEPLOYMENT_FAILED)))
-                               return err
-                       }
-
-                       
wskprint.PrintOpenWhiskSuccess(wski18n.T(wski18n.T(wski18n.ID_MSG_UNDEPLOYMENT_SUCCEEDED)))
-                       return nil
-
-               } else {
-                       deployer.InteractiveChoice = false
-                       
wskprint.PrintOpenWhiskSuccess(wski18n.T(wski18n.T(wski18n.ID_MSG_UNDEPLOYMENT_CANCELLED)))
-                       return nil
-               }
+               return nil
        }
 
-       // non-interactive
        if err := deployer.unDeployAssets(verifiedPlan); err != nil {
                
wskprint.PrintOpenWhiskError(wski18n.T(wski18n.T(wski18n.ID_MSG_UNDEPLOYMENT_FAILED)))
                return err
@@ -1528,7 +1466,7 @@ func (deployer *ServiceDeployer) 
getDependentDeployer(depName string, depRecord
        depServiceDeployer.ProjectPath = projectPath
        depServiceDeployer.ManifestPath = manifestPath
        depServiceDeployer.DeploymentPath = deploymentPath
-       depServiceDeployer.IsInteractive = true
+       depServiceDeployer.Preview = true
 
        depServiceDeployer.Client = deployer.Client
        depServiceDeployer.ClientConfig = deployer.ClientConfig
diff --git a/deployers/whiskclient.go b/deployers/whiskclient.go
index 7f60359a..7d01bdac 100644
--- a/deployers/whiskclient.go
+++ b/deployers/whiskclient.go
@@ -18,8 +18,6 @@
 package deployers
 
 import (
-       "bufio"
-       "fmt"
        "net/http"
        "os"
        "path"
@@ -36,10 +34,9 @@ import (
 
 // Possible sources for config info (e.g., API Host, Auth Key, Namespace)
 const (
-       SOURCE_WSKPROPS          = ".wskprops"
-       SOURCE_WHISK_PROPERTIES  = "whisk.properties"
-       SOURCE_INTERACTIVE_INPUT = "interactve input"  // TODO() i18n?
-       SOURCE_DEFAULT_VALUE     = "wskdeploy default" // TODO() i18n?
+       SOURCE_WSKPROPS         = ".wskprops"
+       SOURCE_WHISK_PROPERTIES = "whisk.properties"
+       SOURCE_DEFAULT_VALUE    = "wskdeploy default" // TODO() i18n?
 )
 
 var (
@@ -174,52 +171,14 @@ func readFromWhiskProperty(pi whisk.PropertiesImp) {
        }
 }
 
-func readInteractivly() {
-       if len(apiHost.Value) == 0 {
-               host := promptForValue(wski18n.T(wski18n.ID_MSG_PROMPT_APIHOST))
-               if host == "" {
-                       // TODO() programmatically tell caller that we are 
using this default
-                       // TODO() make this configurable or remove
-                       host = "openwhisk.ng.bluemix.net"
-               }
-               apiHost = GetPropertyValue(apiHost, host, 
SOURCE_INTERACTIVE_INPUT)
-       }
-
-       if len(credential.Value) == 0 {
-               cred := promptForValue(wski18n.T(wski18n.ID_MSG_PROMPT_AUTHKEY))
-               credential.Value = cred
-               credential.Source = SOURCE_INTERACTIVE_INPUT
-
-               // The namespace is always associated with the credential.
-               // Both of them should be picked up from the same source.
-               if len(namespace.Value) == 0 || namespace.Value == 
whisk.DEFAULT_NAMESPACE {
-                       tempNamespace := 
promptForValue(wski18n.T(wski18n.ID_MSG_PROMPT_NAMESPACE))
-                       source := SOURCE_INTERACTIVE_INPUT
-
-                       if tempNamespace == "" {
-                               tempNamespace = whisk.DEFAULT_NAMESPACE
-                               source = SOURCE_DEFAULT_VALUE
-                       }
-
-                       namespace = GetPropertyValue(namespace, tempNamespace, 
source)
-               }
-       }
-
-       if len(apigwAccessToken.Value) == 0 {
-               accessToken := 
promptForValue(wski18n.T(wski18n.APIGW_ACCESS_TOKEN))
-               apigwAccessToken = GetPropertyValue(apigwAccessToken, 
accessToken, SOURCE_INTERACTIVE_INPUT)
-       }
-}
-
 // we are reading openwhisk credentials (apihost, namespace, and auth) in the 
following precedence order:
 // (1) wskdeploy command line `wskdeploy --apihost --namespace --auth`
 // (2) deployment file
 // (3) manifest file
 // (4) .wskprops
-// (5) prompt for values in interactive mode if any of them are missing
 // we are following the same precedence order for APIGW_ACCESS_TOKEN
 // but as a separate thread as APIGW_ACCESS_TOKEN only needed for APIs
-func NewWhiskConfig(proppath string, deploymentPath string, manifestPath 
string, isInteractive bool) (*whisk.Config, error) {
+func NewWhiskConfig(proppath string, deploymentPath string, manifestPath 
string) (*whisk.Config, error) {
        // reset credential, apiHost, namespace, etc to avoid any conflicts as 
they initialized globally
        resetWhiskConfig()
 
@@ -258,13 +217,6 @@ func NewWhiskConfig(proppath string, deploymentPath 
string, manifestPath string,
                namespace.Source = SOURCE_DEFAULT_VALUE
        }
 
-       // If we still can not find the values we need, check if it is 
interactive mode.
-       // If so, we prompt users for the input.
-       // The namespace is set to a default value at this point if not 
provided.
-       if isInteractive {
-               readInteractivly()
-       }
-
        mode := true
        if len(cert.Value) != 0 && len(key.Value) != 0 {
                mode = false
@@ -274,7 +226,7 @@ func NewWhiskConfig(proppath string, deploymentPath string, 
manifestPath string,
                AuthToken:        credential.Value, //Authtoken
                Namespace:        namespace.Value,  //Namespace
                Host:             apiHost.Value,
-               Version:          "v1", // TODO() should not be hardcoded, 
should prompt/warn user of default
+               Version:          "v1", // TODO() should not be hardcoded, 
should warn user of default
                Cert:             cert.Value,
                Key:              key.Value,
                Insecure:         mode, // true if you want to ignore 
certificate signing
@@ -335,14 +287,3 @@ func validateClientConfig(credential PropertyValue, 
apiHost PropertyValue, names
 
        return nil
 }
-
-// TODO() perhaps move into its own package "wskread" and add support for 
passing in default value
-var promptForValue = func(msg string) string {
-       reader := bufio.NewReader(os.Stdin)
-       fmt.Print(msg)
-
-       text, _ := reader.ReadString('\n')
-       text = strings.TrimSpace(text)
-
-       return text
-}
diff --git a/deployers/whiskclient_test.go b/deployers/whiskclient_test.go
index f27f9916..7f23378b 100644
--- a/deployers/whiskclient_test.go
+++ b/deployers/whiskclient_test.go
@@ -66,7 +66,7 @@ func TestNewWhiskConfig(t *testing.T) {
        propPath := ""
        manifestPath := ""
        deploymentPath := ""
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        if err == nil {
                pi := whisk.PropertiesImp{
                        OsPackage: whisk.OSPackageImp{},
@@ -90,7 +90,7 @@ func TestNewWhiskConfigCommandLine(t *testing.T) {
        utils.Flags.Auth = CLI_AUTH
        utils.Flags.Namespace = CLI_NAMESPACE
 
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskdeploy command 
line")
        assert.Equal(t, CLI_HOST, config.Host, "Failed to get host name from 
wskdeploy command line")
        assert.Equal(t, CLI_AUTH, config.AuthToken, "Failed to get auth token 
from wskdeploy command line")
@@ -99,7 +99,7 @@ func TestNewWhiskConfigCommandLine(t *testing.T) {
 
        utils.Flags.Key = WSKPROPS_KEY
        utils.Flags.Cert = WSKPROPS_CERT
-       config, err = NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err = NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskdeploy command 
line")
        assert.Equal(t, CLI_HOST, config.Host, "Failed to get host name from 
wskdeploy command line")
        assert.Equal(t, CLI_AUTH, config.AuthToken, "Failed to get auth token 
from wskdeploy command line")
@@ -115,7 +115,7 @@ func TestNewWhiskConfigDeploymentFile(t *testing.T) {
        propPath := ""
        manifestPath := ""
        deploymentPath := "../tests/dat/deployment_validate_credentials.yaml"
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from deployment file")
        assert.Equal(t, DEPLOYMENT_HOST, config.Host, "Failed to get host name 
from deployment file")
        assert.Equal(t, DEPLOYMENT_AUTH, config.AuthToken, "Failed to get auth 
token from deployment file")
@@ -139,7 +139,7 @@ func TestNewWhiskConfigWithWskProps(t *testing.T) {
        propPath := "../tests/dat/wskprops"
        manifestPath := ""
        deploymentPath := ""
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskprops")
        assert.Equal(t, WSKPROPS_HOST, config.Host, "Failed to get host name 
from wskprops")
        assert.Equal(t, WSKPROPS_AUTH, config.AuthToken, "Failed to get auth 
token from wskprops")
@@ -149,7 +149,7 @@ func TestNewWhiskConfigWithWskProps(t *testing.T) {
        assert.False(t, config.Insecure, "Config should set insecure to false")
 
        propPath = "../tests/dat/wskpropsnokeycert"
-       config, err = NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err = NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskprops")
        assert.Equal(t, WSKPROPS_HOST, config.Host, "Failed to get host name 
from wskprops")
        assert.Equal(t, WSKPROPS_AUTH, config.AuthToken, "Failed to get auth 
token from wskprops")
@@ -159,15 +159,6 @@ func TestNewWhiskConfigWithWskProps(t *testing.T) {
        assert.True(t, config.Insecure, "Config should set insecure to true")
 }
 
-// TODO(#693) add the following test
-/*func TestNewWhiskConfigInteractiveMode(t *testing.T) {
-       propPath := ""
-       manifestPath := ""
-       deploymentPath := ""
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
true)
-       assert.Nil(t, err, "Failed to read credentials in interactive mode")
-}*/
-
 func TestNewWhiskConfigWithCLIDeploymentAndManifestFile(t *testing.T) {
        propPath := ""
        manifestPath := "../tests/dat/manifest_validate_credentials.yaml"
@@ -177,7 +168,7 @@ func TestNewWhiskConfigWithCLIDeploymentAndManifestFile(t 
*testing.T) {
        utils.Flags.Auth = CLI_AUTH
        utils.Flags.Namespace = CLI_NAMESPACE
 
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from CLI or deployment 
or manifest file")
        assert.Equal(t, config.Host, CLI_HOST, "Failed to get host name from 
wskdeploy CLI")
        assert.Equal(t, config.AuthToken, CLI_AUTH, "Failed to get auth token 
from wskdeploy CLI")
@@ -196,7 +187,7 @@ func TestNewWhiskConfigWithCLIAndDeployment(t *testing.T) {
        utils.Flags.Auth = CLI_AUTH
        utils.Flags.Namespace = CLI_NAMESPACE
 
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskdeploy CLI")
        assert.Equal(t, config.Host, CLI_HOST, "Failed to get host name from 
wskdeploy CLI")
        assert.Equal(t, config.AuthToken, CLI_AUTH, "Failed to get auth token 
from wskdeploy CLI")
@@ -215,7 +206,7 @@ func TestNewWhiskConfigWithCLIAndManifest(t *testing.T) {
        utils.Flags.Auth = CLI_AUTH
        utils.Flags.Namespace = CLI_NAMESPACE
 
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from manifest file")
        assert.Equal(t, config.Host, CLI_HOST, "Failed to get host name from 
wskdeploy CLI")
        assert.Equal(t, config.AuthToken, CLI_AUTH, "Failed to get auth token 
from wskdeploy CLI")
@@ -233,7 +224,7 @@ func TestNewWhiskConfigWithCLIAndWskProps(t *testing.T) {
        utils.Flags.ApiHost = CLI_HOST
        utils.Flags.Auth = CLI_AUTH
        utils.Flags.Namespace = CLI_NAMESPACE
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from wskdeploy command 
line")
        assert.Equal(t, config.Host, CLI_HOST, "Failed to get host name from 
wskdeploy command line")
        assert.Equal(t, config.AuthToken, CLI_AUTH, "Failed to get auth token 
from wskdeploy command line")
@@ -247,7 +238,7 @@ func TestNewWhiskConfigWithDeploymentAndManifestFile(t 
*testing.T) {
        propPath := ""
        manifestPath := "../tests/dat/manifest_validate_credentials.yaml"
        deploymentPath := "../tests/dat/deployment_validate_credentials.yaml"
-       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath, 
false)
+       config, err := NewWhiskConfig(propPath, deploymentPath, manifestPath)
        assert.Nil(t, err, "Failed to read credentials from manifest or 
deployment file")
        assert.Equal(t, config.Host, DEPLOYMENT_HOST, "Failed to get host name 
from deployment file")
        assert.Equal(t, config.AuthToken, DEPLOYMENT_AUTH, "Failed to get auth 
token from deployment file")
diff --git a/docs/wskdeploy_configuring.md b/docs/wskdeploy_configuring.md
index f2eadfa7..b5d80238 100644
--- a/docs/wskdeploy_configuring.md
+++ b/docs/wskdeploy_configuring.md
@@ -50,12 +50,3 @@ Values set using the Whisk Command Line Interface (CLI) are 
stored in a ```.wskp
 
 It assumes that you have setup and can run the wskdeploy as described in the 
project README. If so, then the utility will use the OpenWhisk APIHOST and AUTH 
variable values in your .wskprops file to attempt deployment.
 
-5. **Interactice mode**
-
-If interactive mode is enabled (i.e., using the ```-i``` or 
```--allow-interactive``` flags) then wskdeploy will prompt for any missing 
(required) values.
-
-for example:
-
-```
-$ wskdeploy -i -m manifest.yaml
-```
diff --git a/docs/wskdeploy_faq.md b/docs/wskdeploy_faq.md
index 8aa7cfc0..c3ce6874 100644
--- a/docs/wskdeploy_faq.md
+++ b/docs/wskdeploy_faq.md
@@ -26,4 +26,3 @@
 
 -  The ```wskdeploy``` utility will cease deploying as soon as it receives an 
error from the target platform and display what error information it receives 
to you.
 - then it will attempt to undeploy any entities that it attempted to deploy.
-  - If "interactive mode" was used to deploy, then you will be prompted to 
confirm you wish to undeploy.
diff --git a/docs/wskdeploy_package_minimal.md 
b/docs/wskdeploy_package_minimal.md
index 772537a8..59458b5c 100644
--- a/docs/wskdeploy_package_minimal.md
+++ b/docs/wskdeploy_package_minimal.md
@@ -53,15 +53,15 @@ If you called your manifest "manifest_helloworld.yaml" (not 
using the default ma
 $ wskdeploy -p <my_directory> -m docs/examples/manifest_package_minimal.yaml
 ```
 
-#### Interactive mode
+#### Dry Run mode
 
-If you want to simply verify your manifest file can be read and parsed 
properly before deploying, you can add the ```-i``` or 
```--allow-interactive``` flag:
+If you want to simply verify your manifest file can be read and parsed 
properly before deploying, you can add the ```--preview``` flag:
 
 ```sh
-$ ./wskdeploy -i -m docs/examples/manifest_package_minimal.yaml
+$ ./wskdeploy --preview -m docs/examples/manifest_package_minimal.yaml
 ```
 
-and the utility will stop, show you all the OpenWhisk package components it 
will deploy from your manifest and ask you if you want to deploy them or not.
+and the utility will stop, show you all the OpenWhisk package components it 
will deploy from your manifest.
 
 ```sh
 Package:
@@ -70,8 +70,6 @@ Name: hello_world_package
   annotations:
 Triggers:
 Rules:
-
-Do you really want to deploy this? (y/N):
 ```
 
 ### Result
diff --git a/parsers/manifest_parser.go b/parsers/manifest_parser.go
index 0e754cbd..763dcbca 100644
--- a/parsers/manifest_parser.go
+++ b/parsers/manifest_parser.go
@@ -170,7 +170,6 @@ func (dm *YAMLParser) ComposeDependencies(pkg Package, 
projectPath string, fileP
        for key, dependency := range pkg.Dependencies {
                version := dependency.Version
                if len(version) == 0 {
-                       // TODO() interactive ask for branch, AND consider YAML 
specification to allow key for branch
                        version = YAML_VALUE_BRANCH_MASTER
                }
 
diff --git a/tests/src/integration/common/wskdeploy.go 
b/tests/src/integration/common/wskdeploy.go
index 82a34048..2eb18e56 100644
--- a/tests/src/integration/common/wskdeploy.go
+++ b/tests/src/integration/common/wskdeploy.go
@@ -194,7 +194,7 @@ func (wskdeploy *Wskdeploy) 
GetDeploymentObjects(manifestPath string, deployment
        //these values might be mock values because it's only for testing
        userHome := utils.GetHomeDirectory()
        defaultPath := path.Join(userHome, whisk.DEFAULT_LOCAL_CONFIG)
-       clientConfig, err := deployers.NewWhiskConfig(defaultPath, 
deploymentPath, manifestPath, false)
+       clientConfig, err := deployers.NewWhiskConfig(defaultPath, 
deploymentPath, manifestPath)
        if err != nil {
                return nil, err
        }
diff --git a/utils/flags.go b/utils/flags.go
index 9232fc03..6ecae60d 100644
--- a/utils/flags.go
+++ b/utils/flags.go
@@ -34,7 +34,7 @@ type WskDeployFlags struct {
        ProjectPath      string
        DeploymentPath   string
        ManifestPath     string
-       UseInteractive   bool
+       Preview          bool
        Strict           bool // strict flag to support user defined runtime 
version.
        Key              string
        Cert             string
diff --git a/utils/misc.go b/utils/misc.go
index 1e4196a3..3ffe17e4 100644
--- a/utils/misc.go
+++ b/utils/misc.go
@@ -19,22 +19,20 @@ package utils
 
 import (
        "archive/zip"
-       "bufio"
        "errors"
        "fmt"
-       "io"
-       "os"
-       "os/user"
-       "path/filepath"
-       "reflect"
-       "strings"
-
        "github.com/apache/incubator-openwhisk-client-go/whisk"
        "github.com/apache/incubator-openwhisk-wskdeploy/wski18n"
        "github.com/hokaccha/go-prettyjson"
+       "io"
        "io/ioutil"
        "net/http"
+       "os"
+       "os/user"
        "path"
+       "path/filepath"
+       "reflect"
+       "strings"
 )
 
 const (
@@ -102,19 +100,6 @@ func PrettyJSON(j interface{}) (string, error) {
        return string(bytes), nil
 }
 
-// Common utilities
-
-// Prompt for user input
-func Ask(reader *bufio.Reader, question string, def string) string {
-       fmt.Print(question + " (" + def + "): ")
-       answer, _ := reader.ReadString('\n')
-       len := len(answer)
-       if len == 1 {
-               return def
-       }
-       return answer[:len-1]
-}
-
 var kindToJSON []string = []string{"", "boolean", "integer", "integer", 
"integer", "integer", "integer", "integer", "integer", "integer",
        "integer", "integer", "integer", "number", "number", "number", 
"number", "array", "", "", "", "object", "", "", "string", "", ""}
 
diff --git a/wski18n/i18n_ids.go b/wski18n/i18n_ids.go
index 1c081b98..12807b5d 100644
--- a/wski18n/i18n_ids.go
+++ b/wski18n/i18n_ids.go
@@ -98,7 +98,7 @@ const (
        ID_CMD_FLAG_CONFIG      = "msg_cmd_flag_config"
        ID_CMD_FLAG_DEFAULTS    = "msg_cmd_flag_allow_defaults"
        ID_CMD_FLAG_DEPLOYMENT  = "msg_cmd_flag_deployment"
-       ID_CMD_FLAG_INTERACTIVE = "msg_cmd_flag_interactive"
+       ID_CMD_FLAG_PREVIEW     = "msg_cmd_flag_preview"
        ID_CMD_FLAG_KEY_FILE    = "msg_cmd_flag_key_file"
        ID_CMD_FLAG_MANAGED     = "msg_cmd_flag_allow_managed"
        ID_CMD_FLAG_PROJECTNAME = "msg_cmd_flag_project_name"
@@ -154,13 +154,6 @@ const (
        ID_MSG_MANAGED_UNDEPLOYMENT_FAILED                    = 
"msg_managed_undeployment_failed"
        ID_MSG_MANAGED_FOUND_DELETED_X_key_X_name_X_project_X = 
"msg_managed_found_deleted_entity"
 
-       // Interactive (prompts)
-       ID_MSG_PROMPT_APIHOST   = "msg_prompt_apihost"
-       ID_MSG_PROMPT_AUTHKEY   = "msg_prompt_authkey"
-       ID_MSG_PROMPT_DEPLOY    = "msg_prompt_deploy"
-       ID_MSG_PROMPT_NAMESPACE = "msg_prompt_namespace"
-       ID_MSG_PROMPT_UNDEPLOY  = "msg_prompt_undeploy"
-
        // Errors
        ID_ERR_DEPENDENCY_UNKNOWN_TYPE                                   = 
"msg_err_dependency_unknown_type"
        ID_ERR_ENTITY_CREATE_X_key_X_err_X_code_X                        = 
"msg_err_entity_create"
@@ -229,7 +222,7 @@ var I18N_ID_SET = [](string){
        ID_CMD_FLAG_CONFIG,
        ID_CMD_FLAG_DEFAULTS,
        ID_CMD_FLAG_DEPLOYMENT,
-       ID_CMD_FLAG_INTERACTIVE,
+       ID_CMD_FLAG_PREVIEW,
        ID_CMD_FLAG_KEY_FILE,
        ID_CMD_FLAG_MANAGED,
        ID_CMD_FLAG_MANIFEST,
@@ -285,11 +278,6 @@ var I18N_ID_SET = [](string){
        ID_MSG_PREFIX_INFO,
        ID_MSG_PREFIX_SUCCESS,
        ID_MSG_PREFIX_WARNING,
-       ID_MSG_PROMPT_APIHOST,
-       ID_MSG_PROMPT_AUTHKEY,
-       ID_MSG_PROMPT_DEPLOY,
-       ID_MSG_PROMPT_NAMESPACE,
-       ID_MSG_PROMPT_UNDEPLOY,
        ID_MSG_UNDEPLOYMENT_CANCELLED,
        ID_MSG_UNDEPLOYMENT_FAILED,
        ID_MSG_UNDEPLOYMENT_SUCCEEDED,
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index 0d5bd797..b9ffde58 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -92,12 +92,12 @@ func wski18nResourcesDe_deAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
 
-var _wski18nResourcesEn_usAllJson = 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x5b\x6d\x8f\xdb\xb6\xb2\xfe\x9e\x5f\x31\x08\x2e\x90\x16\x70\x94\xb4\x17\x17\xb8\x08\xb0\x38\xc8\x69\xd2\x76\x4f\x9b\x6c\xb0\x9b\x9c\xa0\x48\x17\x0a\x2d\x8e\x6d\xd6\x12\x29\x90\x94\x1d\xd7\xf0\x7f\x3f\x18\xbe\x48\xb2\x77\x29\x69\x9d\x16\x27\x5f\xea\x86\xc3\x99\x67\x86\xe4\xc3\x99\xa1\xf2\xe9\x11\xc0\xfe\x11\x00\xc0\x63\xc1\x1f\xbf\x80\xc7\x95\x59\xe6\xb5\xc6\x85\xf8\x92\xa3\xd6\x4a\x3f\x9e\xf9\x51\xab\x99\x34\x25\xb3\x42\x49\x12\x7b\xed\xc6\x1e\x01\x1c\x66\x03\x1a\x84\x5c\xa8\x84\x82\x4b\x1a\x1a\x9b\x6f\x9a\xa2\x40\x63\x12\x2a\x6e\xc2\xe8\x98\x96\x2d\xd3\x52\xc8\x65\x42\xcb\xc7\x30\x9a\xd4\x52\x54\x3c\xe7\x68\x8a\xbc\x54\x72\x99\x6b\xac\x95\xb6\x09\x5d\xd7\x6e\xd0\x80\x92\xc0\xb1\x2e\xd5\x0e\x39\xa0\xb4\xc2\x0a\x34\xf0\x8d\xc8\x30\x9b\xc1\x3b\x56\xac\xd9\x12\xcd\x0c\x5e\x16\x34\xcf\xcc\xe0\xbd\x16\xcb\x25\x6a\x33\x83\xeb\xa6\xa4\x11\xb4\x45\xf6\x2d\x30\x03\x5b\x2c\x4b\xfa\xaf\xc6\x02\xa5\x75\x33\x36\xce\x9a\x01\x21\xc1\xae\x10\x4c\x8d\x85\x58\x08\xe4\x20\x59\x85\xa6\x66\x05\x66\x93\x7d\x51\x2a\xe5\xc9\x4b\xb0\x4a\x95\x60\x55\x70\x64\x06\x8d\xf4\xbf\x80\x49\x0e\x66\x27\x0b\x50\x35\xca\xed\x4a\x98\x35\xd4\xc1\x27\x68\x8c\x90\x4b\x60\x50\x31\x29\x16\x68\xac\x13\x56\x35\x69\x65\x65\x50\x55\x91\x27\x0b\x51\xb6\xe2\xbf\xbd\x7c\xf3\xeb\x14\xcc\x66\xa5\xb4\x1d\x5e\x80\x77\x5a\x6d\x04\x47\x03\x0c\x4c\x53\x55\x4c\xef\xc0\xcb\x83\x5a\xc0\x76\xc5\xec\x13\x03\x73\xc4\xde\xf2\x7c\x5d\x18\x03\xa4\xd1\x38\x1a\xb4\x14\xcb\x15\x96\x75\x30\x0d\x3b\xd5\xe8\x49\x21\xa4\x50\x4d\xc7\xb2\x41\x6d\xc8\x76\x2a\x3e\x42\x5a\xe7\x70\x90\x03\xd9\x54\x73\xd4\x2e\x3c\x66\xed\xa1\x0d\xdb\x5a\x94\x6c\x99\xb3\x5a\xe4\x2b\x65\x52\x5e\x7b\x97\x5e\xbe\xbb\x84\xcf\x3f\x5f\xdd\xbc\xff\x3c\x51\xe3\x30\xf6\x9e\xd2\x7f\xbf\xbe\xbe\xb9\xbc\x7a\x3b\x49\x6f\x63\x57\xf9\x1a\x77\x09\xa5\x34\xac\xb4\xf8\xd3\xfd\x05\x7c\xfe\xe5\xf5\x6f\x53\x94\x16\xa8\x6d\x4e\xeb\x92\xd0\x5a\x33\xbb\xa2\x90\x52\xa0\x33\x12\x76\x8b\x38\x45\xb1\x92\x0b\x91\x62\x2a\x3f\xe8\x54\xc1\x37\x1c\x17\xac\x29\x2d\x08\x03\xff\xf3\xf3\xd5\x9b\xd7\xcf\xb2\xad\x59\xd7\x5a\xd5\xe6\xdb\x29\x51\x29\x4b\xb5\xcd\x83\x8e\x14\xbf\x3a\x21\x68\x85\xc6\xb5\x76\xe7\x7b\x28\x2e\x2d\xa7\xb4\x44\x30\x41\xb5\x90\x16\x35\x23\xfa\x4b\xc5\xdc\xa3\xed\xc9\x41\xad\x55\x55\x4f\x02\xbe\xc6\xdd\xe4\xe5\x5c\xe3\x6e\x2a\x68\x1f\xe5\x8a\x49\xb6\x44\x3e\x08\xbb\xd6\xea\x0f\x2c\x6c\x77\x59\x58\x05\x73\x84\x8a\xe9\x35\x72\x88\x1a\xc6\x2d\x06\x3d\x39\x91\x58\xca\x99\x60\xca\x89\x8c\x6b\x8c\x34\x34\xb2\xa2\x47\x6c\x35\x41\x6d\xcb\xb2\x09\xbd\xdd\xf8\x64\xa7\x47\x10\x1a\xd4\x1b\xd4\x25\x1a\x13\xa3\x3d\x41\xb5\xb1\x5a\x24\x35\xfb\xa5\x6b\x0c\x6a\x3a\x24\x42\x22\x07\xdd\x48\x2b\xaa\x96\x5d\x27\x58\xb0\x3a\x1d\x04\x37\x06\xaa\xb1\x75\x33\x05\xac\xdf\x6e\x1b\xd4\x73\x65\x52\x2a\xc3\xe8\xb8\x52\xc7\x35\x79\x25\x0c\x5d\x47\x8e\x45\xd3\x24\xfa\x7e\x85\x40\x12\xb4\x7b\x0b\xcf\xa4\x74\x4a\x84\x01\xa9\x2c\x78\x55\x8d\x46\x9e\xfd\x3e\x14\x91\x13\x8b\xb5\x18\xb8\x60\xc8\x22\xdd\x04\x24\xf2\x75\x76\xc6\x36\x22\x59\x6a\x65\xce\x33\x15\x5c\x19\xca\x86\x4f\xfd\xf9\xb4\xdf\x67\xf4\xfb\x70\xb8\x9d\xc1\x42\xab\x0a\xf6\xfb\xcc\xa8\x46\x17\x78\x38\x4c\xb2\xe9\x17\x6c\xcc\x26\x89\xc5\xb5\x32\x68\xcf\xb3\xd5\x86\x67\xcc\xda\x51\x1c\xc9\xc5\xf6\x2f\xce\xf7\xb3\x16\xcb\x6d\xce\x5c\x21\x90\x5b\xb5\x46\x39\xea\x32\xcd\x00\x3f\x03\xdc\x8c\xf3\x9c\x6f\x64\xc5\xb4\x59\xb1\x32\x2f\x55\xc1\xca\x84\xc5\x0f\x51\x0a\xae\x6a\x94\x1f\x5d\x0a\x13\x48\xc2\x78\x7b\x6e\x36\x6c\x58\xd9\xa0\x99\x68\x50\xa2\xdd\x2a\xbd\x3e\xdb\xa4\xbb\x24\x25\x5a\x60\x96\xdc\x6d\x74\x39\xe2\x6b\x77\x5f\xe7\x05\x93\x05\x96\x65\xf2\x3e\xbb\xfa\x25\x83\x1f\xbc\x0c\xe5\xb1\xdd\xcc\xa9\x06\x16\x4c\xa4\xb5\xbf\xea\x12\x07\x2e\x78\x38\x8b\x55\x5d\xa2\x45\x30\x0d\x2d\xe9\xa2\x29\xcb\x5d\x06\xd7\x8d\x84\xcf\x6d\x46\xdb\x16\x2f\x9f\xe9\x26\xd0\x58\x29\x4a\x0f\x98\xb6\x82\x95\xe5\xae\x2b\x06\x98\x31\x68\x87\x57\xa1\x87\xd4\x57\x16\xb9\xb1\xcc\x36\xa9\x1c\xea\xe9\xd3\xa7\x4f\x2f\x2e\x2e\x2e\x7a\x6b\xd1\xf3\xe1\xc6\x4d\x05\x12\x20\xc1\x49\x56\x5d\x4d\x8c\x7c\x4a\x88\x62\x68\x38\x84\x42\xda\x07\x67\x78\x93\x9d\xbf\xd6\xfd\xb9\xd3\x8d\x0c\xae\xf7\x87\x9e\xe4\xf0\x8a\x4f\xb6\x37\x16\xbf\x23\x93\x67\x44\xb0\x50\x55\xc5\x24\xcf\x5d\x1d\xe7\xb2\x4a\x62\xb9\x9c\xd9\x9c\x32\x91\x84\xd1\xfd\x3e\x2b\x2a\x7e\x38\x84\xea\x6f\xbf\xcf\x68\xa2\xdd\xd5\x78\x38\x38\xa6\xa4\xb9\x87\xc3\x6d\x96\x0d\xda\x76\xe9\xe3\x2e\x8f\xfb\x79\xa4\x7f\xb2\xdf\x53\x32\x1b\x0c\x10\xc8\xc3\xe1\x16\x56\x2c\x54\xc8\x7d\x87\xdb\x13\x32\xdd\x7a\xba\xe1\xf2\x2a\x8e\xc3\xbd\x00\xb2\x6c\xa0\xd8\x0d\x26\xe2\x82\xfe\x95\x2e\x76\x3a\xa7\x38\x19\xa5\xd3\x6e\x7e\xe8\x24\xee\x75\x74\xd0\x4f\x8e\x35\x4a\x8e\xb2\x78\x48\x38\xbb\x49\xe7\xdb\xe9\x8e\x48\x32\xa6\xaf\xee\x35\xf3\x35\x1b\xe7\x7e\x14\x44\x0c\x8d\x4e\xe5\x65\x3d\x9a\x53\x8b\x84\xeb\xff\xc5\x3b\x22\xfa\xf3\xb0\x7d\xf2\x75\x2b\x78\x97\xe6\xfe\x9a\x35\x9c\x78\x32\x52\x48\x86\xd7\xf1\x88\x6e\xcf\x5c\xc9\x21\x54\xa1\x76\x3e\xf7\xce\x71\x88\xfc\x0d\xd0\xd6\xe6\x43\x58\x80\x37\x9a\x56\x32\x98\xed\xe7\x3f\x7f\xdf\x7e\x8b\x3e\x2e\x54\x23\x79\x1e\xf0\x06\xa6\x4a\x6e\x80\x12\x6d\x92\x83\xb7\x2b\x51\xac\x60\xeb\x1a\xcf\x84\x8b\xfb\xbc\xd1\xae\x10\x8a\x46\x6b\x0a\x4c\x74\x30\xb6\x13\xdc\x25\xe5\x7f\x93\x06\x66\x9c\x2f\x14\xbf\xc9\x69\x81\xef\xd7\x8c\x54\x7e\xbf\xcb\x77\x25\x32\xe3\xba\x3b\x1b\xc1\xd1\x81\x22\x79\xc2\x0e\x0b\xa5\xbb\x4c\xeb\x05\x8c\xdb\x1a\xac\x6b\xef\xd8\x62\xf2\xb4\xce\x75\x05\xc4\x04\x43\xa1\xb3\x9a\x58\x0c\x05\x3b\xd5\x80\x46\xb7\xf2\x5b\x26\x6d\xd7\x24\x03\xbb\x12\xe6\x1f\xf0\xcd\xee\xd9\xdb\x6f\x27\xd8\x19\x2b\x67\xef\xba\xd4\xab\xca\x3e\xc5\xa6\xa2\xab\x46\xa8\x2c\x5a\x36\x68\xec\xed\x04\xbb\x71\x91\x1f\xe4\x61\xfb\xa4\x30\xd1\xc7\x00\x2f\x0f\xbd\xf2\x54\x8f\xdb\x8f\x3a\xbf\xa0\xd7\x26\xd5\xe8\x5a\x40\x7c\x06\xac\xec\xd7\x46\xed\xb9\x26\x38\xba\x9d\x11\x8c\x00\xd3\xd8\x1e\xc6\x67\x1d\x15\x02\x17\x1a\x0b\x1b\xe8\x51\xfb\x76\xfe\xd8\xdb\xc1\xeb\xeb\xeb\xab\xeb\x9b\x04\xee\x8b\xd3\x3f\xe0\xc5\xe1\xce\xc0\xc5\xc5\x40\x7e\xa2\xf5\x31\x13\xaf\xa5\xda\xca\x9c\x52\xc9\xf1\xbb\x80\xa4\x28\x54\x61\x56\x06\xdd\xa3\x00\x28\x59\xee\xc0\x34\xb5\x7f\xe1\x7a\xe6\xba\xf1\x99\xd9\x19\x8b\x15\xcc\x85\xe4\x42\x2e\x0d\x28\x0d\x4b\x61\x57\xcd\x3c\x2b\x54\xd5\xbe\x69\x0c\x27\x54\x5a\xc7\xa4\xaa\xd0\xc8\x6c\x0a\xa6\x7b\x71\x04\x27\x72\xc4\x5b\x5b\x61\x57\xe0\x9e\x2a\xa1\x42\x63\xd8\x12\x5f\xd0\x20\x6a\x7d\x38\xb8\xe7\x27\x3f\x56\x28\xee\x07\xe8\xc7\x48\xb9\xdb\x83\xe4\xc9\x74\x10\x12\xbf\x43\xa5\x7f\x13\xa4\x05\x22\xcf\x85\xdc\xa8\x75\x0a\xd0\x8f\xee\x5e\xa3\xa3\xe5\xc5\x1c\x39\xd2\x34\xd8\xae\xdc\xa3\x57\x40\x6a\xfd\x83\x63\x18\xfa\x7b\xd0\xae\x71\xd7\x36\xd9\xa8\x20\x62\x56\xe9\xa1\x06\x62\x2b\xe3\xfa\x51\x9f\x62\x30\x6f\x69\x3f\x06\x3d\xa3\x36\x63\x17\x3a\x97\xca\xfa\xdb\x30\x61\xf0\x4d\xbf\x5d\xed\x2e\x73\x27\x0d\x8c\xce\xbd\x5d\x1d\x95\x5c\x63\x46\x5d\x79\x57\x09\x53\x31\x5b\xa4\xea\x3b\x72\xb0\xdd\x1e\x34\x81\x3b\x13\x3c\x5e\xb8\x42\x9e\xbe\x89\xf8\xf1\x80\x01\xb8\x42\xdf\x79\x74\x46\xdc\xb2\x3a\x7a\x23\xa1\xaa\xa7\xe4\xa8\x0d\xef\x47\xa3\x1b\xc3\x4e\x84\x06\x11\x6d\x2f\x56\x8a\x54\xd8\x2e\xfd\x28\x1d\xf3\xb0\x24\x6d\xc7\x9b\x6c\x85\xdf\x84\xa5\x7b\x4f\x3d\x42\xa5\xb4\xc3\xce\xdc\xcb\xb7\x9b\xe3\x7f\x4e\x89\x73\x84\x38\x12\xea\xeb\x87\x00\x3a\x89\xab\x3b\x0a\x1e\xd1\x13\x03\xbe\x0d\xe8\x43\x89\x5f\x2c\x4a\x13\x41\xe3\x17\x97\xe4\x90\x3b\x5f\xe3\x8a\xc9\x97\x98\xca\x73\xba\xa3\xbc\x44\xff\x62\x1b\xb8\xb7\x7b\x65\x08\xdd\xbc\xee\x26\xa3\xfb\x4d\x14\xbd\xe3\x3b\x39\xa6\x1e\x7a\xee\x3d\x76\xa7\xa7\xb5\x96\xc0\x77\xe4\xb0\x2b\x1c\x28\x8c\x5d\x94\x99\xdc\xb5\x7b\x83\x48\xa4\xb7\xec\xa3\x71\x0d\x5d\xf6\x16\xc2\xa8\x1b\x8d\x2e\x1f\xbe\x73\x7d\xe7\x33\xf4\x58\x3e\x5c\xff\xea\x10\xb8\x5e\xa8\x3b\x4a\x9f\x8e\x9a\x30\xb7\xfe\x19\x7e\x0a\x90\x8a\x95\x0b\xa5\xab\x64\xe4\xde\xc4\xf1\x21\x04\x19\xbc\xd7\x3b\x60\x4b\x26\xe4\x58\xcf\x47\xeb\xfc\x0f\xa3\x64\x4b\xb6\x45\xc5\x07\x1e\xbc\xff\x75\x73\xf5\x16\x84\xac\x1b\x0b\x9c\x59\x06\x6f\x42\x34\x9e\x14\x15\x7f\x42\xd4\x3b\x6c\x89\xd5\xa2\x35\xb4\xc5\x79\xd8\x38\xa9\x8f\x1f\xee\x39\x1b\x71\x71\x19\x6c\x71\x1e\x76\xc4\xcc\xbd\x7d\x38\xb1\x5a\x90\x4c\xc1\xa4\xcf\x37\xe6\xe8\x6f\x7c\xe4\xa1\x33\xd6\x4d\xca\x20\x64\xb2\x4d\xcd\x99\xc5\x13\xea\xb3\x0a\x0a\x25\x37\xa8\xed\x89\x79\xab\xfa\x3a\xc6\x02\xdb\x77\xf7\x2c\x57\xe3\x66\x73\x27\xf5\x08\xe2\x24\xa7\xe7\xcc\x20\x07\x25\xfb\xc7\xe7\xae\xaa\xd1\x50\x08\x59\x94\x0d\xc7\x13\x78\xcc\x1c\xad\xc2\x78\x30\x3c\x49\x0c\x1f\xb4\x54\x20\xc2\xac\x0c\x2e\xad\x6f\x33\x28\xbb\x72\x39\x85\x63\x87\x45\x23\x03\x37\x44\x02\x99\xf9\x58\x28\x89\xe1\xe5\xbd\x22\x2d\xf8\xa5\xc6\x62\x0a\x23\x04\xac\x71\xed\x22\xcf\x11\xc1\xe7\x64\xf5\x2b\xd1\x3b\xe0\x1d\xd9\x91\x5a\xd5\xd8\x3e\xe9\x65\xf0\xb1\xbb\x4c\x22\xe5\xd1\xb4\x59\x4b\x8b\xb4\x3d\x62\xd2\x33\x72\x3d\x07\x77\x62\x98\x72\x2a\xcb\x2d\xe6\x5c\xe8\x49\x64\x7d\xaf\x5b\xe4\x47\x1b\xf7\x5a\x09\xe9\x53\x43\xdf\x8b\xb0\x18\x0a\x1c\x4a\xc8\x3a\x5a\x9a\x81\x69\x8a\xe8\x95\x71\xb5\xd1\x31\x53\x0f\xbb\x51\x30\x69\x73\xc3\x36\x98\x73\x55\xac\x31\xf5\x71\xe1\x0f\x4c\x3a\xad\x6c\x83\xf0\xca\x09\x82\xa8\x5c\x21\x31\x92\x20\x8b\x12\x73\x56\x6a\x64\x7c\x97\xe3\x17\x61\x92\x9f\xb6\xfc\x48\x07\x23\x48\x82\x97\x4c\xe8\xfe\xf8\xf2\xfa\xed\xe5\xdb\x9f\xa6\x17\x6d\x71\xc2\xc3\xca\xb6\x2d\xd3\xb2\x7d\x3a\xd0\x68\x93\xa9\xf2\x35\x8d\xd1\x42\x7d\x8a\x6f\x06\xb7\xc0\x16\x16\xb5\x4f\xd3\x5f\xf8\x7b\x94\x2e\xff\xdb\xa1\x33\x12\xec\xb9\x37\xd4\x07\xdf\x9c\xfd\x0f\x91\x7a\x99\x32\x70\xb4\xe3\xa7\xd3\x59\xa6\xe2\x80\x63\xad\xb1\x20\x9a\xcb\x35\xd6\x25\x2b\x92\xdb\x97\xb2\x67\xb2\xa3\x4a\x1e\x6a\x02\xf7\x64\xed\x59\xf1\xf8\xad\x64\x2b\xca\x12\x8c\x52\x92\x58\xb4\xb3\x30\x83\x3a\x30\xa4\xf1\x45\x91\xeb\x76\xe1\xf6\x48\x9d\xb1\xc8\x26\x62\x0f\x91\x38\xa7\x9c\x31\x2b\xd5\x94\x9c\xe0\x19\xb4\x19\x7c\x30\xbe\xf1\xdb\x6f\xbc\x90\xb4\xfb\x35\xfe\xe2\xd3\x22\x72\xf2\x23\x4b\x49\xb8\xbc\x05\xca\x5c\xef\x96\x59\x74\xe8\x3c\xcf\x3d\xc0\xa4\xe3\x1f\xb6\x19\x5c\xbc\x31\xa3\x6e\x7e\x5c\xd0\xd8\x61\x8c\x5f\x28\xf6\x3f\x4d\x1c\x07\x56\x8a\x4a\xd8\x5c\x2c\xa5\xd2\x49\x48\x71\x4b\x07\x72\x76\x53\x1c\x2a\xf7\xeb\xb4\x94\x22\xfa\xf7\xea\xa6\x5a\x2f\x56\x4c\x2e\x91\xcd\x93\x1f\x94\xfd\xda\x5a\x6c\x6b\x37\x13\xfd\x2e\x77\xbe\xb9\xdc\xea\xc8\xe0\x92\xcc\x53\xfd\x3b\x61\x2f\x38\x04\x26\x2f\xd5\x32\x37\xe2\xcf\x14\x80\x52\x2d\x6f\xc4\x9f\xee\x6a\xf5\x13\x8e\x3c\xee\xb6\x28\x93\xee\x63\x81\x25\x6a\x98\xa3\xdd\x22\x4a\x78\xee\x2e\xec\xef\x9e\x4f\x86\x52\x61\xa5\xf4\x6e\x08\x8d\x97\x38\x17\xd0\x77\xdf\xff\xbf\x83\xf4\x7f\xdf\x7d\x3f\x19\x13\xdd\xbf\xaa\x49\xd5\x5e\x61\xf4\x2c\x30\xcf\x7d\x7c\xfe\xf7\x39\xfd\x19\xc7\xe3\xda\x68\x79\xad\x55\x8d\xda\x0a\x4c\xdd\x57\x91\x01\x7b\x7c\xe5\xbb\xf3\x56\x0b\x6c\xfb\xf3\xbe\x27\xd7\x29\x8b\x7d\xfc\xfb\x39\x31\x52\x22\x57\x6e\xc3\x11\x33\x0a\x0b\xaa\xb1\x46\x70\xb7\x10\xef\x35\xdb\x08\x03\xf3\x46\x94\x7c\xb8\x87\xe7\x5c\xf1\x74\xa0\x69\xdb\x4e\xa2\x82\x76\xf7\x1f\x11\x82\x3c\x21\xf4\x10\x6d\xd7\x99\xdc\xef\xb3\xf0\xb7\x31\xdc\xfb\x7d\x56\x09\x19\xfa\x54\xf4\x3f\xac\x18\xa9\x7a\x1d\xd4\x98\x0e\xfa\x43\x96\xa2\x89\xd8\x49\x08\x52\x94\x1a\x9d\x34\x15\xee\x49\xcf\x93\x7d\x83\xb3\x9a\x05\x0e\x6d\x68\x45\xba\x3e\xd3\x60\x56\x73\xa7\xcb\x74\x44\x31\x27\xe9\x4e\xac\x19\x0c\x96\x58\x50\xea\xaa\xec\x0a\x7d\x0b\x7b\x1c\x52\xec\xec\x8e\x36\xda\xc2\x55\x78\xd2\x94\x8a\x09\x43\xa1\xa4\x65\xee\xc3\x49\xa9\xa6\x75\x8b\x9d\xf5\xde\x4b\x9e\x0b\xca\x14\x10\xf7\xbe\x73\x85\x1b\xe7\xb4\xf5\xb6\x0d\xdd\x0c\xdf\x13\x0c\x42\xc7\x15\xd7\x78\x84\x7a\x5f\xe2\xe6\x6a\x83\x5a\x0b\xce\x31\x55\x3e\x12\xc2\xfe\x87\xb9\xdd\x4b\x6c\x37\x35\xe6\x0a\xfd\x87\xb6\xa9\x0b\x95\x0b\x93\xd7\xcd\xbc\x14\xc5\x40\x3b\x27\xc8\xc6\xca\xd5\x7f\x7b\xcc\x0c\xf8\x89\x77\xda\x8b\x33\xa2\x0b\xc7\x2d\x73\x84\x8d\x30\x62\x5e\xfa\x62\x8e\x0a\x59\x62\x47\xf7\x84\x4c\x45\xec\x8e\x0a\x23\x25\x13\xdf\xf2\xbe\x7a\xfd\xcf\x0f\x3f\x4d\x4e\xaf\x9d\xf4\xc3\x72\x6b\x3e\x5f\xe6\x06\x99\x2e\x56\x54\x0a\xc6\x85\x69\xcb\x9b\xd4\xbf\x2e\x8a\x33\xda\x85\x39\x2e\x88\xe2\x1e\xa6\x73\xdd\x11\xd8\xc8\x15\x4d\x50\x4e\x77\xef\x5f\xbd\x73\xcf\xdc\xb5\x04\xad\x3d\xd6\xfe\x25\x79\xe0\xdf\xb5\xbc\xba\xa7\x5b\x1d\x22\xf2\x02\x7e\x74\x08\xba\x7f\xd1\xe2\x1e\xc8\x48\xd9\x43\x01\x0c\x7f\xd9\xfd\x70\x0c\xfd\xc7\xea\xf8\x71\x45\x80\xf4\xe8\xf6\xd1\x7f\x02\x00\x00\xff\xff\xd9\xcc\x87\x67\x0c\x37\x00\x00")
+var _wski18nResourcesEn_usAllJson = 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x5b\x5f\x8f\xdb\x36\x12\x7f\xcf\xa7\x18\x04\x07\xa4\x05\x1c\x25\xed\xe1\x80\x43\x80\x7d\xc8\x35\x69\xbb\xd7\x26\x1b\xec\x26\x17\x14\xb9\x85\x42\x8b\x63\x9b\xb5\x44\x0a\x24\x65\xc7\x35\xfc\xdd\x0f\xc3\x3f\x92\xec\x5d\x4a\x5a\xa7\xc5\xe5\xa5\x6e\x38\x9c\xf9\xcd\x90\xfc\x71\x66\xa8\x7c\x7a\x04\xb0\x7f\x04\x00\xf0\x58\xf0\xc7\x2f\xe0\x71\x65\x96\x79\xad\x71\x21\xbe\xe4\xa8\xb5\xd2\x8f\x67\x7e\xd4\x6a\x26\x4d\xc9\xac\x50\x92\xc4\x5e\xbb\xb1\x47\x00\x87\xd9\x80\x06\x21\x17\x2a\xa1\xe0\x92\x86\xc6\xe6\x9b\xa6\x28\xd0\x98\x84\x8a\x9b\x30\x3a\xa6\x65\xcb\xb4\x14\x72\x99\xd0\xf2\x31\x8c\x26\xb5\x14\x15\xcf\x39\x9a\x22\x2f\x95\x5c\xe6\x1a\x6b\xa5\x6d\x42\xd7\xb5\x1b\x34\xa0\x24\x70\xac\x4b\xb5\x43\x0e\x28\xad\xb0\x02\x0d\x7c\x23\x32\xcc\x66\xf0\x8e\x15\x6b\xb6\x44\x33\x83\x97\x05\xcd\x33\x33\x78\xaf\xc5\x72\x89\xda\xcc\xe0\xba\x29\x69\x04\x6d\x91\x7d\x0b\xcc\xc0\x16\xcb\x92\xfe\xab\xb1\x40\x69\xdd\x8c\x8d\xb3\x66\x40\x48\xb0\x2b\x04\x53\x63\x21\x16\x02\x39\x48\x56\xa1\xa9\x59\x81\xd9\x64\x5f\x94\x4a\x79\xf2\x12\xac\x52\x25\x58\x15\x1c\x99\x41\x23\xfd\x2f\x60\x92\x83\xd9\xc9\x02\x54\x8d\x72\xbb\x12\x66\x0d\x75\xf0\x09\x1a\x23\xe4\x12\x18\x54\x4c\x8a\x05\x1a\xeb\x84\x55\x4d\x5a\x59\x19\x54\x55\xe4\xc9\x42\x94\xad\xf8\x6f\x2f\xdf\xfc\x3a\x05\xb3\x59\x29\x6d\x87\x17\xe0\x9d\x56\x1b\xc1\xd1\x00\x03\xd3\x54\x15\xd3\x3b\xf0\xf2\xa0\x16\xb0\x5d\x31\xfb\xc4\xc0\x1c\xb1\xb7\x3c\x5f\x17\xc6\x00\x69\x34\x8e\x06\x2d\xc5\x72\x85\x65\x1d\x4c\xc3\x4e\x35\x7a\x52\x08\x29\x54\xd3\xb1\x6c\x50\x1b\xb2\x9d\x8a\x8f\x90\xd6\x39\x1c\xe4\x40\x36\xd5\x1c\xb5\x0b\x8f\x59\x7b\x68\xc3\xb6\x16\x25\x5b\xe6\xac\x16\xf9\x4a\x99\x94\xd7\xde\xa5\x97\xef\x2e\xe1\xf3\xcf\x57\x37\xef\x3f\x4f\xd4\x38\x8c\xbd\xa7\xf4\x3f\xaf\xaf\x6f\x2e\xaf\xde\x4e\xd2\xdb\xd8\x55\xbe\xc6\x5d\x42\x29\x0d\x2b\x2d\xfe\x70\x7f\x01\x9f\x7f\x79\xfd\xdb\x14\xa5\x05\x6a\x9b\xd3\xba\x24\xb4\xd6\xcc\xae\x28\xa4\x14\xe8\x8c\x84\xdd\x22\x4e\x51\xac\xe4\x42\xa4\x98\xca\x0f\x3a\x55\xf0\x0d\xc7\x05\x6b\x4a\x0b\xc2\xc0\xdf\x7e\xbe\x7a\xf3\xfa\x59\xb6\x35\xeb\x5a\xab\xda\x7c\x3b\x25\x2a\x65\xa9\xb6\x79\xd0\x91\xe2\x57\x27\x04\xad\xd0\xb8\xd6\xee\x7c\x0f\xc5\xa5\xe5\x94\x96\x08\x26\xa8\xae\x35\x6e\x04\x6e\x13\x7a\xcd\xca\x01\x8d\x4a\x9f\x45\xae\x72\x16\xea\x92\xc9\x09\x16\xd6\xb8\x9b\xbc\xa4\x6b\xdc\x4d\x05\xee\x23\x5d\x31\xc9\x96\xc8\x07\x03\x5d\x6b\xf5\x3b\x16\xb6\xbb\x30\xac\x82\x39\x42\xc5\xf4\x1a\x39\x44\x0d\x53\x42\xe5\xf4\xe4\x44\x64\x29\x67\x82\x29\x27\x32\xae\x31\x52\xd1\xc8\xaa\x1e\x31\xd6\x04\xb5\x2d\xd3\x26\xf4\x76\xe3\x93\x9d\x1e\x41\x68\x50\x6f\x50\x97\x68\x4c\x8c\xf6\x04\xd5\xc6\x6a\x91\xd4\xec\x97\xae\x31\xa8\xe9\xa0\x08\x89\x1c\x74\x23\xad\xa8\x5a\x86\x9d\x60\xc1\xea\x74\x10\xdc\x18\xa8\xc6\xd6\xcd\x14\xb0\x7e\xbb\x6d\x50\xcf\x95\x49\xa9\x0c\xa3\xe3\x4a\x1d\xdf\xe4\x95\x30\x74\x25\x39\x26\x4d\x13\xe9\xfb\x15\x02\x49\xd0\xee\x2d\x3c\x9b\xd2\x29\x11\x06\xa4\xb2\xe0\x55\x35\x1a\x79\xf6\xdf\xa1\x88\x9c\x58\xac\xc5\xc0\x25\x43\x16\xe9\x36\x20\x91\xaf\xb3\x33\xb6\x11\xc9\x52\x2b\x73\x9e\xa9\xe0\xca\x50\x46\x7c\xea\xcf\xa7\xfd\x3e\xa3\xdf\x87\xc3\xed\x0c\x16\x5a\x55\xb0\xdf\x67\x46\x35\xba\xc0\xc3\x61\x92\x4d\xbf\x60\x63\x36\x49\x2c\xae\x95\x41\x7b\x9e\xad\x36\x3c\x63\xd6\x8e\xe2\x48\x2e\xb6\x7f\x71\xbe\x9f\xb5\x58\x6e\x73\xe6\x8a\x81\xdc\xaa\x35\xca\x51\x97\x69\x06\xf8\x19\xe0\x66\x9c\xe7\x7c\x23\x2b\xa6\xcd\x8a\x95\x79\xa9\x0a\x56\x26\x2c\x7e\x88\x52\x70\x55\xa3\xfc\xe8\xd2\x98\x40\x12\xc6\xdb\x73\xb3\x61\xc3\xca\x06\xcd\x44\x83\x12\xed\x56\xe9\xf5\xd9\x26\x85\xb4\xa8\x25\x5a\x60\x96\xdc\x6d\x74\x39\xe2\x6b\x77\xa3\xe6\x05\x93\x05\x96\x65\xf2\x3e\xbb\xfa\x25\x83\x1f\xbc\x0c\xe5\xb2\xdd\xcc\xa9\x06\x16\x4c\xa4\xb5\xbf\xea\xae\x76\x2e\x78\x38\x8b\x55\x5d\xa2\x45\x30\x0d\x2d\xe9\xa2\x29\xcb\x5d\x06\xd7\x8d\x84\xcf\x6d\x56\xdb\x16\x30\x9f\xe9\x26\xd0\x58\xa9\x0d\x42\xcd\xb4\x15\xac\x2c\x77\x5d\x41\xc0\x8c\x41\x3b\xbc\x0a\x3d\xa4\xbe\xba\xc8\x8d\x65\xb6\x49\xe5\x51\x4f\x9f\x3e\x7d\x7a\x71\x71\x71\xd1\x5b\x8b\x9e\x0f\x37\x6e\x2a\x90\x00\x09\x4e\xb2\xea\xea\x62\xe4\x53\x42\x14\x43\xc3\x21\x14\xd3\x3e\x38\xc3\x9b\xec\xfc\xb5\xee\xcf\x9d\x6e\x64\x70\xbd\x3f\xf4\x93\xb9\xc1\x15\x9f\x6c\x6f\x2c\x7e\x47\x26\xcf\x88\x60\xa1\xaa\x8a\x49\x9e\xbb\x5a\xce\x65\x95\xc4\x72\x39\xb3\x39\x65\x22\x09\xa3\xfb\x7d\x56\x54\xfc\x70\x08\x15\xe0\x7e\x9f\xd1\x44\xbb\xab\xf1\x70\x70\x4c\x49\x73\x0f\x87\xdb\x2c\x1b\xb4\xed\xd2\xc7\x5d\x1e\xf7\xf3\x48\x0f\x65\xbf\xa7\x64\x36\x18\x20\x90\x87\xc3\x2d\xac\x58\xa8\x92\xfb\x0e\xb7\x27\x64\xba\xf5\x74\xd3\xe5\x55\x1c\x87\x7b\x01\x64\xd9\x40\xc1\x1b\x4c\xc4\x05\xfd\x33\x5d\xec\x74\x4e\x71\x32\x4a\xa7\xdd\xfc\xd0\x49\xdc\xeb\xe8\xa0\x9f\x1c\x6b\x94\x1c\x65\xf1\x90\x70\x76\x93\xce\xb7\xd3\x1d\x91\x64\x4c\x5f\xdd\x6b\xe6\x6b\x36\xce\xfd\x28\x88\x18\x1a\x9d\xca\xcb\x7a\x34\xa7\x16\x09\xd7\xff\x8f\x77\x44\xf4\xe7\x61\xfb\xe4\xeb\x56\xf0\x2e\xcd\xfd\x39\x6b\x38\xf1\x64\xa4\x90\x0c\xaf\xe3\x11\xdd\x9e\xb9\x92\x43\xa8\x42\xed\x7c\xee\x9d\xe3\x10\xf9\x1b\xa0\xad\xcd\x87\xb0\x00\x6f\x34\xad\x64\x30\xdb\xcf\x7f\xfe\xba\xfd\x16\x7d\x5c\xa8\x46\xf2\x3c\xe0\x0d\x4c\x95\xdc\x00\x25\xda\x24\x07\x6f\x57\xa2\x58\xc1\xd6\x35\x9f\x09\x17\xf7\x79\xa3\x5d\x21\x14\x8d\xd6\x14\x98\xe8\x60\x6c\x27\xb8\x4b\xca\xff\x26\x0d\xcc\x38\x5f\x28\x7e\x93\xd3\x82\xd0\x6d\xca\x43\x3b\x34\xd5\xc6\xf4\xa3\xae\x98\x80\x5e\x27\x4c\xa3\xab\xf0\xf9\x0c\x58\xd9\x4f\x7d\xdb\x65\x23\x1c\xba\x9d\x11\x8c\x00\xd3\xd8\xc6\xfa\x59\xb7\xd3\x81\x0b\x8d\x85\x0d\xbb\x5f\xfb\x8e\xed\x58\x7b\xf8\xf5\xf5\xf5\xd5\xf5\x4d\x02\xf7\xc5\xe9\x1f\xf0\xe2\x70\x67\xe0\xe2\x62\xe0\xfa\xd1\xfa\xf8\xa0\xad\xa5\xda\xca\x9c\x32\x85\xf1\xa3\x4e\x52\x14\xaa\x30\x2b\x83\xae\xef\x0b\x4a\x96\x3b\x30\x4d\xed\x1f\x31\x9e\xb9\x86\x6b\x66\x76\xc6\x62\x05\x73\x21\xb9\x90\x4b\x03\x4a\xc3\x52\xd8\x55\x33\xcf\x0a\x55\xb5\x6d\xeb\xe1\xfb\x52\xeb\x78\x67\x16\x1a\x99\x4d\xc1\x74\x8f\x4a\xe0\x44\x8e\xb6\xe5\x56\xd8\x15\xb8\xd7\x28\xa8\xd0\x18\xb6\xc4\x17\x34\x88\x5a\x1f\x0e\xee\x85\xc1\x8f\x15\x8a\xfb\x01\xfa\x31\x52\xcd\xf4\x20\xf9\xb3\x32\x08\x89\xdf\x39\x29\x7f\x11\xa4\x05\x22\xcf\x85\xdc\xa8\x75\x0a\xd0\x8f\x8e\xb6\x88\x2e\xbc\x98\x3b\x90\x34\x0d\xb6\x2b\xf7\xae\x11\x90\x5a\xff\xa6\x14\x86\xfe\x1a\xb4\x6b\xdc\xb5\x3d\x14\xca\x77\x99\x55\x7a\xa8\x3f\xd4\xca\xb8\x76\xc3\xa7\x18\xcc\x5b\xda\x8f\x41\xcf\xa8\xcd\xd8\x64\xcc\xa5\xb2\x9e\xec\x12\x06\xdf\xf4\xbb\x91\x8e\xab\x9d\x34\xd5\xbb\xae\x1d\xd8\xcf\xa8\xc7\x8c\xba\xec\xbd\x12\xa6\x62\xb6\x48\xa5\xef\xe4\x60\xbb\x3d\x68\x02\x77\x26\x78\xe4\x53\x21\x4f\xdb\xde\x7e\x3c\x60\x00\xae\xd0\x37\x96\x9c\x11\xb7\xac\x8e\xde\x48\xa8\xea\x29\x39\xea\xb2\xfa\xd1\xe8\xc6\xb0\x13\xa1\xfe\xa7\xed\xc5\x4a\x91\x0a\xdb\xa5\x1f\xa5\x63\x1e\x96\xa4\x6d\x68\x92\xad\xf0\x9b\xb0\x74\x4f\x66\x47\xa8\x94\x76\xd8\x99\x7b\xdc\x74\x73\xfc\xcf\x29\x71\x8e\x10\x47\x42\x7d\xfd\x10\x40\x27\x71\x75\x47\xc1\x23\x7a\x62\xc0\x77\x79\x7c\x28\xf1\x8b\x45\x69\x22\x68\xfc\xe2\xee\x30\x72\xe7\x6b\x5c\x31\xf9\x12\x53\x0d\xcc\xee\x28\x2f\xd1\x3f\xca\x05\xee\xed\x9a\xc8\xa1\x59\xd3\xdd\x64\x74\xbf\x89\xa2\x77\x7c\x27\xc7\xd4\x43\xcf\xbd\xc7\xee\xf4\xb4\xd6\x12\xf8\x8e\x1c\x76\x79\x21\x85\xb1\x8b\x32\x93\xbb\x76\x6f\x10\x89\xf4\x96\x7d\x34\xae\xa1\x89\xda\x42\x18\x75\xa3\xd1\xe5\xc3\x77\xae\x6f\x6c\x85\x12\xfa\xc3\xf5\xaf\x0e\x81\x6b\x75\xb9\xa3\xf4\xe9\xa8\xc6\xbe\xf5\x2f\xad\x53\x80\x54\xac\x5c\x28\x5d\x25\x23\xf7\x26\x8e\x0f\x21\xc8\xe0\xbd\xde\x01\x5b\x32\x21\xc7\x4a\x7a\xad\xf3\xdf\x8d\x92\x2d\xd9\x16\x15\x1f\x78\xd3\xfc\xf7\xcd\xd5\x5b\x10\xb2\x6e\x2c\x70\x66\x19\xbc\x09\xd1\x78\x52\x54\xfc\x09\x51\xef\xb0\x25\x56\x8b\xd6\xd0\x16\xe7\x61\xe3\xa4\xde\xb7\xef\x39\x1b\x71\x71\x19\x6c\x71\x1e\x76\xc4\xcc\xb5\xb6\x9d\x58\x2d\x48\xa6\x60\xd2\xe7\x1b\x73\xf4\x37\x3e\xf2\xd0\xf8\xe8\x26\x65\xf0\xae\x44\x66\x10\x9a\x9a\x33\x8b\x27\xd4\x67\x15\x14\x4a\x6e\x50\xdb\x13\xf3\x56\xf5\x75\x8c\x05\xb6\xef\xee\x59\xae\xc6\xcd\xe6\x4e\xea\x11\xc4\x49\x4e\xcf\x99\x41\x0e\x4a\xf6\x8f\xcf\x5d\x55\xa3\xa1\x10\xb2\x28\x1b\x8e\x27\xf0\x98\x39\x5a\x85\xf1\x60\x78\x92\x18\x3e\x68\xa9\x40\x84\x59\x19\x5c\x5a\x5f\x45\x2a\xbb\x72\x39\x85\x63\x87\x45\x23\x03\x37\x44\x02\x99\xf9\x58\x28\x89\xe1\x61\xb5\x22\x2d\xf8\xa5\xc6\x62\x0a\x23\x04\xac\x71\xed\x22\xcf\x11\xc1\xe7\x64\xf5\x2b\xd1\x3b\xe0\x1d\xd9\x91\x5a\xd5\xd8\x3e\xe9\x65\xf0\xb1\xbb\x4c\x22\xe5\xd1\xb4\x59\x4b\x8b\xb4\x3d\x62\xd2\x33\x72\x3d\x07\x77\x62\x98\x72\xaa\xba\x2c\xe6\x5c\xe8\x49\x64\x7d\xaf\x5b\xe4\x47\x1b\xf7\x5a\x09\xe9\x53\x43\x5f\x6a\x5a\x0c\x05\x0e\x25\x64\x1d\x2d\xcd\xa8\x94\x8d\x5e\x19\x57\x1b\x1d\x33\xf5\xb0\x1b\x05\x93\x36\x37\x6c\x83\x39\x57\xc5\x1a\x53\xdf\x8f\xfd\xc0\xa4\xd3\xca\x36\x08\xaf\x9c\x20\x88\xca\x15\x12\x23\x09\xb2\x28\x31\x67\xa5\x46\xc6\x77\x39\x7e\x11\x26\xf9\xf5\xc2\x8f\x74\x30\x82\x24\x78\xc9\x84\xee\x8f\x2f\xaf\xdf\x5e\xbe\xfd\x69\x7a\xd1\x16\x27\x3c\xac\x6c\xdb\x32\x2d\xdb\xce\xb0\x46\x9b\x4c\x95\xaf\x69\x8c\x16\xea\x53\x6c\x09\xdf\x02\x5b\x58\xd4\x3e\x4d\x7f\xe1\xef\x51\xba\xfc\x6f\x87\xce\x48\xb0\xe7\x9e\xc8\x1e\x7c\x73\xf6\xbf\x35\xe9\x65\xca\xc0\xd1\x8e\x9f\x4e\x67\x99\x8a\x03\x8e\xb5\xc6\x82\x68\x2e\xd7\x58\x97\xac\x48\x6e\x5f\xca\x9e\xc9\x8e\x2a\x79\xa8\x09\xdc\x8b\xa4\x67\xc5\xe3\x56\xf8\x56\x94\x25\x18\xa5\x24\xb1\x68\x67\x61\x06\x75\x60\x48\xe3\x8b\x22\xd7\xcc\xc0\xed\x91\x3a\x63\x91\x4d\xc4\x1e\x22\x71\x4e\x39\x63\x56\xaa\x29\x39\xc1\x33\x68\x33\xf8\x60\x7c\x5f\xcf\x37\x1d\xdc\x2b\x9f\x93\x76\xbf\xc6\x1b\xfa\x2d\x22\x27\x3f\xb2\x94\x84\xcb\x5b\xa0\xcc\xf5\x6e\x99\x45\x87\xce\xf3\xdc\x03\x4c\x3a\xfe\x61\x9b\xc1\xc5\x1b\x33\xea\xe6\xc7\x05\x8d\x0d\xa4\xf8\x11\x5a\xff\xeb\xb3\x71\x60\xa5\xa8\x84\xcd\xc5\x52\x2a\x9d\x84\x14\xb7\x74\x20\x67\x37\xc5\xa1\x72\xbf\x4e\x4b\x29\xa2\x7f\xaf\x6e\xaa\xf5\x62\xc5\xe4\x12\xd9\x3c\xf9\xbd\xd0\xaf\xad\xc5\xb6\x76\x33\xd1\xef\x72\xe7\x7b\x87\xad\x8e\x0c\x2e\xc9\x3c\xd5\xbf\x13\xf6\x82\x43\x60\xf2\x52\x2d\x73\x23\xfe\x48\x01\x28\xd5\xf2\x46\xfc\xe1\xae\x56\x3f\xe1\xc8\xe3\x6e\x8b\x32\xe9\xde\x82\x97\xa8\x61\x8e\x76\x8b\x28\xe1\xb9\xbb\xb0\xbf\x7b\x3e\x19\x4a\x85\x95\xd2\xbb\x21\x34\x5e\xe2\x5c\x40\xdf\x7d\xff\x4f\x07\xe9\x1f\xdf\x7d\x3f\x19\x13\xdd\xbf\xaa\x49\xd5\x5e\x61\xf4\x2c\x30\xcf\x7d\x7c\xfe\xfe\x9c\xfe\x8c\xe3\x71\x6d\xb4\xbc\xd6\xaa\x46\x6d\x05\xa6\xee\xab\xc8\x80\x3d\xbe\xf2\xcd\x57\xab\x05\xb6\xed\x57\xdf\x93\xeb\x94\xc5\x36\xed\xfd\x9c\x18\x29\x91\x2b\xb7\xe1\x88\x19\x85\x05\xd5\x58\x23\xb8\x5b\x88\xf7\x9a\x6d\x84\x81\x79\x23\x4a\x3e\xdc\xc3\x73\xae\x78\x3a\xd0\xb4\x6d\x27\x51\x41\xbb\xfb\x8f\x08\x41\x9e\x10\x7a\x88\xb6\xeb\x4c\xee\xf7\x59\xf8\xdb\x18\xee\xfd\x3e\xab\x84\x0c\x7d\x2a\xfa\x1f\x56\x8c\x54\xbd\x0e\x6a\x4c\x07\xfd\x21\x4b\xd1\x44\xec\x24\x04\x29\x4a\x8d\x4e\x9a\x0a\xf7\xa4\xe7\xc9\xbe\xc1\x59\xcd\x02\x87\x36\xb4\x22\x5d\x9f\x69\x30\xab\xb9\xd3\x65\x3a\xa2\x98\x93\x74\x27\xd6\x0c\x06\x4b\x2c\x28\x75\x55\x76\x85\xbe\x85\x3d\x0e\x29\x76\x76\x47\x1b\x6d\xe1\x2a\x3c\x69\x4a\xc5\x84\xa1\x50\xd2\x32\xf7\x5d\x9c\x54\xd3\xba\xc5\xce\x7a\xef\xa1\xc6\x05\x65\x0a\x88\x7b\x9f\x31\xc2\x8d\x73\xda\x7a\xdb\x86\x6e\x86\xef\x09\x06\xa1\xe3\x8a\x6b\x3c\x42\xbd\x0f\x2d\x73\xb5\x41\xad\x05\xe7\x98\x2a\x1f\x09\x61\xff\xbb\xcb\xee\xa1\xad\x9b\x1a\x73\x85\xfe\x3b\xca\xd4\x85\xca\x85\xc9\xeb\x66\x5e\x8a\x62\xa0\x9d\x13\x64\x63\xe5\xea\x3f\x2d\x65\x06\xfc\xc4\x3b\xed\xc5\x19\xd1\x85\xe3\x96\x39\xc2\x46\x18\x31\x2f\x7d\x31\x47\x85\x2c\xb1\xa3\x7b\x21\xa4\x22\x76\x47\x85\x91\x92\x89\x4f\x35\x5f\xbd\xfe\xd7\x87\x9f\x26\xa7\xd7\x4e\xfa\x61\xb9\x35\x9f\x2f\x73\x83\x4c\x17\x2b\x2a\x05\xe3\xc2\xb4\xe5\x4d\xea\x1f\x90\xc4\x19\xed\xc2\x1c\x17\x44\x71\x0f\xd3\xb9\xee\x08\x6c\xe4\x8a\x26\x28\xa7\xbb\xf7\xcf\xde\xb9\x67\xee\x5a\x82\xd6\x1e\x6b\xff\x50\x38\xf0\x4f\x17\x5e\xdd\xd3\xad\x0e\x11\x79\x01\x3f\x3a\x04\xdd\x3f\x5a\x70\x0f\x64\xa4\xec\xa1\x00\x86\x3f\xdc\x7d\x38\x86\xfe\x5b\x64\x7c\x3b\x0f\x90\x1e\xdd\x3e\xfa\x5f\x00\x00\x00\xff\xff\x03\x58\x3f\xe2\xef\x34\x00\x00")
 
 func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
        return bindataRead(
@@ -112,7 +112,7 @@ func wski18nResourcesEn_usAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 
14092, mode: os.FileMode(438), modTime: time.Unix(1520952786, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 
13551, mode: os.FileMode(420), modTime: time.Unix(1521501471, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -132,7 +132,7 @@ func wski18nResourcesEs_esAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -152,7 +152,7 @@ func wski18nResourcesFr_frAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 
101, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 
101, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -172,7 +172,7 @@ func wski18nResourcesIt_itAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -192,7 +192,7 @@ func wski18nResourcesJa_jaAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -212,7 +212,7 @@ func wski18nResourcesKo_krAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -232,7 +232,7 @@ func wski18nResourcesPt_brAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 
0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -252,7 +252,7 @@ func wski18nResourcesZh_hansAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", 
size: 0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", 
size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
@@ -272,7 +272,7 @@ func wski18nResourcesZh_hantAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", 
size: 0, mode: os.FileMode(438), modTime: time.Unix(1517928990, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", 
size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
diff --git a/wski18n/resources/en_US.all.json b/wski18n/resources/en_US.all.json
index 6d3cabfa..512d7588 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -64,8 +64,8 @@
     "translation": "path to deployment file"
   },
   {
-    "id": "msg_cmd_flag_interactive",
-    "translation": "allow interactive prompts"
+    "id": "msg_cmd_flag_preview",
+    "translation": "show deployment/undeployment plan"
   },
   {
     "id": "msg_cmd_flag_key_file",
@@ -219,26 +219,6 @@
     "id": "msg_managed_found_deleted_entity",
     "translation": "Deleting {{.key}} [{{.name}}] which was removed from the 
current managed project [{{.project}}] as part of undeployment.\n"
   },
-  {
-    "id": "msg_prompt_apihost",
-    "translation": "\nPlease provide the hostname for OpenWhisk: "
-  },
-  {
-    "id": "msg_prompt_authkey",
-    "translation": "\nPlease provide an authentication token: "
-  },
-  {
-    "id": "msg_prompt_deploy",
-    "translation": "Do you really want to deploy this? (y/N): "
-  },
-  {
-    "id": "msg_prompt_namespace",
-    "translation": "\nPlease provide a namespace [default value is guest]: "
-  },
-  {
-    "id": "msg_prompt_undeploy",
-    "translation": "Do you really want to undeploy this? (y/N): "
-  },
   {
     "id": "msg_default_package",
     "translation": "Package name default is reserved, all OpenWhisk entities 
under default package are deployed/undeployed directly under your namespace."


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to