Re-create at least 1 visual aid from Tufte’s article that you believe would better describe the dangers surrounding the launch.

APA formated document, describing the specific aspects from the Challenger accident that helps us better understand the importance of effective data visualization.

Also, complete the following activity:

  • Re-create at least 1 visual aid from Tufte’s article that you believe would better describe the dangers surrounding the launch.
  • Expound upon Richard Feynman’s congressional investigation and articulate a better argument as to the cause of the accident.
  • What did you learn from this case study?

Project Description:

Project Description:

See textbook page 122

Chapter 2: Array Based Structures

Programming Exercises 21 (Code an application program that keeps track of student information at your college…)

Submission:

  • One project report in the form of PDF
  • One separate zip folder which contains all the source codes (java preferred.)
  • ONLY ONE group member submits the files on behalf of the whole group.

Evaluation:

  • Report: In the project report, please illustrate what the project is about, what operations you have implemented, and what the testing results are. Both text and pictures should be used to show the running results. Include the names of all team members clearly and contributions of each. (The contributions of all team members will be assumed to be equal by default.) The structure of the report should be clear and organized.(20%)
  • Code: Check whether all operations have been successfully implemented. Check whether the code is commented appropriately and structured well. (80%)

senior Project course starting

Hello,

I have a senior Project course starting august 28th 2019 – December 15th 2019.

I need help with this course from start to end. I will attach a document my professor sent me on what to expect to work with for the course projects….PLEASE DON’T BID IF YOU CANT HELP OR KNOW COMPUTER SCIENCE.. 

Thank you.

understanding of advanced functions, parameter passing, and local variables.

QUESTION 1

  1. Convert the following C++ program into an x86 assembly language program.
    Make sure to use your “Chapter 8” understanding of advanced functions, parameter passing, and local variables.
    Post ONLY your ASM file here to Blackboard when complete.#include <iostream>

    using namespace std;

    int IsSemifauxtrifactored(int value)
    {
        // Return 1 if a number’s factors/divisors from (value – 1) to 1 sum up to half the number value
        // Return 0 otherwise

        // A number is called “semifauxtrifactored” if its summed factors/divisors equal half the number itself
        // Integer division is used, so remainders on the halving can be lost
        // That’s why…

        // 9 is a semifauxtrifactored number
        // 9 cut in half with integer division is (9 / 2) = 4
        // 9 % 8 -> 1
        // 9 % 7 -> 2
        // 9 % 6 -> 3
        // 9 % 5 -> 4
        // 9 % 4 -> 1
        // 9 % 3 -> 0   FACTOR!
        // 9 % 2 -> 1  
        // 9 % 1 -> 0   FACTOR!
        // 9 is a semifauxtrifactored number since its factors (1 + 3) equal half the number (4)

        // 6 is a normal number
        // 6 cut in half with integer division is (6 / 2) = 3
        // 6 % 5 -> 1
        // 6 % 4 -> 2
        // 6 % 3 -> 0   FACTOR!
        // 6 % 2 -> 0   FACTOR!  
        // 6 % 1 -> 0   FACTOR!
        // 6 is a normal number since its factors (1 + 2 + 3) do not equal half the number (3)
    }

    int main()
    {
        cout << “Enter a value: “;
        int value;
        cin >> value;
        value = IsSemifauxtrifactored(value);
        if (value == 1)
        {
    cout << “The number is semifauxtrifactored!”;
        }
        else
        {
    cout << “The number is normal”;
        }

        cout << endl;
        system(“PAUSE”);
    }

DATA STRUCTURES AND ALGORITHMS USING

DATA STRUCTURES AND ALGORITHMS USING

JAVA ™

William McAllister St. Joseph’s College

JONES AND BARTLETT PUBLISHERS Sudbury, Massachusetts

BOSTON TORONTO LONDON SINGAPORE

3

 

 

World Headquarters Jones and Bartlett Publishers 40 Tall Pine Drive Sudbury, MA 01776 978-443-5000 info@jbpub.com www.jbpub.com

Jones and Bartlett Publishers Canada 6339 Ormindale Way Mississauga, Ontario L5V 1J2 Canada

Jones and Bartlett Publishers International Barb House, Barb Mews London W6 7PA United Kingdom

Jones and Bartlett’s books and products are available through most bookstores and online booksellers. To contact Jones and Bartlett Publishers directly, call 800-832-0034, fax 978- 443-8000, or visit our website, www.jbpub.com . Substantial discounts on bulk quantities of Jones and Bartlett’s publications are available to corporations, professional associations, and other qualified organizations. For details and specific discount information, contact the special sales department at Jones and Bartlett via the above contact information or send an email to specialsales@jbpub.com . Copyright © 2009 by Jones and Bartlett Publishers, LLC

All rights reserved. No part of the material protected by this copyright may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission from the copyright owner.

Production Credits Publisher: David Pallai Acquisitions Editor: Timothy Anderson Editorial Assistant:Melissa Potter Production Director: Amy Rose Production Editor: Katherine Macdonald Senior Marketing Manager: Andrea DeFronzo V.P., Manufacturing and Inventory Control: Therese Connell Composition: Northeast Compositors, Inc. and International Typesetting and Composition Cover Design: Kristin E. Parker Cover Image: © Vitezslav Halamka/ShutterStock, Inc. Printing and Binding:Malloy, Inc. Cover Printing:Malloy, Inc.

Library of Congress Cataloging-in-Publication Data McAllister, William (William James) Data structures and algorithms using Java / William McAllister.—

4

 

 

1st ed. p. cm. Includes index. ISBN-13: 978-0-7637-5756-4 (pbk.) ISBN-10: 0-7637-5756-X (pbk.)

1.Computer algorithms. 2. Data structures (Computer science) 3. Java (Computer program language) I. Title. QA76.9.A43M373 2008 005.13’3–dc22

2008013120

6048 Printed in the United States of America

12 11 10 09 08 10 9 8 7 6 5 4 3 2 1

5

 

 

Dedication To my best friend and wife, Gretchen (a.k.a Maggie),

who supplied endless encouragement and hundreds of commas

6

 

 

Contents

Preface

Chapter 1 Overview and Java Review 1.1 Data Structures

1.1.1 What Is Data? 1.1.2 What Is a Data Structure?

1.2 Selecting a Data Structure 1.2.1 The Data Structure’s Impact on Performance 1.2.2 Determining the Performance of a Data Structure 1.2.3 The Trade-Off Process

1.3 Fundamental Concepts 1.3.1 Terminology 1.3.2 Access Modes 1.3.3 Linear Lists 1.3.4 Data Structure Operations 1.3.5 Implementing a Programmer-Defined Data Structure 1.3.6 Procedural Abstractions and Abstract Data Types (ADTs) 1.3.7 Encapsulation

1.4 Calculating Speed (Time Complexity) 1.4.1 Big-O Analysis (O Standing for Order of Magnitude) 1.4.2 Algorithm Speed 1.4.3 Relative Speed of Algorithms 1.4.4 Absolute Speed of an Algorithm 1.4.5 Data Structure Speed

1.5 Calculating Memory Overhead (Space Complexity) 1.6 Java Review

1.6.1 Arrays of Primitive Variables 1.6.2 Definition of a Class 1.6.3 Declaration of an Object 1.6.4 Accessing Objects 1.6.5 Standard Method Name Prefixes 1.6.6 Shallow and Deep Copies 1.6.7 Declaration of an Array of Objects 1.6.8 Objects that Contain Objects as Data Members 1.6.9 Classes that Extend Classes, Inheritance 1.6.10 Parent and Child References 1.6.11 Generic Types

Knowledge Exercises

7

 

 

Programming Exercises

Chapter 2 Array-Based Structures 2.1 The Built-in Structure Array

2.1.1 Multidimensional Arrays 2.2 Programmer-Defined Array Structures

2.2.1 Unsorted Array 2.2.2 Sorted Array 2.2.3 Unsorted-Optimized Array 2.2.4 Error Checking

2.3 Implementation of the Unsorted-Optimized Array Structure 2.3.1 Baseline Implementation 2.3.2 Utility Methods

2.4 Expandable Array-Based Structures 2.5 Generic Data Structures

2.5.1 Design Considerations 2.5.2 Generic Implementation of the Unsorted-Optimized Array 2.5.3 Client-Side Use of Generic Structures 2.5.4 Heterogeneous Generic Data Structures

2.6 Java’s ArrayList Class Knowledge Exercises Programming Exercises

Chapter 3 Restricted Structures 3.1 Restricted Structures 3.2 Stack

3.2.1 Stack Operations, Terminology, and Error Conditions 3.2.2 Classical Model of a Stack 3.2.3 A Stack Application: Evaluation of Arithmetic Expressions 3.2.4 Expanded Model of a Stack

3.3 Queue 3.3.1 Queue Operations, Terminology, and Error Conditions 3.3.2 Classical Model of a Queue 3.3.3 Queue Applications 3.3.4 Expanded Model of a Queue

3.4 Generic Implementation of the Classic Stack, a Methodized Approach

3.4.1 Generic Conversion Methodology 3.5 Priority Queues 3.6 Java’s Stack Class

8

 

 

Knowledge Exercises Programming Exercises

Chapter 4 Linked Lists and Iterators 4.1 Noncontiguous Structures 4.2 Linked Lists 4.3 Singly Linked Lists

4.3.1 Basic Operation Algorithms 4.3.2 Implementation 4.3.3 Performance of the Singly Linked List 4.3.4 A Stack Implemented as a Singly Linked List

4.4 Other Types of Linked Lists 4.4.1 Circular Singly Linked List 4.4.2 Double-Ended Singly Linked List 4.4.3 Sorted Singly Linked List 4.4.4 Doubly Linked List 4.4.5 Multilinked List

4.5 Iterators 4.5.1 Implementation of an Iterator 4.5.2 Multiple Iterators

4.6 Java’s LinkedList Class and ListIterator Interface Knowledge Exercises Programming Exercises

