code: func Open(filename string) (*Reader, error) {
  	r, err := zip.OpenReader(filename)
  	if err != nil {
  		// To give a better error message, we'll sniff to see if this looks
  		// like our old plan format from versions prior to 0.12.
  		if b, sErr := ioutil.ReadFile(filename); sErr == nil {
  			if bytes.HasPrefix(b, []byte("tfplan")) {
  				return nil, fmt.Errorf("the given plan file was created by an earlier version of Terraform; plan files cannot be shared between different Terraform versions")
  			}
  		}
  		return nil, err
  	}
  
  	// Sniff to make sure this looks like a plan file, as opposed to any other
  	// random zip file the user might have around.
  	var planFile *zip.File
  	for _, file := range r.File {
  		if file.Name == tfplanFilename {
  			planFile = file
  			break
  		}
  	}
  	if planFile == nil {
  		return nil, fmt.Errorf("the given file is not a valid plan file")
  	}
  
  	// For now, we'll just accept the presence of the tfplan file as enough,
  	// and wait to validate the version when the caller requests the plan
  	// itself.
  
  	return &Reader{
  		zip: r,
  	}, nil
  }
docs: // Open creates a Reader for the file at the given filename, or returns an
  // error if the file doesn't seem to be a planfile.