Chapter 5 Hashed Data Structures 5.1 Hashed Data Structures 5.2 Hashing Access Algorithms

5.2.1 A Hashing Example 5.3 Perfect Hashed Data Structures

5.3.1 Direct Hashed Structure 5.4 Nonperfect Hashed Structures

5.4.1 Primary Storage Area Size 5.4.2 Preprocessing Algorithms 5.4.3 Hashing Functions 5.4.4 Collision Algorithms 5.4.5 The Linear Quotient (LQHashed) Data Structure Implementation 5.4.6 Dynamic Hashed Structures

Knowledge Exercises Programming Exercises

9

 

 

Chapter 6 Recursion 6.1 What Is Recursion? 6.2 Understanding Recursive Algorithms

6.2.1 n Factorial 6.2.2 The Code of a Recursive Algorithm 6.2.3 Tracing a Recursive Method’s Execution Path

6.3 Formulating a Recursive Algorithm 6.3.1 Definitions 6.3.2 Methodology 6.3.3 Practice Problems

6.4 Problems with Recursion 6.4.1 Dynamic Programming Applied to Recursion

6.5 Backtracking, an Application of Recursion 6.5.1 A Generalized Backtracking Algorithm 6.5.2 Algorithm Adaptation Methodology

Knowledge Exercises Programming Exercises

Chapter 7 Trees 7.1 Trees

7.1.1 Graphics and Terminology of Trees 7.2 Binary Trees

7.2.1 Terminology 7.2.2 Mathematics

7.3 Binary Search Trees 7.3.1 Basic Operation Algorithms 7.3.2 Performance 7.3.3 Implementation 7.3.4 Standard Tree Traversals 7.3.5 Balanced Search Trees 7.3.6 Array Implementation of a Binary Search Tree 7.3.7 Performance 7.3.8 Java’s TreeMap Data Structure

Knowledge Exercises Programming Exercises

Chapter 8 Sorting 8.1 Sorting 8.2 Sorting Algorithm Speed

8.2.1 Minimum Sort Effort

10

 

 

8.2.2 An Implementation Issue Affecting Algorithm Speed 8.3 Sorting Algorithms

8.3.1 The Binary Tree Sort 8.3.2 The Bubble Sort 8.3.3 The Heap Sort 8.3.4 The Merge Sort 8.3.5 Quicksort

Knowledge Exercises Programming Exercises

Chapter 9 Graphs 9.1 Introduction

9.1.1 Graphics and Terminology of Graphs 9.2 Representing Graphs

9.2.1 Representing Vertices 9.2.2 Representing Edges

9.3 Operations Performed on Graphs 9.4 Implementing Graphs in the Vertex Number Mode 9.5 Traversing Graphs

9.5.1 Depth-First Traversal 9.5.2 Breadth-First Traversal

9.6 Connectivity and Paths 9.6.1 Connectivity of Undirected Graphs 9.6.2 Connectivity of Directed Graphs 9.6.3 Spanning Trees 9.6.4 Shortest Paths

Knowledge Exercises Programming Exercises

Appendices Appendix A ASCII Table Appendix B Derivation of the Average Search Length of a Nondirect Hashed Data Structure Appendix C Proof That If an Integer, P, Is Not Evenly Divisible by an Integer Less Than the Square Root of P, It Is a Prime Number Appendix D Calculations to Show That (n + 1) (log2(n + 1) − 2) Is the Minimum Sort Effort for the Binary Tree Sort

Glossary

11

 

 

Index

12

 

 

Preface

Introduction Data Structures and Algorithms Using Java is an undergraduate-level

textbook for a computer science curriculum. It covers the entire syllabus of the Association of Computing Machinery standard curriculum courses CS103i and CS103o, “Data Structures and Algorithms” (CS2001 evolutions of the traditional CS2 course). As such, it is intended to be used as the primary text for these courses. The book is built upon my academic and industry experience, combining the pedagogical techniques I’ve developed and refined during 29 years of teaching with my practical knowledge of the computer field acquired during 28 years in the industry. The resulting integration of theory and application will help students at all levels to understand core concepts that will enhance their success in later courses, and ultimately, in their careers.

Why Another Data Structures Book My primary reason for writing this book was to produce a text that

was more readable, engaging, and instructive than those currently in print without compromising the scope of the ACM CS103 course material. I wanted the text to engage students outside the classroom in the process of investigative discovery. The motivation for this was based partially on the findings from two National Science Foundation grants my colleagues and I received, whose purpose was to investigate ways of attracting students into technical areas of national need (including computer professionals) and retaining them through graduation. “Data Structures and Algorithms,” a sophomore-level course, is usually the “make-or-break” course for computer science majors. As a co-principal investigator on both of these grants, I realized that a highly accessible Data Structures and Algorithms text, with improved pedagogy, would help retain students majoring in computer science.

Advantages of This Text I’ve endeavored to present the minimal amount of Java code

necessary to illustrate the implementation of the learned concepts. This minimal code set leaves plenty of room for meaningful programming assignments, while being thorough enough that a computer professional

13

 

 

could use the text as a source code reference book. The book is more comprehensive in some topic areas than current

books in print, which makes it more appealing to highly capable students. The clearer language, simple examples, and abundance of instructional figures, including nearly 300 illustrations and more than 50 tables, make it more accessible to the majority of students who might otherwise struggle to grasp these and other, more challenging, concepts.

The text is aimed at both the computer scientist who implements, refines, or improves the classic data structures and the software engineer who selects and integrates library implementations of these data structures into particular applications. From the computer scientist’s viewpoint, the design of each of the classic data structures is discussed and their algorithms’ pseudocode developed and implemented. In addition, the characteristics of each structure that give rise to its speed and space complexity advantages (or disadvantages) are examined. From the software engineer’s viewpoint, the text presents the relative merits of the classic data structures to the extent that an optimum choice could be made for a particular application. This is accomplished by deriving the speed and memory requirements of each of the classic data structures in a quantified manner, with the performance of each structure compared in a summary table at the end of each chapter. In addition, multivariable graphs are presented to demonstrate how to locate optimum design points from a memory requirement point of view. Finally, the use of the Java API implementation of the data structures is demonstrated.

Other significant advantages of this book are: a methodized approach to recursive algorithm development aimed at teaching students to “think” recursively; an introduction to the techniques and benefits of dynamic programming; and line-by-line discussions of the significant portions of the implementation code, which include the techniques for encapsulating data within a structure and the techniques for implementing generic structures.

Programming Language Background The implementation language used in the text is Java, but since the

first chapter includes a review of objects and the Java constructs and syntax necessary to understand the book’s code examples, students with a programming background in other high-level languages should find the book approachable. The Java review guides students through an

14

 

 

understanding of the fundamental concepts essential to data structures that are particular to object-oriented languages, such as Java’s use of reference variables, its memory allocation model, arrays of objects, shallow and deep object copies, parent-to-child references, composition (containership), and generic features of Java 1.4.

Organization The text employs a unique, student-friendly pedagogical approach

and organizational structure. The chapters that present the classic data structures (Chapters 2 , 3 , 4 , 5 , 7 , and 9 ) use a common template, rooted in the object paradigm, as the organizational basis of each chapter. The use of this template, embellished with topics particular to each structure, permits the student to “anticipate” the material presented in each chapter, which in turn makes the text more readable. The template begins by stating the shortcomings of the structures studied to that point and identifies the ways in which the new structure addresses some of these shortcomings. Then the structure is visually introduced, and its initialization and operation algorithms are developed in pseudocode. These algorithms are then fully implemented in Java as an encapsulated homogenous structure, and the structure’s use is then demonstrated in a telephone information request application. Next, the performance of the structure is quantified, discussed, and compared to the performance of the previously studied structures. Finally, the use of the Java API implementation of the structure is discussed and demonstrated.

Chapter 1 is an introduction to the basic concepts of data structures and a review of Java. The first part of the chapter introduces the student to the concept of a data structure and its impact on the performance of a software product. The terminology and fundamental concepts common to all data structures are discussed, including encapsulation, abstraction, and algorithm performance. This section concludes with a discussion of speed complexity, space complexity, and Big-O analysis. The second part of the chapter is a review of the Java concepts and constructs necessary to understanding the implementations presented in the text. The topics include array declarations, class definitions and objects, containership, inheritance, shallow and deep copies, and the use of the generic features of Java 1.4 to write generic methods and classes.

Chapter 2 discusses the implementation of the built-in structure array and presents three programmer-defined, array-based structures. A major

15

 

 

pedagogical advantage of this chapter is that it utilizes the simplicity of arrays and the students’ familiarity with them to facilitate a discussion of the concepts common to all data structures. In the first part of the chapter, the student is encouraged to view arrays from a new perspective: a data structures perspective. Once viewed from that perspective, they can be used as a case study to illustrate the techniques of memory modeling and performance trade-offs that were employed in their design. The second part of the chapter begins the book’s study of programmer-defined data structures by presenting three data structures built upon arrays. The simplicity of these structures allows the student to focus on learning the concepts common to all data structures. Then, having gained an early understanding of these concepts, students are free to concentrate on the more complicated conceptual details of the structures presented in subsequent chapters. The chapter also presents techniques for expanding arrays at run-time and for converting the array-based implementation developed in the chapter to a fully generic data structure using the generic features of Java 1.4. It concludes with a discussion of the use of the ArrayList class included in the Java API.

Chapter 3 presents the restricted structures Stack and Queue. The first part of the chapter discusses what they have in common with other data structures and encourages the student to consider what about them is restricted. Thus the student understands that Stack and Queue are part of the broader data structure landscape, rather than two isolated computer science topics. The second part of the chapter presents the details of Stack and Queue, including a full implementation of each structure. The Queue implementation is used as the basis of presenting a methodized approach to converting a data structure class to a fully generic class using the generic features of Java 1.4. The chapter concludes with a discussion of priority queues and the use of the Stack class included in the Java API.

Chapter 4 introduces the student to linked lists, their use in the implementation of a stack, and iterators. The first part of the chapter discusses singly linked lists and their implementation. It also includes a discussion of several variations of a singly linked list, doubly linked lists, and multi-linked lists. The second part of the chapter introduces the concept of an iterator, a discussion of the advantages of its use, and a full implementation of an iterator class. As part of this implementation, the concept of an inner class is introduced, which includes a discussion of why classes are coded as inner classes. The chapter concludes with a discussion of the use of the LinkedList and ListIterator classes included in the Java

16

 

 

API. Chapter 5 deals with the topic of hashing, but it significantly extends

the traditional treatment of this topic. It treats the pervasive data structures that use hashing algorithms as a separate data structure category, Hashed Structures. The first part of the chapter illustrates the advantages of hashing via an example, and then it presents the algorithms of a data structure based on a perfect hashing function. The second part of the chapter discusses nonperfect hashing functions, collision algorithms and their performance, and string preprocessing algorithms used by data structures that utilize nonperfect hashing functions. Included is a discussion of optimum hash table size and a 4k + 3 prime number generator. All these concepts are then applied in the implementation of a data structure based on the division hashing function and high performance collision algorithm. The chapter concludes with a discussion of expandable hashed structure and the use of the HashTable class included in Java’s API.

Chapter 6 presents the topic of recursion. The first part of the chapter introduces recursion and provides the student with an understanding of how a recursive method works. The student is taught to think recursively in the second part of the chapter via a methodized approach to recursive algorithm development. Several examples are presented whose recursive solutions can be discovered by directly applying the methodology. Once comfortable with the methodology, the student is presented with other examples that require modification in order to discover their recursive solutions. The chapter concludes with a discussion of the speed and space complexity problems of recursive algorithms and the application of dynamic programming to alleviate these problems. Other applications of recursion appear in the chapters on trees, sorting, and graphs.

Chapter 7 introduces the student to the topic of trees. After a discussion of the terminology of trees in general and binary trees in particular, including the mathematics of binary trees, the algorithms of the binary search tree are introduced. All three cases of the delete algorithm are presented. The structure is implemented using a linked implementation, and a subsequent analysis of its performance leads to a discussion of self-balancing trees, specifically the AVL and re-black trees. The second part of the chapter presents the array-based implementation of a binary tree, which includes the pseudocode of its Insert and Fetch algorithms. The poor performance of the Delete algorithm under this implementation is discussed along with a suggested remedy. The chapter concludes with a discussion of the use of the red-black tree

17

 

 

implementation TreeMap included in Java’s API. Chapter 8 presents the topic of sorting. It begins with a discussion of

the motivation for sorting and demonstrates the need for efficient sorting algorithms. Included is a discussion of the parameters and techniques used to determine the speed of these algorithms. The first algorithm presented is the binary tree sort, which uses the student’s knowledge of search trees as a stepping stone to the analysis of sorting algorithms. The remainder of the chapter presents four other classic sorting algorithms, and it implements two of the better performers—the merge and quick sort—recursively. As each algorithm is discussed, its speed and space complexity are determined and summarized in a table for comparative purposes.

Chapter 9 presents the topic of graphs. In the first part of the chapter, they are presented as part of the data structure landscape. After a discussion of the terminology and the mathematics of graphs, the techniques for representing them are introduced and compared, and the algorithms used to operate on them are developed and implemented. These algorithms included both depth-first and breadth-first traversals. The first part of the chapter concludes with an implementation of a graph structure that includes a depth-first traversal. The second part of the chapter discusses the issues of connectivity and paths along with the associated algorithms. These algorithms include the determination of connectivity, spanning trees, and shortest paths based on Warshall’s, Dijkstra’s, and Floyd’s algorithms.

Supplemental Materials The pedagogical features of the text are significantly enhanced by

animation courseware that can be run on any Java-enabled browser. These animations demonstrate the functionality of the algorithms associated with each data structure presented in the text by presenting the changes that take place in main memory as the algorithms execute. Other ancillary materials provided with the text are PowerPoint lecture outlines, the text’s source code, spreadsheets that can be used to perform design performance trade- offs between various data structures, and solutions to selected exercises. These supplements can be found at Jones and Bartlett’s catalog page, http://www.jbpub.com/catalog/9780763757564 .

Acknowledgments I would like to thank the team at Jones and Bartlett that aided me in

18

 

 

the preparation of this book and guided me through the publication process: my acquisitions editor, Tim Anderson; his editorial assistant, Melissa Potter; Melissa Elmore, Associate Production Editor; Kat Macdonald, Production Editor; my copy editor, Diana Coe; and the entire production staff.

I’d also like to thank the reviewers for taking the time to review the manuscript and providing many valuable suggestions, most of which have been incorporated into the textbook: Tom Murphy, Contra Costa College, and Victor Shtern, Boston University.

Most importantly, I’d like to thank my family, friends, and colleagues who not only offered encouragement but also endless patience and understanding during the times when I was too busy to be me. Finally, I’d like to thank St. Joseph’s College for the sabbatical that allowed me to get this textbook off the ground.

To the Students It’s my hope that you enjoy reading this book, and that you will

experience the joy of accomplishment as you learn material that is fundamental to the remarkable discipline in which we have chosen to immerse ourselves. The pedagogy on which it is based evolved through the classroom experiences I’ve had with hundreds of students much like you. By the time you finish this book, you will be way ahead of my son-in-law (a lawyer) who says he’d rather wait for Data Structures: The Movie . I imagine each of you reading and learning from this book (even before the movie version is released), and I wish you much success in your future careers.

William McAllister

19

 

 

CHAPTER 1

Overview and Java Review

OBJECTIVES The objectives of this chapter are to familiarize the student with the

concepts common to all data structures and to review the Java constructs used to implement them. More specifically, the student will be able to

Understand the basic terminology of data structures, including data abstraction, encapsulation, linear lists, complexity, homogeneity, and the four basic operations performed on structures in both the key field and the node number mode.

Explain the difference between programmer-defined and built-in data structures, shallow and deep copies, absolute and relative algorithm speed, and static and nonstatic methods.

Understand the performance of a data structure, the factors that affect it, and the techniques used to quantify it, including the application of a Big-O analysis.

Understand the binary search algorithm and be able to explain and verify its O(log2 n ) performance.

Understand the significance of a data structure’s density and be able to calculate it.

Understand and be able to declare primitive and reference variables in Java, arrays of primitive and reference variables, and understand their underlying memory models.

Understand and implement methods, classes, declarations, and operations on objects, and the passing of arguments by value.

Implement a node definition class and an application class that creates nodes and operates on them.

Understand and be able to implement inheritance and containership.

20

 

 

Generalize a method or class using the generic features of Java.

1.1 Data Structures A thorough knowledge of the topic of Data Structures is essential to

both software design and implementation. Its subject matter embodies techniques for writing software that performs efficiently, as opposed to software that merely produces correct results. Properly designed data structures can increase the speed of a program and reduce the amount of memory required to store the data that the program processes. In addition, it serves as a bridge between a basic programming course and more advanced topics such as operating systems, networking, and computer organization.

When asked to reflect on their undergraduate careers, most computer scientists consider the core topic of data structures to be the most challenging course in the undergraduate curriculum. Not only is the sheer volume of the material burdensome, but the concepts and algorithms introduced in the course are quite novel. Furthermore, implementation of the concepts into functional software often tax their novice programming abilities. It is not unusual for students to struggle at the beginning of this course until their coding skills improve and they can then focus all of their attention on the underlying concepts and algorithms.

After a brief discussion of data, data structures, and their roles and importance in the field of computer science, this chapter will present topics common to all data structures. It concludes with a review of the Java language, including the topics of objects, inheritance, and generics, which are necessary to implement the concepts presented in subsequent chapters.

1.1.1 What Is Data? Data is information.

Information such as your name, your address, and your age are all examples of data. The source of the information can be any device attached to a computer system, such as a keyboard, a mouse, a modem, a network line, a disk drive, or some other mass storage device. Sometimes the program itself can be the source of the data if, during processing, it generates data (Figure 1.1 ).

21

 

 

Figure 1.1 Some of the Sources of a Program’s Input Data All programs, when viewed on a macro level, are the same: when

executed they accept input data, process the data, and then output a result (Figure 1.2 ). In some special cases, the input or output data set is empty, but more often it is not. Occasionally, although the input or output information appears to be empty, it is not. For example, consider a program that when executed simply generates a random number. It appears to have no input data; however, random number algorithms require a seed value , and although the value is not input by the program user, it still must be supplied for the algorithm to function properly. This seed value is often the current time supplied to the program by the computer’s system clock.

Studies show that programs spend 80% of their execution time searching through memory to locate the data they process. When the data set is small, this time is usually insignificant. For example, a program that outputs the largest of 10 numbers stored in memory will identify the largest number after 10 memory accesses. Assuming a memory access takes 100 nanoseconds (10−9 seconds), the 10 memory accesses will be complete and the result will be available in 1,000 nanoseconds. It is difficult to imagine a user growing impatient in one millionth of a second. However, if the information was needed to make a critical mid-course correction to a space probe, or to shut down a runaway nuclear reactor, the time to locate the datum could be significant, even though the data set is small.

22

 

 

Figure 1.2 Macro View of a Program When programs deal with large data sets, the time spent searching for

a datum is more likely to be significant. Consider a program that searches sequentially through 400 million social security records. If the information requested is the 400 millionth record, and each memory access takes 100 nanoseconds, it will take 40 seconds to locate the information (400 × 106

accesses * 100 × 10−9 accesses per second). Studies show users grow impatient in one to two seconds; they find 40 seconds intolerable (Figure 1.3 ). Thus, the speed at which a program locates the data to be processed is usually a concern when designing programs that operate on large data sets, and it must also be considered when designing programs that operate on small data sets under stringent time constraints.

Another program design concern is efficient use of main memory. Programs execute most rapidly when both the data that they operate on and their processing instructions reside simultaneously in main memory. However, even on modern computer systems, main memory is a limited resource. Therefore, it is important that the amount of storage required in order for the data to be processed (as well as the program instructions) be kept to a minimum. Techniques for minimizing the data storage requirements of a program and the speed at which the program locates the data it processes are fundamental to the topic of data structures. Data Structures is the area of computer science that addresses these issues in order to ensure that the storage requirements and speed at which the data is accessed is consistent with the requirements of the application.

Figure 1.3 A User’s Reaction to a Slow Program

1.1.2 What Is a Data Structure?

23

 

 

The National Institute of Standards and Technology defines a data structure as: “A data structure is an organization of information, usually in memory, for

better algorithm efficiency.” Therefore, the study of data structures is the study of how to organize

the information that a program processes in a way that improves the program’s performance. Specifically, the information is organized in a way that facilitates the operations the program’s algorithm performs on the data.

For example, suppose salespersons used a program to look up the price of an item in a store’s inventory. A good organization of the data would be to place the most popular items at the beginning of the data set, since a sequential search would then rapidly locate them. However, this organization of the data would not as be attractive if the function of the program were to output the store’s inventory in alphabetic order.

To improve the program’s efficiency, the organization scheme often requires additional storage over and above the size of the program’s data set. This extra storage is commonly referred to as overhead . Returning to our store example, if we wished to perform rapid price checks and rapidly produce inventory printouts, an organization scheme might store the data set twice: ordered by an item’s popularity and ordered in alphabetic order. Although this would facilitate the operations performed on the data set (price check and inventory output) it would double the data memory required by the application.

Standard for Goodness A good data structure is one that organizes the data in a way that facilitates

the operations performed on the data, while keeping its total storage requirement at, or close to, the size of the data set.

There are two types of data structures: built-in data structures and programmer-defined data structures. Built-in data structures are schemes for storing data that are part of a programming language. Examples of these are memory cell (variable ) declarations, arrays, and Java’s String class.

Programmer-defined data structures are schemes for storing data that are conceived and implemented by the programmer of a particular program. These data structures are constructed from the built-in data structures. Examples of these are parallel arrays, class definitions, hashing schemes, linked lists, trees, stacks, and queues. As programming languages

24

 

 

evolve, the built-in data structures have expanded to include some of the programmer defined data structures. For instance, Java’s Application Programmer Interface includes implementations of hashing schemes, linked lists, trees, stacks, and queues. Many of these data structures are also implemented in the C++ Standard Template Library .

1.2 Selecting a Data Structure The selection of a data structure for a particular application can have

a significant effect on the performance of the program. Techniques borrowed from other engineering disciplines are used to ensure that the structure selected satisfies the performance criteria of the application and has a minimal impact on the overall implementation cost of the application.

1.2.1 The Data Structure’s Impact on Performance In an introductory programming course, the programs students write

operate on small data sets and execution time constraints are not considered. As such, these programs are evaluated using the following two criteria (standards for goodness):

• The “penmanship” of the program is good. • For all sets of valid inputs, the program produces the correct outputs.

Here, we will consider penmanship to include such issues as an absence of syntax errors, good variable naming, proper indentation, good organization of the code (including the use of subprograms), and proper use of the language constructs (e.g., appropriate use of switch statements vs. if-else-if statements).

These criteria are adequate for programs that operate on small data sets. However, as discussed, programs that process large sets of data, or have stringent speed constraints previously imposed on them, must also consider two additional criteria:

• Efficient use of storage—both main memory and external storage. • Speed of execution.

There is additional criteria that brings us to the study of Data Structures, because the scheme that is selected for storing large data sets can have a significant impact on both speed and memory utilization.

To illustrate this point, consider a program that would service

25

 

 

telephone number information requests for a large city. Aside from information requests, listings will be both added to, and deleted, from the data base as residents move into and out of town. In addition, listings will be updated as customers relocate within the town. The conditions and assumptions of the application are given in Table 1.1 , as is the operation speed requirement, 0.10 seconds.

Suppose that four software firms have developed a program for this application, each of which uses a different data structure to store the data, as specified in Table 1.2 .

Table 1.1 Conditions and Assumptions for a Telephone Information

Request Application Condition Problem Assumptions Number of phone listings 100,000,000 Size of each person’s name and each listing

16 bytes and 50 bytes

Time to fetch 4 bytes from memory 100 nanoseconds (100 × 10−9 seconds)

Time to execute an instruction 2 nanoseconds (2 × 10−9 seconds) Maximum time to perform an operation

0.10 seconds

Table 1.2 Data Structures Used by Four Telephone Information Request

Programs Program Data Structure 1 Unsorted Array 2 Sorted Array 3 Hashing 4 Perfect Hashing

Based on the first set of criteria, all the programs perform equally well: for valid inputs, each program produces valid outputs, and they all are written with good penmanship. However, since they operate on a large data set with a specified time constraint—perform an operation within one- half second—we must also consider the two additional evaluation criteria: efficient use of memory and speed of execution.

To evaluate the speed and memory utilization of the programs,

26

 

 

assume each program is put into service for several days. The average time needed to perform four common operations on the data set is monitored, as is the additional storage required by the programs above that used to store the 100,000,000 listings. The results, summarized in Table 1.3 , show that the performances of the candidate programs differ greatly. The shaded cells in the table indicate unacceptable performance. Only programs 3 and 4 meet the speed requirement of the problem, and program 4 requires an unacceptable amount of additional memory—memory above that required to store the 100,000,000 listings. (The techniques used to calculate the data in Table 1.3 are discussed in another section of this chapter.) By examining the data in the table, we can clearly see that the choice of a data structure can have a large effect on the execution speed and memory requirements of a program.

1.2.2 Determining the Performance of a Data Structure In our hypothetical telephone listing problem, we indicated that the

four programs were actually put into service to evaluate their performance. However, this is most often not the way the merits of candidate data structures (i.e., the alternative structures being considered) are evaluated. It would be much too costly to code an entire program just to determine whether the performance of a candidate data structure is acceptable. Rather, this evaluation must take place during the early stages of the design of the program, before any code is written.

To do this, we borrow tools from other engineering disciplines. Consider a group of civil engineers responsible for evaluating several candidate designs for a bridge. Certainly, they would never consider fabricating each design so that they can be tested to determine which design is the best. Cost issues aside, this build-and-test approach to design

27

 

 

trade-offs would be too time-consuming. Instead, civil engineers perform detailed calculations early in the design process to evaluate candidate designs. Based on the results of these calculations, they select the lowest cost design that satisfies the performance criteria.

Software engineers have adopted this design trade-off technique to evaluate candidate data structures early in the program design process. Consistent with the definition of a data structure, two sets of calculations are performed on each candidate data structure during the trade-off process:

• Calculations to determine the speed of the operations to be performed on the data. • Calculations to determine the amount of extra storage (overhead) associated with the data structure.

These two calculations are considered to be a measure of the performance of a data structure. A high-performing data structure is one that

• Rapidly operates on the data. • Minimizes storage requirements.

Unfortunately, due to the architecture of modern computer systems, rapid operation and minimal storage are usually mutually exclusive. Data structures that are very fast normally require high storage overhead; this was the case with our fourth telephone program’s data structure. Data structures that minimize memory overhead can be slow; this was the case with our first and second telephone programs’ data structure. Thus, the selection of the best structure for a particular application is usually a compromise, or trade-off, between speed and overhead and one other very important factor: cost.

1.2.3 The Trade-Off Process Once the performance of the candidate data structures has been

calculated (i.e., their speed and memory requirements), the trade-off process begins aimed at selecting the best data structure for the application. The selection of the best data structure should always be based on the following guideline:

Select the least expensive data structure that satisfies the speed requirements and storage constraints of the application.

Thus, there are three factors to consider in the trade-off: cost, speed,

28

 

 

and memory overhead. The process is illustrated in Figure 1.4 . Speed requirements can vary widely from one application to another.

A program that is monitoring the temperature of a nuclear reactor may have to operate on its data within a few hundred nanoseconds to prevent a meltdown, while a program that updates a bank account balance may have several seconds to perform its operation. When the data processing is performed to update a display viewed by humans, an operation time of 0.1 seconds is more than adequate. Studies show that faster response times are imperceptible to humans. Whatever the speed requirements for a particular problem are, good software engineering practices mandate that they be specified before the program is designed and that they be documented in the project’s Requirements Document .

The cost of a data structure is primarily the labor cost associated with developing the code to implement the data structure. This includes its design, coding, testing, and documentation. Some data structures can be implemented in a few lines of code, while others take thousands of lines. Software engineering studies indicate that the cost of software is directly proportional to the number of lines of code that the software contains. Typical software costs for large software projects are illustrated in Figure 1.5 for various burdened labor rates. 1 The cost shown includes the cost of design, implementation, testing, and documentation. Thus, the most cost- effective data structures are those whose implementations require a minimal amount of code and utilize builtin data structures in their design.

Figure 1.4 Data Structure Selection Process Involving Four Candidate Structures

29

 

 

Figure 1.5 Cost of Software that is Part of a Large Project Using data similar to that presented in Figure 1.5 , the designer of a

data structure can estimate its cost by simply estimating the number of lines of code required to implement the data structure. Once this is done, the most inexpensive structure is selected from those that meet the speed criteria and demonstrate an acceptable level of memory overhead.

To illustrate the trade-off process depicted in Figure 1.4 , we will return to our telephone listing application. During the Requirements Phase of the project, our system analysis team has met with the customer and has consolidated their findings in the project’s Requirements Document. Assume that the conditions specified in Table 1.1 have been reproduced from that document. As previously mentioned, four candidate data structures have been proposed for the project (see Table 1.2 ). These will be passed through the trade-off process illustrated in Figure 1.4 .

To begin this process, the speed of the operations are calculated for each of the candidate structures using techniques explained later in this text. The results of these calculations are presented in Table 1.3 . Since the required maximum operation time was specified to be less than 0.10 seconds (see Table 1.1 ), the first and second data structures are eliminated from further consideration. (Their maximum operation times are 6 seconds and 10 seconds respectively.)

Next, calculations are performed to determine the additional storage required by the two remaining candidate data structures that are necessary to store the 100,000,000 telephone listings. The results of these calculations are presented in the rightmost column of Table 1.3 . The overhead associated with the fourth structure (1.7 × 1031 bytes) is unacceptably large, and so it is eliminated, leaving us with the third

30

 

 

structure. Its additional memory requirements are only 10% larger than the minimum required to store the phone listings (5,000,000,000 bytes = 100,000,000 listings × 50 bytes per listing).

Finally, a cost analysis is performed on the third structure. As previously discussed, one simple cost analysis technique is to estimate the number of lines of code required to implement the data structure. Then, a chart similar to Figure 1.5 can be used to estimate the implementation cost. If this cost is acceptable, the structure would be used for the application. If not, other candidate structures would have to be proposed, or the requirements of the project, specified in Table 1.1 , would be renegotiated with the customer.

1.3 Fundamental Concepts All data structures share a common set of concepts that include:

• A common terminology . • The manner in which the information stored in the structures is accessed . • The manner in which the information is operated on . • The manner in which the structures are implemented . • The concepts of abstraction and encapsulation .

We will begin our study of these topics with a discussion of the common terminology of data structures.

1.3.1 Terminology Before proceeding further with our study of data structures, it is

necessary to gain an understanding of five terms fundamental to the study of data structures: field, node, key field, homogeneous structure, and linear list.

Field: A field is an indivisible piece of data.

Our phone listings consist of three fields: a person’s name, the person’s address, and the person’s phone number. By indivisible , we mean that if the field were divided further, it would lose all meaning. For example, a seven-digit phone number could be divided into seven separate integers, but in the context of our phone directory, those seven separate integers would have no meaning in that they would no longer represent a

31

 

 

phone number. Node:

A node is a group of related fields. In our phone book problem, a single listing is called a node. In some

programming languages, node definitions are coded using the structure construct (in C++ the keyword struct). Java programmers code node definitions using the class construct, with the node’s fields coded as the class’ data members. The relationship between the fields of a node must be a belongs-to relationship, so if the name field of a phone book node contains the name “Al Smith,” then the address field must contain Al Smith’s address, and the phone number field must contain Al Smith’s phone number.

Key Field: A key field is a designated field in a node whose contents are used to

identify, or to refer to, the node. In the case of our phone book information request application, the key

field would normally be the name field. The contents of the name field are used to identify which listing is to be fetched from the data set. There can be more than one key field. If the application was also used by the police to trace a call, the phone number field would also be designated as a key field.

The definitions of field, node, and key field are illustrated in Figure 1.6 , which refers to the telephone listing application.

Homogeneous data set: A set of nodes in which all the nodes have identical fields (number and

type)

Figure 1.6 A Node and Its Fields The data set in our telephone listing application is a homogeneous

data set because each node in the data set has the same three fields (a

32

 

 

person’s name, address, and telephone number), and these fields in all the nodes are of the same type (String). Most data sets are homogeneous.

1.3.2 Access Modes Access is the process by which we locate a node in memory. After the

node is accessed or located, then an operation can be performed on it. There are two generic ways or modes used to specify the node to be accessed:

• The node number mode. • The key field mode.

In the node number mode, the number of the node to be operated on is specified (e.g., fetch back the third node). In the key field mode, the contents of the designated key field are specified (e.g., fetch back the node whose key field contains the value “Al Smith”). Most data structures utilize the key field access mode. However, as we will see, there are some important applications in which the node number mode is used.

1.3.3 Linear Lists An implicit assumption in the node number mode is that nodes are

stored in a linear fashion, called a linear list . A collection of n nodes is a linear list if:

• There is a unique first node, N 1 . • There is a unique last node, N n . • For any other node, N i , a unique (one and only one) node, N i −1 , comes just before it, and a unique (one and only one) node, N i +1 , comes just after it.

Figure 1.7 illustrates a group of nod

Develop your own Comprehensive Web Application

Develop your own Comprehensive Web Application

  • Synthesize the conceptual information covered in previous modules to propose your own comprehensive web-based application that you will develop
  • Design a consistent look for your web application
  • Create an intuitive navigation structure for your web application
  • Develop your proposed web application using the ASP.NET Core MVC tools and coding techniques covered in previous modules
  • Incorporate at least one user story within your application for adding, updating, and deleting data in a database table

Create a step-by-step IT security policy for handling user accounts/rights for a student who is leaving prematurely

Create a step-by-step IT security policy for handling user accounts/rights for a student who is leaving prematurely (drops, is expelled, and so on).

You will need to consider specialized student scenarios, such as a student who works as an assistant to a faculty member or as a lab assistant in a computer lab and may have access to resources most students do not.

ProjectFingerprint

MGO_MVC/.vs/MGO_MVC/config/applicationhost.config

 

MGO_MVC/.vs/MGO_MVC/DesignTimeBuild/.dtbcache.v2

������Debug|Any CPU|��BuildCacheContainsPartialData��False��ProjectFingerprint�@9fee9bd25abd41ec12694b8e46636c9797b9d3470e9d5941e5d15f2f25315bcc��CollectAnalyzersDesignTime�nC:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Analyzers.dll��true�rC:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll�yC:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Components.Analyzers.dll�~C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll�wC:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll���C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll�ˆ�C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll���C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.analyzers\5.0.4\analyzers\dotnet\cs\Microsoft.EntityFrameworkCore.Analyzers.dll�$ResolvePackageDependenciesDesignTime�-Microsoft.EntityFrameworkCore.SqlServer/5.0.4��5.0.4�’Microsoft.EntityFrameworkCore.SqlServer�OC:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.sqlserver\5.0.4�)Microsoft.EntityFrameworkCore.Tools/5.0.4�#Microsoft.EntityFrameworkCore.Tools�KC:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.tools\5.0.4�(Microsoft.Extensions.Logging.Debug/5.0.0��5.0.0�”Microsoft.Extensions.Logging.Debug�JC:\Users\mkorzaan\.nuget\packages\microsoft.extensions.logging.debug\5.0.0�6Microsoft.VisualStudio.Web.CodeGeneration.Design/5.0.2��5.0.2�0Microsoft.VisualStudio.Web.CodeGeneration.Design�XC:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.design\5.0.2�%GenerateSupportedTargetFrameworkAlias� netcoreapp1.0� .NET Core 1.0� netcoreapp1.1� .NET Core 1.1� netcoreapp2.0� .NET Core 2.0� netcoreapp2.1� .NET Core 2.1� netcoreapp2.2� .NET Core 2.2� netcoreapp3.0� .NET Core 3.0� netcoreapp3.1� .NET Core 3.1��net5.0��.NET 5.0�&CollectResolvedSDKReferencesDesignTime�#CollectUpToDateCheckInputDesignTime��Views\Home\Index.cshtml� RazorViews��Views\Shared\Error.cshtml��Views\Shared\_Layout.cshtml�-Views\Shared\_ValidationScriptsPartial.cshtml��Views\_ViewImports.cshtml��Views\_ViewStart.cshtml��CollectFrameworkReferences��Microsoft.NETCore.App��All��Microsoft.AspNetCore.App��CollectCentralPackageVersions��CompileDesignTime� /noconfig��/unsafe-� /checked-� /nowarn:1701,1702,1701,1702,2008� /fullpaths� /nostdlib+��/errorreport:prompt��/warn:5�ê�/define:TRACE;DEBUG;NET;NET5_0;NETCOREAPP;NET5_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER��/errorendlocation��/preferreduilang:en-US��/highentropyva+�•�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.design\5.0.2\lib\net5.0\dotnet-aspnet-codegenerator-design.dll�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Antiforgery.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Abstractions.dll”�ˆ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Cookies.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Core.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.OAuth.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authorization.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authorization.Policy.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Authorization.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Forms.dll”�ƒ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Server.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Web.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Connections.Abstractions.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.CookiePolicy.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cors.dll”�‡�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cryptography.Internal.dll”�Œ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.Abstractions.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.dll”�‹�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.Extensions.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.Abstractions.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.HealthChecks.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HostFiltering.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.Abstractions.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.Server.Abstractions.dll”�ƒ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Html.Abstractions.dll”�ƒ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Abstractions.dll”�‰�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Connections.Common.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Connections.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Extensions.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Features.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HttpOverrides.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HttpsPolicy.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Identity.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Localization.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Localization.Routing.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Metadata.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Abstractions.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.ApiExplorer.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Core.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Cors.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.DataAnnotations.dll”�u/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Formatters.Json.dll”�„�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Formatters.Xml.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Localization.dll”�{/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Razor.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.RazorPages.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.TagHelpers.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Razor.dll”�‘�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.aspnetcore.razor.language\5.0.0\lib\netstandard2.0\Microsoft.AspNetCore.Razor.Language.dll��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Razor.Runtime.dll”�Ž�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCaching.Abstractions.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCaching.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCompression.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Rewrite.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Routing.Abstractions.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Routing.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.HttpSys.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.IIS.dll”�‡�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.IISIntegration.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.Core.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.dll”�’�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Session.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Common.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Core.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.dll”�ˆ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Protocols.Json.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.StaticFiles.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.WebSockets.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.WebUtilities.dll”�…�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.bcl.asyncinterfaces\1.1.1\ref\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll�„�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.csharp\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.dll�š�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.csharp.workspaces\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.Workspaces.dll�}/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.common\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.dll�ƒ�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.razor\5.0.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Razor.dll�“�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.workspaces.common\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.Workspaces.dll�j/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.CSharp.dll”�z/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.data.sqlclient\2.0.1\ref\netcoreapp3.1\Microsoft.Data.SqlClient.dll�Ÿ�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.abstractions\5.0.4\lib\netstandard2.1\Microsoft.EntityFrameworkCore.Abstractions.dll�…�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore\5.0.4\lib\netstandard2.1\Microsoft.EntityFrameworkCore.dll�›�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.relational\5.0.4\lib\netstandard2.1\Microsoft.EntityFrameworkCore.Relational.dll�™�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.sqlserver\5.0.4\lib\netstandard2.1\Microsoft.EntityFrameworkCore.SqlServer.dll�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Caching.Abstractions.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Caching.Memory.dll”�Œ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.Abstractions.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.Binder.dll”�‹�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.CommandLine.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.dll”�”�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.EnvironmentVariables.dll”�Ž�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.FileExtensions.dll”�ƒ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.Ini.dll”�„�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.Json.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.KeyPerFile.dll”�‹�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.UserSecrets.dll”�ƒ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Configuration.Xml.dll”�’�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll”�“�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.extensions.dependencyinjection\5.0.1\lib\net5.0\Microsoft.Extensions.DependencyInjection.dll�—�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll”�Š�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Diagnostics.HealthChecks.dll”�Œ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.FileProviders.Abstractions.dll”�‰�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.FileProviders.Composite.dll”�ˆ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.FileProviders.Embedded.dll”�ˆ�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.FileProviders.Physical.dll”�„�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.FileSystemGlobbing.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Hosting.Abstractions.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Hosting.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Http.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Identity.Core.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Identity.Stores.dll”�‹�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Localization.Abstractions.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Localization.dll”�†�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.Abstractions.dll”�‡�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.Configuration.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.Console.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.Debug.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.dll”�‚�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.EventLog.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.EventSource.dll”�…�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Logging.TraceSource.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.ObjectPool.dll”�‘�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll”�‰�/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Options.DataAnnotations.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Options.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.Primitives.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Extensions.WebEncoders.dll”�•�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.identitymodel.jsonwebtokens\5.6.0\lib\netstandard2.0\Microsoft.IdentityModel.JsonWebTokens.dll�‰�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.identitymodel.logging\5.6.0\lib\netstandard2.0\Microsoft.IdentityModel.Logging.dll���/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.identitymodel.protocols\5.6.0\lib\netstandard2.0\Microsoft.IdentityModel.Protocols.dll�©�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.identitymodel.protocols.openidconnect\5.6.0\lib\netstandard2.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll�‡�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.identitymodel.tokens\5.6.0\lib\netstandard2.0\Microsoft.IdentityModel.Tokens.dll�p/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.JSInterop.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Net.Http.Headers.dll”�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.VisualBasic.Core.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.VisualBasic.dll”�©�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.contracts\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.Contracts.dll�Ÿ�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.core\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.Core.dll�•�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.dll�½�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.entityframeworkcore\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore.dll�«�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.templating\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.Templating.dll�¡�/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.utils\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGeneration.Utils.dll���/reference:C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegenerators.mvc\5.0.2\lib\net5.0\Microsoft.VisualStudio.Web.CodeGenerators.Mvc.dll�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.Primitives.dll”�u/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.Registry.dll”�b/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\mscorlib.dll”�e/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\netstandard.dll”�j/reference:C:\Users\mkorzaan\.nuget\packages\newtonsoft.json\11.0.2\lib\netstandard2.0\Newtonsoft.Json.dll�k/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.AppContext.dll”�h/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Buffers.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Concurrent.dll”�l/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Immutable.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.NonGeneric.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Specialized.dll”�{/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.Annotations.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.DataAnnotations.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.EventBasedAsync.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.Primitives.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.TypeConverter.dll”���/reference:C:\Users\mkorzaan\.nuget\packages\system.composition.attributedmodel\1.0.31\lib\netstandard1.0\System.Composition.AttributedModel.dll�†�/reference:C:\Users\mkorzaan\.nuget\packages\system.composition.convention\1.0.31\lib\netstandard1.0\System.Composition.Convention.dll�€�/reference:C:\Users\mkorzaan\.nuget\packages\system.composition.hosting\1.0.31\lib\netstandard1.0\System.Composition.Hosting.dll�€�/reference:C:\Users\mkorzaan\.nuget\packages\system.composition.runtime\1.0.31\lib\netstandard1.0\System.Composition.Runtime.dll�†�/reference:C:\Users\mkorzaan\.nuget\packages\system.composition.typedparts\1.0.31\lib\netstandard1.0\System.Composition.TypedParts.dll�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Configuration.dll”�h/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Console.dll”�e/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Core.dll”�l/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.Common.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.DataSetExtensions.dll”�e/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Contracts.dll”�r/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Debug.dll”�‰�/reference:C:\Users\mkorzaan\.nuget\packages\system.diagnostics.diagnosticsource\5.0.1\lib\net5.0\System.Diagnostics.DiagnosticSource.dll�x/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.EventLog.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.FileVersionInfo.dll”�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Process.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.StackTrace.dll”�„�/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.TextWriterTraceListener.dll”�r/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Tools.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.TraceSource.dll”�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Tracing.dll”�`/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.dll”�h/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Drawing.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Drawing.Primitives.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Dynamic.Runtime.dll”�m/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Formats.Asn1.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.Calendars.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.Extensions.dll”�‰�/reference:C:\Users\mkorzaan\.nuget\packages\system.identitymodel.tokens.jwt\5.6.0\lib\netstandard2.0\System.IdentityModel.Tokens.Jwt.dll�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.Brotli.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.FileSystem.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.ZipFile.dll”�c/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.DriveInfo.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.Primitives.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.Watcher.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.IsolatedStorage.dll”�u/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.MemoryMappedFiles.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.IO.Pipelines.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Pipes.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.UnmanagedMemoryStream.dll”�e/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Expressions.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Parallel.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Queryable.dll”�g/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Memory.dll”�d/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Http.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Http.Json.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.HttpListener.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Mail.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.NameResolution.dll”�w/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.NetworkInformation.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Ping.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Primitives.dll”�m/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Requests.dll”�m/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Security.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.ServicePoint.dll”�l/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Sockets.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebClient.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebHeaderCollection.dll”�m/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebProxy.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebSockets.Client.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebSockets.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Numerics.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Numerics.Vectors.dll”�l/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ObjectModel.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.DispatchProxy.dll”�k/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.ILGeneration.dll”�|/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.Lightweight.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Extensions.dll”�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Metadata.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Primitives.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.TypeExtensions.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.Reader.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.ResourceManager.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.Writer.dll”�€�/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.CompilerServices.Unsafe.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.CompilerServices.VisualC.dll”�h/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Extensions.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Handles.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.InteropServices.dll”�‹�/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.InteropServices.RuntimeInformation.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Intrinsics.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Loader.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Numerics.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Formatters.dll”�{/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Json.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Primitives.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Xml.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Security.AccessControl.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Claims.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Algorithms.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Cng.dll”�z/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Csp.dll”��/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Encoding.dll”���/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Primitives.dll”�‡�/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.X509Certificates.dll”�}/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Xml.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Security.Permissions.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Principal.dll”�~/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Security.Principal.Windows.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.SecureString.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ServiceModel.Web.dll”�o/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ServiceProcess.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.CodePages.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.Extensions.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encodings.Web.dll”�j/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Json.dll”�x/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.RegularExpressions.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Channels.dll”�j/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.dll”�u/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Overlapped.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Dataflow.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.dll”�{/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Extensions.dll”�y/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Parallel.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Thread.dll”�u/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.ThreadPool.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Timer.dll”�m/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Transactions.dll”�s/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Transactions.Local.dll”�k/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ValueTuple.dll”�d/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Web.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Web.HttpUtility.dll”�h/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Windows.dll”�v/reference:”C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\System.Windows.Extensions.dll”�d/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.dll”�i/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.Linq.dll”�q/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.ReaderWriter.dll”�r/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.Serialization.dll”�n/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XDocument.dll”�p/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XmlDocument.dll”�r/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XmlSerializer.dll”�j/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XPath.dll”�t/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XPath.XDocument.dll”�e/reference:”C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\WindowsBase.dll”��/debug+��/debug:portable��/filealign:512� /optimize-�!/out:obj\Debug\net5.0\MGO_MVC.dll�(/refout:obj\Debug\net5.0\ref\MGO_MVC.dll��/target:exe� /warnaserror-��/utf8output��/deterministic+��/langversion:9.0�R/analyzerconfig:obj\Debug\net5.0\MGO_MVC.GeneratedMSBuildEditorConfig.editorconfig�ˆ�/analyzerconfig:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\analyzers\build\config\AnalysisLevel_5_Default.editorconfig”�z/analyzer:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Analyzers.dll”�~/analyzer:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll”�…�/analyzer:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Components.Analyzers.dll”�Š�/analyzer:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll”�ƒ�/analyzer:”C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\targets\..\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll”�‹�/analyzer:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll�’�/analyzer:C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll�™�/analyzer:C:\Users\mkorzaan\.nuget\packages\microsoft.entityframeworkcore.analyzers\5.0.4\analyzers\dotnet\cs\Microsoft.EntityFrameworkCore.Analyzers.dll��Controllers\HomeController.cs�$Migrations\20210328023454_Initial.cs�-Migrations\20210328023454_Initial.Designer.cs�%Migrations\MGOContextModelSnapshot.cs��Models\Category.cs��Models\Customer.cs��Models\Employee.cs��Models\ErrorViewModel.cs��Models\Item.cs��Models\MGOContext.cs��Models\Purchase.cs��Models\PurchaseItem.cs��Models\Sale.cs��Models\SaleItem.cs� Program.cs� Startup.cs�?obj\Debug\net5.0\.NETCoreApp,Version=v5.0.AssemblyAttributes.cs�(obj\Debug\net5.0\MGO_MVC.AssemblyInfo.cs�-obj\Debug\net5.0\MGO_MVC.RazorAssemblyInfo.cs��/warnaserror+:NU1605�#ResolveProjectReferencesDesignTime2�$ResolveFrameworkReferencesDesignTime�=C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0�@C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0�#CollectUpToDateCheckBuiltDesignTime�”obj\Debug\net5.0\MGO_MVC.Views.dll�JC:\Users\mkorzaan\Desktop\MVC\MGO_MVC\MGO_MVC\bin\Debug\net5.0\MGO_MVC.dll��obj\Debug\net5.0\MGO_MVC.dll��obj\Debug\net5.0\MGO_MVC.pdb��bin\Debug\net5.0\MGO_MVC.pdb��ResolveComReferencesDesignTime�#ResolveAssemblyReferencesDesignTime�Š�C:\Users\mkorzaan\.nuget\packages\microsoft.visualstudio.web.codegeneration.design\5.0.2\lib\net5.0\dotnet-aspnet-codegenerator-design.dll��false�edotnet-aspnet-codegenerator-design, Version=5.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60��{HintPathFromItem}�pC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Antiforgery.dll�cMicrosoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60� {RawFileName}�€�C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Abstractions.dll�sMicrosoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�{C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Cookies.dll�nMicrosoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�xC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.Core.dll�kMicrosoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.dll�fMicrosoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�yC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authentication.OAuth.dll�lMicrosoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�rC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authorization.dll�eMicrosoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�yC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Authorization.Policy.dll�lMicrosoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�}C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Authorization.dll�pMicrosoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�oC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.dll�bMicrosoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�uC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Forms.dll�hMicrosoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�vC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Server.dll�iMicrosoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Components.Web.dll�fMicrosoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�}C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Connections.Abstractions.dll�pMicrosoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�qC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.CookiePolicy.dll�dMicrosoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�iC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cors.dll�\Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�zC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cryptography.Internal.dll�mMicrosoft.AspNetCore.Cryptography.Internal, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60��C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll�rMicrosoft.AspNetCore.Cryptography.KeyDerivation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�€�C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.Abstractions.dll�sMicrosoft.AspNetCore.DataProtection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.dll�fMicrosoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�~C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.DataProtection.Extensions.dll�qMicrosoft.AspNetCore.DataProtection.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�}C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.Abstractions.dll�pMicrosoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�pC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.dll�cMicrosoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�}C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Diagnostics.HealthChecks.dll�pMicrosoft.AspNetCore.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�dC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.dll�WMicrosoft.AspNetCore, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�rC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HostFiltering.dll�eMicrosoft.AspNetCore.HostFiltering, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�yC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.Abstractions.dll�lMicrosoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�lC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.dll�_Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�€�C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Hosting.Server.Abstractions.dll�sMicrosoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�vC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Html.Abstractions.dll�iMicrosoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�vC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Abstractions.dll�iMicrosoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�|C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Connections.Common.dll�oMicrosoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�uC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Connections.dll�hMicrosoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�iC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.dll�\Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�tC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Extensions.dll�gMicrosoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�rC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Http.Features.dll�eMicrosoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�rC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HttpOverrides.dll�eMicrosoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�pC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.HttpsPolicy.dll�cMicrosoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�mC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Identity.dll�`Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�qC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Localization.dll�dMicrosoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�yC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Localization.Routing.dll�lMicrosoft.AspNetCore.Localization.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�mC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Metadata.dll�`Microsoft.AspNetCore.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�uC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Abstractions.dll�hMicrosoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�tC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.ApiExplorer.dll�gMicrosoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�mC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Core.dll�`Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�mC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Cors.dll�`Microsoft.AspNetCore.Mvc.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�xC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.DataAnnotations.dll�kMicrosoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�hC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.dll�[Microsoft.AspNetCore.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�xC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Formatters.Json.dll�kMicrosoft.AspNetCore.Mvc.Formatters.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�wC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Formatters.Xml.dll�jMicrosoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�uC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Localization.dll�hMicrosoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�nC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.Razor.dll�aMicrosoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.RazorPages.dll�fMicrosoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.TagHelpers.dll�fMicrosoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�uC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll�hMicrosoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�jC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Razor.dll�]Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�†�C:\Users\mkorzaan\.nuget\packages\microsoft.aspnetcore.razor.language\5.0.0\lib\netstandard2.0\Microsoft.AspNetCore.Razor.Language.dll�fMicrosoft.AspNetCore.Razor.Language, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�rC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Razor.Runtime.dll�eMicrosoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60���C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCaching.Abstractions.dll�tMicrosoft.AspNetCore.ResponseCaching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�tC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCaching.dll�gMicrosoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�xC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.ResponseCompression.dll�kMicrosoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�lC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Rewrite.dll�_Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�yC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Routing.Abstractions.dll�lMicrosoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�lC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Routing.dll�_Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.HttpSys.dll�fMicrosoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�oC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.IIS.dll�bMicrosoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�zC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.IISIntegration.dll�mMicrosoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�xC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.Core.dll�kMicrosoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.dll�fMicrosoft.AspNetCore.Server.Kestrel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�…�C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll�xMicrosoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�lC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.Session.dll�_Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�sC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Common.dll�fMicrosoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�qC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Core.dll�dMicrosoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�lC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.dll�_Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�{C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.SignalR.Protocols.Json.dll�nMicrosoft.AspNetCore.SignalR.Protocols.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�pC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.StaticFiles.dll�cMicrosoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�oC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.WebSockets.dll�bMicrosoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�qC:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\ref\net5.0\Microsoft.AspNetCore.WebUtilities.dll�dMicrosoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�zC:\Users\mkorzaan\.nuget\packages\microsoft.bcl.asyncinterfaces\1.1.1\ref\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll�`Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51�yC:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.csharp\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.dll�`Microsoft.CodeAnalysis.CSharp, Version=3.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35���C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.csharp.workspaces\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.CSharp.Workspaces.dll�kMicrosoft.CodeAnalysis.CSharp.Workspaces, Version=3.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35�rC:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.common\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.dll�YMicrosoft.CodeAnalysis, Version=3.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35�xC:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.razor\5.0.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Razor.dll�_Microsoft.CodeAnalysis.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60�ˆ�C:\Users\mkorzaan\.nuget\packages\microsoft.codeanalysis.workspaces.common\3.8.0\lib\netcoreapp3.1\Microsoft.CodeAnalysis.Workspaces.dll�dMicrosoft.CodeAnalysis.Workspaces, Version=3.8.0.0,

Discuss the challenges of maintaining information security at a remote recovery location.

Discuss the challenges of maintaining information security at a remote recovery location.

DQ requirement: Note that the requirement is to post your initial response no later than Sunday and you must post one additional post during the week. I recommend your initial posting to be between 200-to-300 words. The replies to fellow students and to the professor should range between 100-to-150 words. All initial posts must contain a properly formatted in-text citation and scholarly reference.

Reply 1:

Information security at a remote recovery location

Recovery is the act or preparation to overcome the man made or natural disaster.Information Security plays a vital role to overcome the disaster. Even though Information security is important there are lots of challenges in maintaining information security at remote recovery location. In case if information security is not maintained properly then there may chance of vulnerabilities like harmful instruction will delivered. Some other challenges include observing insights, implementing procedures, controlling remote site and making the site aware about the risk. It is difficult to monitor the entire resources towards the center of information security. And also gaining control and implementing process took some time at the remote recovery location. Some of the Major Challenges of maintaining information security are
1) Although remote locations often operate as independent small businesses, there is a constant requirement for sensitive information such as corporate resources, customerrecords, and payment data to be shared between the corporate headquarters and each site. Dangers of sending sensitive communication over the open web present significant security risks. Distributed enterprise organizations need a way to secure all communications between their corporate HQ and remote employee and business locations.

The Possible solution to this challenge is :

Establishing an encrypted network connection, known as a Virtual Private Network (VPN), between the HQ and the remote location, or between two remote locations willensure that all communications are secure.

2) Credit cards have been a convenience to businesses and consumers alike for over 50 years. These small pieces of plastic make transacting easy, but securing those transactions in our connected world is a different story entirely. Purpose-built malware is popping up every day, designed specifically to compromise point of sale (POS) systems.For the Distributed Enterprise, cash-only is simply not an option. Organizations must accept and transmit customer payment information, which creates a unique set of security challenges for both the remote site and the corporate HQ.

The possible solution to this challenge is :

Remote locations that process credit card transactions must utilize best-in-class network security technologies to not only protect and monitor their payment systems, but toalso separate the network used for payment transactions from the rest of their network and all other information systems. Also, as the target of many dedicated attacks, organizations must employ solutions for protecting their POS systems from advanced and zero day malware threats. Sophisticated UTM appliances can offer Distributed Enterprises all of the advanced network protection they need from one easy-to-deploy offering.

3) In recent years, regulatory bodies have been tasked with establishing data security standards and requirements,which are designed to protect both businesses and consumers from theft, fraud, and other damages. Although these compliance standards are valuable, they can generate serious challenges for IT professionals. Security systems need regular updates to correspond with the ever-evolving compliance standards. In addition, data storage and transmission systems need to be constantly monitored for unauthorized usage and access. Organizations that fail to comply with PCI DSS, HIPAA, and other global standards, are subject to enforcement actions and fines.

The possible solution to this challenge is :

Businesses within the retail, health care, and hospitality markets are especially sensitive to regulatory compliance.Related aspects of PCI DSS, HIPAA, and other major regulatory compliance standards can be achieved leveraging UTM security appliances as they enable segmentation of network traffic and secure transfer of sensitive information between sites. Modern network visibility tools offer the ability to set alerts and automated reports on security events that are relevant to the compliance standard,including data-leakage, malware, and unauthorized user access. Maintaining clear visibility for auditing purposes is also a requirement for maintaining compliance.

4) Wireless Internet access is becoming an increasingly common service offered to customers, guests, and patients.Distributed Enterprises that choose to offer guest Wi-Fi must be aware of the associated liability. Users can often jump from the guest network to the corporate network,giving them access to sensitive employee and customer data. Businesses also assume liability for any copyright infringement that results from guests illegally downloadingcontent such as media. Organizations must balance the need for tight security, while at the same time providing a fast and seamless Wi-Fi experience for their customers, especially as the number of connected devices continues to grow.

The possible solution to this problem is :

Organizations that choose to offer Wi-Fi hotspots must implement technologies and processes that adhere to data security standards, including PCI DSS and HIPAA. Wi-Fi performance is a large influencer of customer satisfaction, so all security technologies must offer line speed performance during times of peak usage. Both firewall and wireless access point technologies must allow for network segmentation, which separates guests from sensitive corporate data. Full UTM, Data Loss Prevention and Advanced Malware protection are essential in protecting the wireless network from targeted and evolving threats

Reply 2:

Maintaining security at a recovery location

In the event of an incident, it is important to consider issues of cross-site contamination.  Failing over to a recovery location is not going to work in the event that the recovery site is also infected with Ransomware.  This is something to consider if you have a hybrid or warm site.  Pulling full snapshots of your environment will bring everything including the intrusions with it (Livens, 2018).

If your recovery location is in the cloud, you need to consider that the cloud-based threats now apply to your recovery site.  Contractual issues, chain of custody issues, lack of administrative controls and others like next-door neighbor issues.  Other could tenants may be under attack which may impact your operational capacity (Atchison, 2018)

Transportation.  Moving large volumes of data to a recovery location loud or other in a controlled and secure manner can be hard to maintain as the size of your data grows.

Physical security. Changes in full physical access to the hardware at your recovery site could cause issues.  Even in a site owned by the organization recovery sites should maintain restricted physical and network administration until activated as the primary.

Hardware life cycle management.  Even your recovery environment needs to be updated, patched, performance-tested, and eventually decommissioned.

General Maintenance.  Changes to your main production environment, size, capacity, configuration, patches, and even access control lists (ACL)s need to be considered and updates to the recovery environment need to be made.  Your organization may make changes to your internet capacity but forget about updating the internet bandwidth at the recovery site.

 

IT Budgeting (100-Points) Individual Assignment

ISEM 580 – Project 03 IT Budgeting (100-Points) Individual Assignment

1. Background: IT managers work with senior level IT leadership to submit an annual budget based on the business and IT strategies, tactical plans, operational plans and approved initiatives IT project portfolio. Hence, in this scenario the CIO has provided you with the IT budgeting workbook and asked you frame up next year’s IT budget for final review and approval.

 

2. Requirements & Deliverable: This is not a group project assignment. It is to be completed and submitted by each student individually. Carefully, read the Project #3 Guideline Document. Use the IT Budget Workbook provided by the professor. Complete the Project #3 assignment as instructed and submit before or on the scheduled due date. Your deliverable will be the completed IT Budget Workbook; must be a M.S. Excel File (working spreadsheet) that is uploaded into Moodle using the designated link. Note : Any manual entries or overwriting of pre-calculated fields on the work sheets or IT Department Budget dashboard to force the expected results outlined in Section 4 & 5 of this document; will result in a failing grade for this assignment.

 

3. The IT Budgeting Workbook contains the following worksheets (Tabs):

a. IT Department Budget

b. IT Department Budget Worksheet*

c. G&A Worksheet

d. Software-Equipment-Service Worksheet*

e. Personnel Worksheet*

f. References

Note : * Denotes that these are the only worksheets that will be modified to create the budget. All worksheet will need to be referenced to make the appropriate entries in the IT Department Budget Worksheet and successfully create the IT Department budget.

4. IT Budget Workbook Tabs and Instructions:

a. IT Department Budget Tab: This is the IT Budget Dashboard which will self-populate when the other worksheets have been completed. You will use the dashboard to provide your overview of the budget for the CIO.

 

b. IT Department Budget Worksheet Tab: This is the primary worksheet used to formulate the IT budget. You will complete all of the IT budget sections (e.g., Personnel, Computing Equipment, Software, Enterprise Data Center, and General & Administrative) by entering the appropriate dollar values for each month. You will need complete and/or use the other worksheet tabs in the IT Budget workbook (e.g., G& A, Personnel, and Software-Equipment-Services) to properly complete the IT Department Budget Worksheet. Please note the following:

i. Some budget line items in Column “A” have been prepopulated for you in Personnel Expenses and G&A Expenses sections of the IT budget worksheet. Specifically Rows (specifically 4-11 and 76-84)

ii. You will enter budget line items in Column “A” Rows (specifically Rows 15-21; 25-33; 37-43; 47-54; 58-62; and 66-71) under each budget category where there are blanks referencing information outlined in the other corresponding worksheet tabs. Note : you may have one blank row in some budget sections; this is okay and part of the challenge for you to determine.

iii. To determine which equipment, software, and EDC facilities budget line items fall under capital or operational expense sections; you will need to determine the correct “Expenditure Type” by first completing the Software-Equipment-Services worksheet (Specifically: Column D in each of the tables, selecting either CAPEX or OPEX and then make the corresponding budget line item entry and amount into the IT Department Budget Worksheet. Also you do not need to add or change any of the remaining fields in these tables on this worksheet, they have already been prepopulated with the essential information for you to fill out the IT Department Budget Worksheet.

iv. You will enter the correct dollar amounts (fields already formatted) for each budget line items in the months (Jan – Dec / Columns B-M) when the expense will occur during the budget year. Specifically cells located in Columns B-M items in Rows 4-11; 15-21; 25-33; 37-43; 47-54; 58-62; 66-71; and 76-84 under each budget category where there are $0 values referencing information outlined in the other corresponding worksheet tabs. Note : you may have one or more $0 values contained in a row in some budget sections. Hint : not all expenses reoccur on a monthly basis; use the information already outlined in the corresponding worksheet to make the correct determination (e.g., amounts, billing frequency, and billing months).

v. All the cells “Total” fields in Column N for each row are calculated fields and already formatted. Do nothing in this column.

vi. The IT Budget Worksheet Totals below the green highlighted row; are calculated fields and already formatted. Do nothing in the cells contained in Columns A-N: Rows 86-92 in this worksheet.

vii. The all of the G&A expense budget line items have already been entered into the IT Department Budget Work Sheet (Column A: Rows: 76 – 85). The cells contained in Columns B – N: Row 85; (Total G&A Expenses) under G&A section are calculated fields and already formatted. Do nothing in this row.

viii. Analyze the Personnel Worksheet and associated tables for all of the Personnel expense budget line items and corresponding monthly expenditures; reference Section e below for instructions.

 

 

c. G&A Worksheet: This worksheet does not need to be modified but analyzed and referenced to complete the corresponding G&A budget line items in the IT Department Budget Worksheet (e.g., Item names, estimated costs, billing frequency, occurrence, and billing month). This worksheet contains some typical expenses found in the G&A section of an IT budget. Please note the Equipment Depreciation was outlined on the G&A Worksheet but is not included in the IT Department Budget Worksheet (this particular item often requires a good understanding and special treatment with coordination with Finance & Account to determine the asset fair market value and allowable depreciation rates for these assets. In addition, this item is often excluded from the IT budget but included in the overall corporate budget. Lastly, top executives and Board of Directors salaries are often included in G&A and spread across all department budgets. This G&A line item was not included for this exercise.

 

d. Software-Equipment-Service Worksheet: This worksheet does need to be analyzed, modified, and referenced to complete the corresponding G&A budget line items in the IT Department Budget Worksheet. You will need to determine the correct “Expenditure Type” by first completing the Software-Equipment-Services worksheet (Specifically: Column D in each of the tables, selecting either CAPEX or OPEX and then make the corresponding budget line item entry and amount into the IT Department Budget Worksheet. Also you do not need to add or change any of the remaining fields in these tables on this worksheet, they have already been prepopulated with the essential information for you to fill out the IT Department Budget Worksheet (e.g., Item names, expenditure type, total price, billing frequency, occurrence, and billing month).

 

e. Personnel Worksheet: This worksheet does need to be analyzed and referenced to complete the corresponding Personnel budget line items in the IT Department Budget Worksheet (e.g., Item names, estimated costs, salaries, headcounts per month, billing frequency, occurrence, and billing month). This worksheet contains some typical expenses found in the personnel section of an IT budget. As noted earlier, all of the Personnel expense budget line items have already been entered into the IT Department Budget Work Sheet (Column A: Rows: 4 – 11). You will need to populate the remaining cells for this section of the budget using the prepopulated tables on the Personnel Worksheet. The Full-Time Employee salaries will need to be populated in the IT Department Budget Worksheet (Columns: B-M; Row 4) reference the Monthly Employee Salary Totals (bottom row) from IT Department Personnel Monthly Worksheet-Table for this line item. You will also need to calculate the monthly budget amounts for the consulting staff using the Contracted Support Staff Table based on the total number per month and predefined salaries; enter the totals in the bottom row of this table- Monthly Contractor Salaries (Columns F-Q). Then use these totals to make the corresponding entries in the IT Department Budget Worksheet (Consulting Staff) for each month. Use the Other Personnel Expenditure Table to complete the remaining budget line items and associated expenditures per month to their corresponding line item on the IT Department budget Worksheet.

f. References: Do nothing with this worksheet. It was used to build reference lists for drop downs items in the table on the worksheets.

 

5. This project assignment is meant to give you some practical hands-on experience and a better understanding of the key components, data, correlations to IT investments and operations required in formulating the IT Department budget. Reference Module 6 lecture notes and course text, and perhaps independent research to complete this project assignment. As a guide post your IT Department Dashboard final total results for this Year’s Budget column should be comparable to the following:

 

Budget SectionTotals
Personnel Expenses$215,538,939
Computing Equipment-Capitol$2,036,800
Computing Equipment-Expenses$1,611,232
Software Cost-Capitol$2,019,510
Software Cost-Expenses$1,474,120
EDC Facility Costs-Capital$977,985
EDC Facility Costs-Expenses$173,856
General & Administrative$480,236

 

 

Use this table to compare with the IT Department Budget dashboard tab in the workbook.

If you are off buy a small amount don’t get concerned. However, if you are way off the mark, then you most likely have misclassified the expenditure type, have errors in calculations, or entered in a wrong amount in a cell. You must pay attention to detail when transferring information from the corresponding worksheets. Recheck your determinations and values. Again do not make entries to force the expected outcomes outlined in this table. You will be much better off submitted the assignment giving it your best try with minor errors than manipulating the spreadsheet to align with the expected result outlined in the table above. Lastly, you will have a working example to reference if and when you are asked to submit an IT Budget. Good Luck!

4