DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/Microsoft SQL Server/100/SDK/Assemblies/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Program Files (x86)/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.SqlEnum.dll
MZ@	!L!This program cannot be run in DOS mode.

$PEL8M!  > @. @=W@P``<=  H.text$   `.rsrc@0@@.reloc`@@B>H
	sP 582M`%\vEAo/GuwE+yXOzk_ii!$s #1Mn5̿mzlzzBS!lʔQ‡u!N[+X2UK6.s*f(
s
}}*0U(
-s
zs
}}o
+"
{o
%{X}Xi2*(
-s
zo
}o
}*0g(
~
(
,s
z( 

s
}}o

+"	{o
%{X}	X
	i2*{,~.{o!
}*6o"
o#
*~*{*(*J(c(c($
*N(c(c(%
*N(c(c(&
*R(c(c('
*Z(c(c((
*b(c(c()
*b(c(c(*
*j(c(c(+
*J(c(c(,
*Z(c(c(-
*0
,o"
o"
o.

*0
,o"
o"
o.

*0,o"
s
+s
*2(0
s*Z-s
zo"
o1
*(<,s
zo"
o"
o1
*2{s*(<,s
zo"
o"
o2
*(<,s
zo"
o"
o3
*0
,
o"
o4

*"(<*"(<*No"
(co5
*N(c(c(6
*6(7
s*:(8
s*2o"
o9
*6o"
o:
*6o"
o;
*:o"
o<
*:o"
o=
*>o"
o>
*>o"
o?
*6o"
o@
*:o"
oA
*>o"
oB
*(<,s
zo"
o"
oC
s*r-s
zo"
oC
s*2i(2*0-s
z2iX/sD
zsE

/c-~F
+o"
oG

	,	o"
oH
&	X
+#	,,oH
&	o"
oH
&	X
	Y2o"
s*6o"
oI
*6o"
oJ
*:o"
oK
*:o"
oL
*>o"
oM
*>o"
oN
*6o"
oO
*:o"
oP
*>o"
oQ
*03
,,
+--o"
o"
(,

*03
,,
+--o"
o"
(,

*03
,,
+--o"
o"
(,

*.(<*.(=*.(>*0
(*Jo"
oR
s*No"
oS
s*Jo"
oT
s*No"
oU
s*Jo"
oV
s*No"
oW
s*No"
oX
s*vo"
o"
o"
oY
s*Jo"
oZ
(S*No"
o[
(S*No"
o\
(S*Ro"
o]
(S*No"
o^
(S*Ro"
o_
(S*(<,s
zo"
o"
o`
*(<,s
zo"
o"
oa
*04	
,-i
+,
s+Xi2*Jo"
ob
s*No"
oc
s*2{(d
*Fo"
oe
s*Jo"
of
s*Fo"
og
s*2{o
*04
~F

(	,$sh
(i
{(d
(j

(k
*Fo"
ol
s*Jo"
om
s*Fo"
on
s*Fo"
oo
s*Jo"
op
s*Jo"
oq
s*Jo"
or
s*0
(?,o"

*0
,s
*0
(?,{o

*0
,s
*0
(s

(?,
o"
(t
*0 
(u
-o"
s
*(v
s}s}s}*{*"}*{*"}*{	*"}	*~{
-(w
sx
}
{
*{*{*"}*{*"}*{*"}*{
*"}
*"(y
*09(z
-s
+'(z
u,(z
t
+(z
s
*2({
o|
*:(}
t*0 
*0Q(,!o((vo~
o&*o~
(ooo~
o&*0E(vo+o
t
o,oo
-u,o
*'30d(z
,
(z
o
-*(z
o

+/	
(z
o
.+(}(X	i2(*0/(}
(,o(+o&o*&o*0=,(}
+	(}
(,o(+o&o*0(}
oo*0f{-*(}
o,Koo
+"o
to3
oo&o
-u
	,	o
*&.T0M{-*(r{o&(t{o&(v{o&(*0gs
}(l,(lo((to+&o
t
o,oo(o
-u,o
(ro+&o
to,oo(o
-u,o
(({,p({o,c({oo
+/o
to-o(}
	o(o
-u		,	o
{o
1{o*(13d3<70(z
9(z
o
9(z
o
i>(z
o

,vo
,9o
-o
i]o
o
o
o
o
o
o
,-o
-o
i#o
o
o
o
(z
o
i1;(z
o
iYfo
(z
o
o
o
i(
*o
*0gs
o
(z
o
3	o
+o
((((n,(noo(}*0o,ko
+Go
t
o32o(}
to(oooo
-u
	,	o
*
S]6((*n({,({o(*n{,{o(*0(,$t
(joo(jo*01s

(
o
oG
,(-(jo*V(o(*>((*0Us}(((((x,(jo,to,(*(*(
*{-(w
sx
}{o
*0\(q,S(qo
+*o
m
(
t](
t]oo
-u,o
*6J0-(
(
(jst((z
,(z
o
.(z
o
3*(z
o
(z
o
-(joo
>
(joo
+Go
m(
u-+(
u,(
t*o
o
	/
+	o
-u,o
	,&&(s
*T0o
(
oo
ro
up, o
3o
3
o
 .o
orpoo
&rpo
&(
oo
	*r.0L3
(*.3/(
3*s
(
o
o
o
*s
z(ro(to(vo*"o*
*2(
*0J-*o
+!o
t
o-
{o
&o
-u,o
*-86{*0(l,(lo((to+o
t
o(o
-u,o
(ro+o
to(o
-u,o
(
	+	t
	o(	X		i2*''Np'0(vo
+\	o
t
o,Hoo
+o
(}(o
-u,o
	o
-	u,o
*/&Uht:}(*R}((*0 s

o
o
({
o
o
(noo
]o
(noo
o
s
(
(
toooo*0S!(n-*(noo
+o

(r{o&o
-u,o
*'A01%
,*rp(
-rp(
-	+(*(|**(*"(
*"(*"(*0Q"(z
,(z
o
,(j-*(z
o
+
o
o
(Xi2*0|#o(po
t",=o
+o

	(o
-u,o
*,(
+
(jo*'F0H$(
o
tv
-*o
3!(
rpo
(8
*o
*&(
*Bo(*0	(*08%s!
o",o+oo*Jo(*0&o%
s
9oE(y(t(oG
	,	s(m	ooH,(r(ooI,s(oooJ,(oK,(t(ooL,(r(ooM,(r(ooN		9(v	o(	o(vo+Qo
t

oo
+o
o
o
-u,o
o
-u,o
oO,)(pooo
o-ooP

,
o
o(
oo&o(o(o)9,o0o
-	o:,r(t(s,o~
o
,o
o~
o
, %o
_o
%o
_o
(
o+o+,(:=:7*P p2^0	'o-
,:o
+o
o
&o
-u,o
o
-
o.,;o
+o

	o
&o
-u,o
o
-o+oo,o(o*/b(i*(rp}}}}*{*(z
o
.(z
o
3}(*0((z
o
3*(z
o
.(*({o-}(*t
(oo(o
&((
(}o
oY{-)rpZ(
(
rp(
o+rpooo1ss

+Y(tot	oo
&rpZY

(
(
rpo(
oX(to2(too(too,orpo(
oOo	,=	+)(t	ot

		o
o	X		(to2}*PTO06{,&(,((}
t
o*(*0)((

,Ns
(
o
o
rprp(
o
&o
(
o
o
o
*s

	o
	o
	({
o
	](o
oo
1Z	fo
+B	o
s
	o
]oYYo
o
X2s
(
	(
(
*0*s

rprp(
o
o
o
rpo
,o
}o
r/po

,o

o
r7po
,o
}o
rGpo
,}	(*0+((
,*(}
o-*oo

+,	o
to3(o(
, 	o
-	u,o
**/8g0,({o
,({o
i,({o
i1:({o,%({oo
,({oo
1(
*({o
,+({o

+	
(-q	X
	i2+^({o,Q({oo
+o
to(-'o
-u,o
(
**n{-(*{(*>}(*0T-(
(z
-=s(k(r~F
(jo&(
(
(js*(*(*(*(*0(
sE
}sE
}sE
}sE
}sE
}sE
}sE
}sE
}s
}(w
sx
}}(}}} *{*"}*{*{*{*"}*6{(*J,
o
**{*"}*o
1	oH
&oH
&oH
&oH
&*r{~F
~F
rQp(*r{~F
r]pr]p(*r{rapreprip(*r{~F
r]pr]p(*r{~F
~F
rop(*(,} {~F
~F
rop(*r{~F
~F
r]p(*r{rapreprup(*r{~F
~F
r}p(*-rp(
+
rp(
(*0|.(o
+Jo
t
o~
(
,0(
rpo]((8
(#o
-u
	,	o
(*Vb0;,7,-(
rp
]((8
(*(*:{o
*0o/{(-{o"
o{}{(-({
{}(-o"
({o
{Y%{oX}1C{{{o
o
{{{{o
o
+{{o
{o
+&o
m{(
(
o
o
-u,o
sE

{(--	{o
&{ ,	r}poH
&	r]poH
&{(-
	{o
&	}{ } {(-3{(,{{o
&+{o"
({(-+{{}(-
o"
({(-{o"
({{o
&{(-{o"
(*3 00{,{*sE

{(,*rpoH
&{,rpoH
&{o
&{(-rpoH
&{o
&{(-rpoH
&{o
&{(-rpoH
&{o
&*00sE

{(-erpoH
&{o
&rpoH
&rp(oH
&r]poH
&rp~F
(oH
&r-poH
&{(-{o
&r]poH
&(o
&{(-r]poH
&{o
&o"
*2{o"
*Z}}}*0`1s
{{o
&{{o
&{{o
&{ } {o
{Y1B{{{{o
o
{{{o
o
+{{o
%{(X}{o

+%	o
m{(
(
o
	o
-	u,o
{{o
&{{o
&{{o
&{{o
&*1~{o
&-%{X}*N(((*0W2{-N}{o
+o
t
oo(o
-u,o
**E2{o"
*6{o
*03sE

rGpoH
&oH
&rapoH
&(,C(o

+	o
t(	o
-	u,o
repoH
&o"
*<#_04F,R+r}poH
&o~

,o
o-,(
rkpo(8
oH
&*(
rpoo(8
oH
&*075s
rpoorp(
ooo*2sE
}*V(
}"(*(
}"(}&(*{!,${&(
-{!{&o
}!*0S{!o
}${!o
{!o
-({!o
&{!{$o
}"**
7{!{$o
{",{!o
*06u*}!{!,*u
,
o
}!*u,
s
}!*u,
s
}!*u
	,	o
s
}!*(8s
zs
}#s
}%{!{%o
*:{#o
&*007{%,{!{%o
}%{#
}#*0C-*o
tpo
2&{!o
-{!o
o
&
***&8p0/8{!o
&
(,{!o
&+*.0;9
{!o

(,{!o

+o
o
*.0
:(*02;
{!o

(,{!o

+*.2{!o
*2{!o
*0,<s
ooooo*
0=s
ooo*
	0>s

o
&(*0?
(
o**(*0@s
os
+	o
o	X
	o
Y2	o
o8o
tpo
/ooG
1oo&
,	-o*(p~.:K8.t
0=s
o*0=s
o*0?A(
+o
(X
o
Y2o
((*060)Bu&
,*u,o
*s(*0>Cuy,'(
(
,'*u
,o
*s(*0Dt
orpo(
&r?p(
rIp(
-,,,(9s
z,!\oI

	2	oc
	XoW
,ToG
1"\oG
Yo#
3oG
YoW
o(
r[p(8
o,)o(
rp(8
o(
(*(*{*"}*{*"}*{*"}*{*"}*{*"}*(
o
(o(o(o((
*(
((((
(*:(
(
*V(-(
(
&*V(-(
(	
&*0^E(:1(6s
z~F

~F
~F
~F

~F
~F
(
rpo


(
rpo

(
,(
,(5s
z(3\
(
rpo

(
rpo

(
r+po


(
rKpo

(
rkpo

+W(
rpo

(
rpo

(
rpo


(
rpo

(
rpo

(
-(
+ (
-(
+(
-	(
+		s

(
-(
+ 	(
-	(
+ (
-	(
+ 

s
(o
(o

(o
s

(
-(
,(
(
-(
(
&*(
(
&(
rp(
:(
(
*0*(,-*(

((8
*0\F~F

s
,K
+:	o#
#3oG
/o
&~F

+
(

X	oG
2*0U(
o
,**(
o
.6(
o
3(
o
*(
o
,(
o
3*"(*(*N(
(
(
*z(
(
(
-*(**(*0G(
}{-(Us
z{s
((
o
(
(
9P(
rp(
-(7s
z(
rpo


(
rpo

(
,(
,(5s
z~F
(3(
rpo

+(
rpo

(
, 
(
(
, (
(
(
(o
0(
(
(o
/V(o
YE+ (A(as
z(B(as
z(o"
(`s
z(
(
,*(=s
zN({o
*zrp(,(
(
,**r!p(-r!p(_s
zsB*0Br3p(-"(
r3p(
-r3p(_s
z(
(
&s'*"(*ZrIp(,s/**Zr[p(,s***"(*F(
rkpo

*^(
rupo

(*Z(
rpo

(*Z(
rpo

(*"(*F(
rpo

*0H(
rpo


,(
*(
rpo


,rp(&
-**(0rp(
-4rp(
-'rp(
-rp(
-
rp(
,**0L(
rpo


,r-p(
*(
rupo


,*(
rpo

(*^(
rpo

*F(
rpo

*0(
rpo


-*(
*0(
rpo


-*(
*0(
rpo


-*( 
*0EI(
rpo


,-on

rpo!
.`rpo!
.`*0(
rpo


-*(
*^(
r#po

*0J(
r1po


,Dog

r=po!
.`rMpo!
.`r[po!
.`*(
rgpo


,Hog

r=po!
._rMpo!
._r[po!
._*(:,**6((*F(
rypo

*F(
rpo

*F(
rpo

*^(=-
(>**n(
rp(
,s]**"(*F(
rpo

*F(
rpo

*0(
rpo


-*(
*^(C-
(D**(
(
-*rp(,sQ**Zrp(,su**Zr5p(,sT**Zr[p(,s***Zrap(,se**Zr}p(,ss**Zrp(,sw**Zrp(,sy**Zrp(,s~**Zrp(,s**"(*(
(
-*(
rp(
,sV**n(
rp(
,s]**"(*(
(
-*(
rp(
,sZ**"(*F(
rpo

*F(
r	po

*0 (
,(
rp(
,**"(*F(
rpo

*0 (
,(
rp(
,**"(*F(
r	po

*^(
r	po

(*(
(
-*(
r5	p(
,sa**"(*0T(
rpo

%
,>r	p(
-)rp(
-rK	p(
-rMp(
-+*****F(
rpo

*F(
r]	po

*"(*Z(
ry	po

(*^(
rypo

(*^(
rupo

(*^(
r	po

(*^(
r	po

*^(
r	po

(*6((*2rap( *n(
rp(
,s]**"(*(*Z(
ry	po

(*n(
rp(
,s]**"(o*2r}p( *"(o*2rp( *"(o*2rp( *"(*F(
r	po

*Z(
ry	po

(*Z(
r	po

(*2rp( *"(*F(
rpo

*Z(
r
po

(*2r7
p( *"(*F(
rY
po

*F(
rk
po

*0K%9~:~s#
%r/p($
%rw
p($
%r
p($
%r
p($
%r
p($
%r
p($
%r
p($
%r
p($
%r
p($
%r
p	($
%r
p
($
%r
p($
%r
p($
%rp
($
%rp($
%r%p($
%r9p($
%rCp($
%rap($
%rkp($
%r}p($
%rp($
%rp($
%rp($
%rp($
%rp($
%rp($
%rp($
%rp($
~(%
9E
"**222:BBJRZbbjjjr+xrp
+|r'p
+trAp
+lr[p
+dr'p
+\ryp
+Trp
+Lrp
+Drp
+<r
p
+4r
p
+,r3
p
+$rK
p
+ri
p
+r
p
+(^s
z*-3s
*3o
o
s
*s
z0<LsE


+ 	o#
o&
&3o&
&	X
	oG
2o"
*040sE

r
poH
&'(oH
&r
poH
&o"
*0\M
(
o'
(
o(
o)
oY
(*

(Xr
po"
(
s
z-(Xs
z*,.o0$N4(
o+

-(\s
z*.(*0^OsE

+@Jo#

-	3+$	3-++
,-!	3,	o&
&%JXTJoG
2o"
*"(*04P-*s

+X[](o,
oG
2*0Q
+qo#

	%.
	[.	_3, -oG
Zs-

oc
oH
&,r
poH
&,o#
o&
&,r
poH
&XoG
2,o"
**(
*f(
}s
}*"}*{*{*jo-
{,*(*^(-
{o
**>{o
*
*{*"}*"}*{*"}*n,s}{o*Z{-*{o*J(
s
}*2{o
*:{o
&*0<R{o
+o
t
oo
-u,o
**0SS
{o
+&o
to,
ooo
-u
	,	o
*2@0DR{o
+o
t
o,oo
-u,o
*&2J{o.
t*F{o
s*:(
}*2{o
*2{o
*2{o/
*0(of(og}oh}oj}	{	-I{,	}
+8oi}{,	}
+ok}{,}
ol}on(*0@>(s

o0o
&(o=}}
o>}*(s
(oC}}
oD}*Vsoo-*Vo@,so*VoF,so*{*"}*09{	-{+(o
{-*r
p{(
*(,{	,{*(o*0T(o(
(,	oG
0o*o9ol,g,	oG
0oloo
+j]rapr
poloorep(0

+#{
-o,oG
1o*{
3r
p+r
p(
r
p(8
(

	o*0U(1
o0(2
o2(3
o5(4
o1(5
o3(6
o6(
o7(7
o8(8
o4}o?}o;(
o9}o<}oA
,s}{o*Z{-*{o*{*"}*{,{*{,
{o**09(-(*(
rp
(((8
*0;{,+(
r/p
(((8
*(*:(}*{*"}*{*{*{*"}*V(ojo*(oq(op}or(*r{,{*(o*"(*b,soo-*:(o*"(*b,soo-*:(o*"(*b,soo-*:(o*0:V(
s}oR
,(*oS,{o*0W{s
o~F

sooWo{oo
&sooXo{oo
&1rQp(

(
r]p
	%Xy	%Xy	(8
(

o:W{o{(
(
o*2{o*{*:(
}*0C(
o9
(
o
(
o
(
o
(
o:
(
*"}*"}*{*{*{*"}*0SX{-
o}*oo
+o

{o
&o
-u,o
*! A^(
}}"*j{!-s
}!{!*j{-s
}{*"}*j{-s
}{*"}*{ *{*"}*2(;
t*"(<
*{-*{o
o=
2*{o
o=
*{*"}*{*"}*{ -(w
sx
} { o
*0Y(:(
YE+s(
rp(8
*(
r
po>
o"
'(r
p(
o>
o"
](rp(8
*(<s
z(
	YE+U*(
r
po>
o"
'(r
p(
o>
o"
]((8
*(<s
z0?r}p(
rp
(Yo>
o"
]((8
(
*0	E-*rp(
rp
(Yo>
o"
]((8
oY
*{,{o
o=
**06
+%o>
o"
o>
o"
(
,*X
(Y2*0?Z(os

(2(oo
&*~F
(,vrp(?
~@
(A
(B
(
(C
r
p(
(oo
&(rp(
o(o(o(o
8?{o
oD
	{,({o
o=
/{o
oD
	{".(o
&{ 9{ o
@(3z{ oE
t](Yo>
t](&
-M(o

{ (Yo>
o
t]o
o(+&,-(-	(	(o
&X{o
o=
?(,(o
&*0T{-(>s
z{o
o=
.(?s
z{o
oD
(o(*0[t
orpo(
&rp(
-rprp(Zs
zo(
rp'((8
o(
(*(*{%*"}%*{#*"}#*{$*"}$*(
*0j\s
}(o^}&o_}'o`
soboocoodo{(o
&o-*6{(*"}(*{(*{&*"}&*0](-{'*{(o
+_o
t
o3ooo+5o3,oo,	o+o-~F
oo
-u,o
{&(
(

+!	{(o.
toX2(
{'	(8
*l"}'*(
*0E(o{(o|}+oz-(@s
zoz})}**02^{*{)(u
-{)rop(]s
z*{+*{,-(w
sx
},{,o
*
*0_{,9(

o|oo
ooz
o(o{,o{,oF
oG
+o
t]ojooo
-u
	,	o
},*`+f,s	oo-*:(
}1*{-*"}-*{0*"}0*6{0oH
*{.*"}.*{/*"}/*6{2*
*0s`o-j~F

(oF
oG

+%	o
t]-rp(

(

	o
-	u,o
(WsI
z*!1R0Rao
}2
o
+o
{2%X
oo
-u
	,	o
*&@0:{1,*}1
+{2{2o
X
{2i2*0Cb
o=
Y+0X[oD
oJ
oK

	3Y+	3X
+*1*06(
/*Y
1YoD
oJ
o"
(
-*0#(
rp
]((8
*NoL
rp(
*>($("*R{2yo*:($y*:($*0N($
(",*t]**R(o)}5*0cs

(o9
oM
rp(
(N
o
o
o
]rprprpo
#rpsO
rpsO
o
s
((
(
*0d{5o
rp( 
1~F
*~F
{5o
%X
oD
rpoJ
t](
{5o
o=
/,rp{5o
oD
rpoJ
o"
(
-*{4*0z}4(",~F
}3*((o
	/({5-(+}5t](,}3+o/}3{3-~F
}3*t]*b((o
	/**^(--(.{3*>}4}3*6(*o)*^(2}6}7*{63{3t](}6{6*rp((
, {73{3t](}7{7*{63{3t](&~{*{63{3t](&~{*&('*0e(--($
(.{3(",{3*%9rp(
-6rp(
-0rp(
-;r5p(
-:rcp(
-9+L{3*{3t](5oW
*(5y*(7*(8,(8*~F
**
*J(sP
}K*
*rpsQ
MrpsQ
N*0!f{KsP
o
{L-,
~M}L+~N}L
{LoR
8oS
rKpoT
oU
,*oS
rWpoT
oU
,oS
r]poT
oU
,
,H,EoS
ripoT
oU
,.{Ko
toS
ripoT
oV
o
oS
rqpoT
oU
,oS
rqpoT
oV

oW
oU
:**0Rg
(o
	22(
r}p](y(8

+p1<(
rp](yy(8

+0(
r5p](y(8

(~F

o
oX
	+"	o
t5	o>
o"
(

	o
-	u

,
o
o
o=
1,o
oD
o>
u-o"
(
R	*/N{Ko
*0({Ko
to
t]
-~F
**0h,
u-*(&
,~F
*(%('('
($uy,y+	(
(
(
(
(
(A-#((@(?	(B*0ii(",~Y
*y
(",~Y
*y1/~Y
* '[d[d]d] '[d[d]d]sZ
<*^($($(D*(*0-(%
1 '[d[d]d]s[
<*(*0-(%
1 '[d[d]d]s\
*(*0ej
($("-y
0~@
<* ([
 [ ]<[<](\
	(]
<*(*0rk
($("-y
0* ([
 [ ]<[<](\
($<	(]
(A
*(*0eoq
rhp((
,>(o9
o
o|

r~p(
,(*rp(
,(*(*0

 0P; ; YEdjpv|8 0% .s YEag8 .` YEJ\PV+Zrp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*0B((o
	/(%(P(Oy*('(Oy*(*0<(
rp
(''((''((8
*0l(S
,Q(#-G(
rrp(''((''((8
(

-6(
rp(''((8
(

+F(
rrp
		(''(	(''(	(8
(

*0m('%
9i~:qs#
%rp($
%rp($
%rp($
%rp($
%rp($
%r$p($
%r*p($
%r0p($
%r6p($
%r<p	($
%rBp
($
%rHp($
%rNp($
%rTp
($
%rZp($
%r`p($
%rp($
%rfp($
%rlp($
%rrp($
%rxp($
%r~p($
%rp($
%rp($
%rp($
%rp($
%rp($
%rp($
~(%
9E#2AP_r""1DS8]rp(T*rp(T*rp(T*rp(T*r p(T*r0 p(T*rZ prf p(T*(#-rr prf p(T*rr p(T*r prf p(T*r prf p(T*r p(T*r p(T*r p(T*r p(T*r!p(T*r<!prf p(T*rf p(T*r prf p(T*rp(T*rL!p(T*('(Ys
z"(U*(*0td{O-('.(}O
%,3r|!p(
-r!p(
-r!p(
-
+

+
+
{Oo
2*{Oo
*"}O*(*r(}P}Q}R*0n(%
(%('{P,5(
r!p
	y	y	](	(8
*}P(
r
"pyy(8
*0do{Q,*}Q	]}R(\((
o
8o
t-
8o^
	o_
o`
 	@o^
	o_
oa
r>"poa
oG
Yob
2iXoa
%oI
0oa
oG
{R%Xoa
Yoc
	X
	o^
oc
/{Ri?b	X
	o^
oc
/{Ri?'{Ri2*o
:u,o
}R*A8G0m(]{R9}%
9u~-ms#
%rF"p($
%rR"p($
%rb"p($
%r"p($
%r"p($
%r"p($
%r"p($
%r#p($
~(%
9E5Me}8{R(
(d
*{R(
(
y*{R(
(
y*{R(
(e
*{R(
(e
*{R(
(e
*{R(
(e
*{R(
(e
**>}R}Q*0p(",~f
*t]
j.oZ
i.~f
*
+/(
(
j	%X
Z_bjZXXi2sg
*(*z(",*t]&t](h
*(*0q
('(i
{S-Bo3#r2#p?(j
((}S+r#p((}S{So
oX

+$	o
t5o>
?(k
,
+	o
-	u,o
-~Y
*%9~:s#
%r#p($
%r#p($
%r$p($
%r$$p($
%r<$p($
%rP$p($
%r`$p($
%rx$p($
%r$p($
%r$p	($
%r$p
($
~(%
9E)Ea}8r$poJ
*r%poJ
*r@%poJ
*rn%poJ
y-+*r%poJ
y-+*r%poJ
y-+*r%poJ
r%poJ
(D*r%poJ
*r
&poJ
r&&poJ
(D*rB&poJ
*rpoJ
**l0(F*0|r('
(']
	rl&p	(	r&p	(	r&p	(0
((o
o=
1o
oD
r&poJ
**(F*0s($
o"
s*(*v(#}T}W*
*0Ft#{T3.r&p((
o
oD
o>
}T{T*{U-"((o
	/(r+(q{U*0u{V-z{W-r('
(!(
(m
	'(	(8
(
(moG
1((o
oD
}V&}W{V**]v.>}V}W*0@r'p(,r'pr'por'p(,r'pr(porW(p(,rW(pru(por(p(,r(pr(por)p(,r)pr)porE)p(,rE)pri)por)p(,r)pr)por)p(,r)pr*por[*p(,r[*pr*por*p(,r*pr)por*p(,r*pr*po*05s
(pr*p(-
r+p(,r%+pr3+por*p(,r+pr
,por+p(,r0,pr@,por,p(-
r-p(,r,pr5-por-p(,r-pr.por6.p(,r6.prL.por.p(,r.pr.por*p(-r,p(-
r-p(,r/por0p(,r0pr1por1p(,r1pr1por2p(,r2pr2po(so}U*0(vs
(pr*p(-
r+p(,r%+prL4por*p(,r+pr4por+p(,r0,pr5por,p(-
r-p(,r,pr+6por-p(,r-prj7por.p(,r.pr*por0p(,r0pr
8po((o
2o
 2(so}U*0Jr8p(,<r8por`9por9por8pr:por;po*0w((
(n-rF;p(&
,~Y
8%
9~:#s#
%r*p($
%r+p($
%r,p($
%r-p($
%r*p($
%r6.p($
%r*p($
%r.p($
%r)p($
%r)p	($
%rW(p
($
%r(p($
%r'p($
%rE)p
($
%r'p($
%r)p($
%r[*p($
%r0p($
%r2p($
%r8p($
%r1p($
%rF;p($
~	(%
9LE=%%%%%%%%%%%%%%9^8#("-o
	/?(nr%+poJ
(nr+poJ
Y(lZX+>(nr%+poJ
(nr+poJ
lY(lZX#A3#8#(nr0,poJ
u,(nr0,poJ
(nr%+poJ
X(lZ#@[8o
	/)(nr,poJ
(lZ8}(nr,poJ
l(lZ8So
	/@(nr-poJ
(nr,poJ
Y(lZ8	(nr-poJ
(nr,poJ
Yl(lZ8(noJ
8o

?(nr2poJ
8o
?o
 2v(nr8poJ
+ao

2W(nr1poJ
+Bo
	/(",*t](u+(",~F
*t](u*0%,oG
-~F
*~F

(l

&*	 
*>}X}Y*0gx('
((o
	2rf;p+r=p(!(

	((o
oD
}X
&}Y*/-\
.(",-{X-{Y-(x{X,{XoJ
*(*0}y
('(%-5(
rz@p
	(	y	(8
((
o
o=
1!o
oD
rBpoJ
**(*:}Z(*
*0A%
,:rCp(
-r/Cp(
-+(y+(g*^{Z/({Z*^{Z/({[*n($,($*j*0)zj
}[(
(}[i}Z*0d{L
L j1U j[ljULl4%LjXUL j1. j[lijULl4%LjXUL j1jU****:}](*
*0o{],(}^}]%
,KrWCp(
-rcCp(
-roCp(
-	+"{^*{^(
,y*y**0|('}\(
rCp{\(8

s
o
&(rCp(&~F

4&~F

+o
o=
-~F
*o
oD
o>
o"
*	*@T	.@]	"}]*r(
(((*{_*"}_*{`*"}`*{a*"}a*V(
}b}c*{b*"}b*{c*"}c*0I}t
(o1*(o/*(o3*(o0**(
*(
}e}f}g}h}i}j*0D(
}e}f}g}h}i}j}k}l*{e*"}e*{f*"}f*{g*"}g*{h*"}h*{i*"}i*{j*"}j*00~u
-sm
z{k-{e{e(&
+{k{e{eon
,*{l-{f{f(&
+{l{f{fon
,*{j{j/*{j{j1*{i{i3
{i,*{l-0{g{g(&
,*{h{h(&
,<*{l{g{gon
,*{l{h{hon
,**J(
sP
}p*{u*"}u*0$~q{d:
~qsP
}d~q{dyrf prf pso
~q{dyr pr pso
~q{dyrprpso
~q{dyr pr pso
~q{dyrr prr pso
~q{dyr pr pso
~q{dyr<!prCpso
~q{dyr0 pr0 pso
~q{dyr pr pso
~q{deyrperpso
~q{dfyr pfr pso
~q{dgyrpgrpso
~q{d yrp rpso
~q{d yrDp rDpso
~q{d yr'Dp r'Dpso
~q{dhyrKDphrKDpso
~q{d yruDp ruDpso
~q{d yrDp rDpso
~q{d yrDp rDpso
~q{d*08%
9~:s#
%rf p($
%r p($
%rp($
%r p($
%rr p($
%r p($
%r<!p($
%r0 p($
%r p($
%rp	($
%r p
($
%rp($
%rp($
%rDp
($
%r'Dp($
%rKDp($
%ruDp($
%rDp($
%rDp($
~	(%
9E
%+14:@+D*********e*f*g* * * *h* * * *sE

(oo
oG
+.o
t%X1r&poH
&ooH
&o
-u,o
o"
(Vs
z;0(p
,(Csq
z}m{m(}r((s
o
s
or
r~pos
}nor
rpos
}o{o-+or
o|
(&or
(t
(bs
z{o(}trDp(}ss
(-{o(o
&{ro

2rDpo
&+rEpo
&rFpo
&j
sE
 or
8o
o|
rr p(
,o
o|
rFp(
,rFp({ro

?r<!p(.FrDp(.8r'Dp(.*rp(.rDp(.rDp(3$]rprpo
++]rprprpo
o
t		oor<!p(.FrDp(.8r'Dp(.*rp(.rDp(.rDp(3	orFpo	orpo	o(
(
o	orFpo	ooH
&
(t
([
su
zrpo|
ov
,doG
1Zr
GpoH
&(
(
&oH
&r}poH
&(
oH
&repoH
&ow
&8]rpo
o
tooo(
(
oorFpoooH
&
(t
([
su
z	jX
	j1j	j]3o"
o
&o
Xi?	j1j	j].o"
o
&reGpo
&~F
(,	rGp+E{ro
0	rGp+.{ro
	3	rGp+{ro

2rHp(
r/Hpox
-+y(8
(
(
sy
oz
(
o{
o
&(,{o(+	(((-rHp(*
0$(
rp
'((8
*0AL-*sE


+ 	o#
o&
&3o&
&	X
	oG
2o"
*0(|

sE
{ro
1rHp(o}
&+rPIp(o}
&o"
{m(o
o=
,-o
oD
o>
t]
	rmJpo1
,(~

+(~

*Z(yo
t*0~s

s
Ц(
{ro

?@o
oX
8o
t5
	({po
t-?	((t
s
(N
o
{po
o
&	rwJpoJ
o
	(o,f{po
t,o
o
&+=s
	(o
{po
o
&o
o
&o
:u,o
o
8o
oX
8o
t5		(
{p
o
t-F
o	((t
s
(N
o
{p
o
o
&	rJpoJ
oL
.L	(
{p
o
t

,o

o
&+o

o
&o
&o
:u,o
(*A46Iv`0a-
rJpoJ
+rJpoJ
y
-
rJpoJ
+rJpoJ
s
((csu
z	*LL0	-
rJpoJ
+rKpoJ
t]
-
r!KpoJ
+r9KpoJ
t]-
rMKpoJ
+rmKpoJ
t]-
rKpoJ
+rKpoJ
t]
-
rJpoJ
+rJpoJ
y-
rJpoJ
+rJpoJ
	{s{ts((csu
z*0sE

o
o
oX
+to
t{o
oH
&rapoH
&o
oJ
oL
o
&repoH
&rKpoH
&o
oJ
o
&rKpoH
&o
-u
	,	o
o"
*0wo

+O	o
t
+1o
o.
u,o
{po
o
Xo
o
2	o
-	u,o
*[b0o(
s
]rpo
o
{n,](
rKp{n(
{o(
ooy(8
(N
o
+L(
r3Lp{o(
ooy(8
(N
o
s
{mo
(

	o
oD
o>
t](N
*0(
{n,:(
rLp{n(
{o(
(8
+)(
rLp{o(
(8
r<!po(
9(
rMprJpoJ
(orKpoJ
t](
rMKpoJ
t](
rKpoJ
t](
(8
(
(N

Ц(
rmKpoJ
oL
3L(
rMporKpoJ
t](
(8
(
(N

x(
rMporKpoJ
t](
rmKpoJ
t](
(8
(
((csu
z(N
*	*Atp0
-rJpoJ
t]+rKpoJ
t]-r!KpoJ
t]+r9KpoJ
t]-rMKpoJ
t]+rmKpoJ
t]
-rKpoJ
t]+rKpoJ
t]-rJpoJ
+rJpoJ
(~F
(
,&(
rMp(
(8

+I{n,+(
rMp

{n(

(8

+(
rNp(8

~F
(
,,(
r+Np(
(8
(

+/(
r+Np{o(
(8
(

r<!po(
9rYNpoJ
t]riNpoJ
t]ruNpoJ
y	(
rMp	(o(
(
(
(8
(

(N
ݫ~F
	(
,@(
rMpo(
(8
(

(N
^(
rMpo(
	(
(8
(


((c
su
z(N
**A90#(
rp
]((8
*.sq*03(
s
}voU
{vo[o
&o-*{v*(
*0
oG
-	`
8_oZ
9
	
+	
%,krNp(
-HrNp(
->rNp(
-4rNp(
-+rNp(
-"rNp(
-++
+
++
X

	i?v, @
+-`
	-`
-`
-`
*0t
orNpo(
&r<Op(
rVOp(
-(:s
zo(
rvOp
		(8
o-orOpo+)o(
rOp(8
o(
(*(*>(
(*>(
(*0r}}y}o}z{3oo
}{+{z}{oo(o(*0}w{w|o}y{@+]({xo

++{{-~Y
o
+{{o
X{{i2{xo
o
(-{o
}Q}{{,{o
{o
}{yo
}y{wo}w*+{Q0s{z}|}},o
+}~
{~,>(w
sx

{z+!o.
toyo
Xo
2o
8o
t
	o(	o
(
,H	o
(
{|}{|	o((
}}}{~,I	oo
t,2{|	o~
}{|}oX%{z/o
:)u,o
*]0s
}x{x(
o

o

8	o
to
o
, o
rHPpo
,rp+r'prPp(&
-'{xo
o'(
s
o
+"{xo
o(
s
o
{-
X%
{z/	o
:N	u,o
*${3{xo
{oD
o>
*{yo
*{3{xo
{oD
o>
*{{*{3{xo
{oD
o
*{{*0#{yo

,{y{{o
&*0{~-*
+O{|{,8{|{{|{(o((X
{z2+-{|{,{|{o)X{z2*0{}-*
8{|{9{{u:{|{o
,+{{{|{{{(
8w{{u,A{|{o
,){{{|{(
o
8%>{|{{|{ o

	,){{	{{o
8](
{|{@{|{ >o

	,u	o
,c{|{r2Qp>](
o
,*		{{	o
&{{X
{z?*6((*2{yo
*2{yo
*
*0U}x{y,+{yo
-{,{o
{yo
{w,{wo}w*0Dt{yo

+o
o
o=
Yo
{z2o
o=
{z0*
*0(
,(*0s{xo
o=

}+(%{X}{2{xo
o=
Y+{xo
o
Y{z/{x*F{xo
o=
*{x,{xo
{,{o
{y,{yo
*{z*{z1{z1{yo
X*&{{*N{yo
(*6(*6(*0,(t
i1i+jj(
j*6(*0,(t
i1i+jj(
j*
*Z({yo
*6(<*6(=*6(*((o
o
o
*6(*6(?*6(*6(y*6(*Z({yo
*N{yo
(*6(t]*"(*0Dbi
{z2+{z+(X2
+		X
	{z2*Z({yo
*(
*0r>QprRQprfQprQp~r?Rp(
rIRprkRprRprRprSp]rUSp~rSp~rSp(0
rSprSpr%TprqTprTprTps~rTprUpr/UprEUpraUp]
	~	r{Up	~	r{Up	~	r{Up	~	r{Up	~		r{Up	
~	r{Up	~	
r{Up	~	r{Up	~	r{Up	~	r{Up	~	r{Up	~	r{Up	~	r{Up	~	r{Up	~	rUp	(0

~sQ
}]~r{Up~r{Up~r{Up~r{Up~	r{Up
~(0
~DsQ
}*0FPoW
Q8PoS
rUpoT
oU
,vr
pPoS
rUpoT
oV
](r
p(
}PoS
rUpoT
o
}{PoS
rUpoT
o
X}82PoS
rUpoT
oU
,`PoS
rUpoT
oV
}PoS
rUpoT
o
}{PoS
rUpoT
o
X}8PoS
rVpoT
oU
9-*PoS
rVpoT
oV
}PoS
rVpoT
o
}{PoS
rVpoT
o
X}
r
p{""(r
p(
}+PoW
QPoU
:@PoU
,`PoW
QPoS
r#VpoT
oU
,?PoS
r#VpoT
oV
}{PoS
r#VpoT
o
X}{oG
*0(-*PoS
r;VpoT
oU
9{}~F
}{
~F
}(-*}PoS
r;VpoT
oU
,A{}{}~F
}~F
}(-*}*0r}}}rp}rp}rp}rp}}}}rp}rp}~{oR

8oS
rUpoT
oU
9rCVpoS
rUpoT
oV
(&
-oS
rUpoT
o
}+ZrQVpoS
rUpoT
oV
(&
-$}oS
rUpoT
o
}+*oW

oU
:MoW

+;oS
rUpoT
oU
,oS
rUpoT
oV
}+oW

oU
-(,r]Vp{(&
,D*oS
rUpoT
oU
,$rmVpoS
rUpoT
oV
(&
,*oW

oU
-}}rp}rp}({}{}{}{}{}*0
~}~}
~{oR
81AoS
rsVpoT
oU
,Y
+oS
rVpoT
oU
,X
=7oS
rVpoT
oU
,-o
o
X*8oS
rVpoT
oU
,o
*oS
rVpoT
oU
,8oS
rVpoT
oU
,X
~}8oS
rVpoT
oU
,+~,<oS
rqpoT
oU
,$~oS
rqpoT
oV
}+?oS
rVpoT
oU
,
+#	, oS
rVpoT
oU
,o
*oW
oU
:o*0]rWprWprWp

~{oR
8-/oS
r)WpoT
oU
,-A1=oS
rUpoT
oU
,%%XoV
(&
,3o

oS
r7WpoT
oU
,oS
rEWpoT
oU
,,*3	*oW
oU
:@,*3	**(
*0
 oq
%9~:+>s#
%rMWp($
%rSWp($
%r]Wp($
%rgWp($
%rqWp($
%r{Wp($
%rWp($
%rWp($
%rWp($
%rWp	($
%rWp
($
%rWp($
%rWp($
%rWp
($
%rWp($
%rWp($
%rWp($
%rWp($
%rWp($
%rXp($
%rp($
%rp($
%rXp($
%rXp($
%rXp($
%r'Xp($
%r-Xp($
%r7Xp($
%rAXp($
%rKXp($
%rp($
%rp($
%rUXp ($
%rp!($
%r_Xp"($
%riXp#($
%rp$($
%rsXp%($
%r}Xp&($
%rXp'($
%rp(($
%rXp)($
%rXp*($
%rXp+($
%rXp,($
%rXp-($
%rXp.($
%rp/($
%rXp0($
%rp1($
%rXp2($
%rp3($
%rp4($
%rp5($
%rp6($
%rp7($
%rXp8($
%rXp9($
%rXp:($
%rp;($
%rXp<($
%rYp=($
~(%
9	E>!(07>ELT\dlt|!&+05:?DINSX]bglqv{8
8
8
8
8{
8t=
8l
8e
8^
8W
8P	
8H

8@
88
80
8(
8 
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8 
8!
8"
8#
+{$
+v%
+q&
+l'
+g(
+b)
+]*
+X+
+S,
+N-
+I.
+D/
+?0
+:1
+52
+03
++4
+&5
+!6
+7
+8
+9
+
:
+;
+<
*0
 oq
%9l~:s#
%rMWp($
%rXp($
%rXp($
%rp($
%rp($
%rYp($
%rp($
%rYp($
%rp($
%rp	($
%rfp
($
%rXp($
%rp($
%rXp
($
%rYp($
~(%
9	E
"&+05:?+@
+<
+8
+4
+0
+,
+(
+$
+ 
+	
+

+
+

+
+
*0|
 oq
%9^~:Ws#
%r!Yp($
%r+Yp($
%r5Yp($
%r?Yp($
%rIYp($
%rSYp($
%r]Yp($
%rgYp($
%rqYp($
%r{Yp	($
%rYp
($
%rYp($
%rYp($
%rXp
($
%rXp($
%rYp($
%rp($
%rYp($
%rYp($
%rYp($
%rYp($
%rYp($
%rYp($
%rYp($
%rYp($
%rYp($
~(%
9	E#'+05:?DINSX]bglqv+w
+s
+n
+j
+f
+b
+^
+Z
+V
+R
+N	
+I

+D
+?
+:
+5
+0
++
+&
+!
+
+
+
+

+
+
*(
*0(t
-s
o*(*J(s
}*0 
*0l(t
{o
+5o
t(z
o
({
ozo
too
-u
	,	o
*AY0?5o
ooooojoojoo
&*0sE

t({o

+!	o
trYpoH
&(	o
-	u,o
(jo(jo(*"-O0D({o
+o
t
o
o
-u,o
*20F({o
+o
t
o
o
-u,o
* 40;o$&(+s
o{o
&o$-*{*"}*b(
os
}*N(
o}*:{o
*6{o
*0:,{{o
&*{o
tA
{o
o
&*01
+"{o
,{o
-*X
o2*0M-*{o
tA
{o
+o
{o
.*Xo2*:(} *0c{ :s

(o9
oM
rZp(
(N
o
o
o
]rprZpo
#rpsO
o
((
(
} { *~(#,~Y
*('o*
*"} *(*0(
o
rp( 1~Y
*sKo
oD
rZpoJ
o"
(
	ooX%o
o=
/#o
oD
rpoJ
o"
(
-*0ym%
9k~:^}s#
%rGZp($
%rgZp($
%rZp($
%rZp($
%rZp($
%r[p($
%r1[p($
%rk[p($
%r[p($
%r[p	($
%r\p
($
%r=\p($
%rm\p($
%r\p
($
%r\p($
%r\p($
%r]p($
%r+]p($
%rM]p($
%rs]p($
%r]p($
%r]p($
%r]p($
%r^p($
%r-^p($
%rg^p($
%r}^p($
%r^p($
%r^p($
%r^p($
%r^p($
%r_p($
%r'_p ($
%r=_p!($
%rS_p"($
%r_p#($
%r_p$($
%r_p%($
%r_p&($
%r	`p'($
%r5`p(($
%rc`p)($
%r`p*($
%r`p+($
%r`p,($
%r/ap-($
%rMap.($
%rap/($
%rap0($
%rap1($
%rbp2($
%rAbp3($
%rabp4($
%r{bp5($
%rbp6($
%rbp7($
%rbp8($
%r+cp9($
%rOcp:($
%rqcp;($
%rcp<($
%rcp=($
%rcp>($
%rcp?($
%rdp@($
%r-dpA($
%rKdpB($
%rudpC($
%rdpD($
%rdpE($
%rdpF($
%rdpG($
%repH($
%r1epI($
%rIepJ($
%raepK($
%repL($
%repM($
%repN($
%rfpO($
%r!fpP($
%rIfpQ($
%rsfpR($
%rfpS($
%rfpT($
%rfpU($
%r/gpV($
%rIgpW($
%rygpX($
%rgpY($
%rgpZ($
%rgp[($
%r)hp\($
%rEhp]($
%r[hp^($
%r{hp_($
%rhp`($
%rhpa($
%rhpb($
%ripc($
%r9ipd($
%rOipe($
%ripf($
%ripg($
%riph($
%ripi($
%ripj($
%ripk($
%rjpl($
%r7jpm($
%rqjpn($
%rjpo($
%rjpp($
%rjpq($
%rjpr($
%rkps($
%rkpt($
%r)kpu($
%r=kpv($
%rskpw($
%rkpx($
%rkpy($
%rkpz($
%rkp{($
%rkp|($
~(%
9E}#)/5;AGMSY_ekqw}
%+17=CIOU[agmsy	!'-39?EKQW]ciou{8(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(	*(
*(*(*(
*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(%*(&*('*((*()*(**(+*(,*(-*(.*(/*(0*(1*(2*(3*(4*(5*(6*(7*(8*(9*(:*(;*(<*(=*(>*(?*(@*(A*(B*(C*(D*(E*(F*(G*(H*(I*(J*(*(*0(
o
rp( 1~Y
*s%o
oD
rZpoJ
o"
(
	oloX%o
o=
/#o
oD
rpoJ
o"
(
-*0m%
9~:	 s#
%rGZp($
%rlp($
%rgZp($
%rZp($
%rZp($
%rZp($
%r[p($
%r1[p($
%rGlp($
%rk[p	($
%r[p
($
%r}lp($
%rlp($
%rlp
($
%r[p($
%r\p($
%rlp($
%rmp($
%r=\p($
%rm\p($
%r\p($
%r\p($
%r\p($
%r]p($
%r=mp($
%r[mp($
%rmp($
%r+]p($
%rmp($
%rM]p($
%rs]p($
%r]p($
%r]p ($
%r]p!($
%r^p"($
%rmp#($
%r-^p$($
%rmp%($
%rnp&($
%rg^p'($
%r}^p(($
%r^p)($
%rEnp*($
%rknp+($
%r^p,($
%rnp-($
%r^p.($
%r^p/($
%r_p0($
%r'_p1($
%r=_p2($
%rnp3($
%rS_p4($
%r_p5($
%r_p6($
%r_p7($
%r_p8($
%r	`p9($
%r5`p:($
%rc`p;($
%r`p<($
%r	op=($
%r-op>($
%riop?($
%r`p@($
%r`pA($
%r/apB($
%ropC($
%rMapD($
%ropE($
%ropF($
%rapG($
%rapH($
%rapI($
%rbpJ($
%rAbpK($
%rabpL($
%rppM($
%r1ppN($
%rgppO($
%r{bpP($
%rppQ($
%rbpR($
%rbpS($
%rbpT($
%r+cpU($
%rOcpV($
%rqcpW($
%rppX($
%rcpY($
%rppZ($
%rcp[($
%rcp\($
%rcp]($
%rdp^($
%rpp_($
%rqp`($
%r-dpa($
%rKdpb($
%rudpc($
%rdpd($
%rdpe($
%rdpf($
%rdpg($
%reph($
%r1epi($
%rIepj($
%r_qpk($
%raepl($
%repm($
%repn($
%rqpo($
%repp($
%rfpq($
%r!fpr($
%rIfps($
%rsfpt($
%rfpu($
%rqpv($
%rqpw($
%rqpx($
%rfpy($
%rfpz($
%r/gp{($
%rrp|($
%rIgp}($
%r3rp~($
%rYrp($
%rygp ($
%rgp ($
%rgp ($
%rgp ($
%r)hp ($
%rEhp ($
%rrp ($
%rrp ($
%rrp ($
%r[hp ($
%rrp ($
%r{hp ($
%rhp ($
%rhp ($
%rhp ($
%rip ($
%r9ip ($
%rsp ($
%rOip ($
%r7sp ($
%rip ($
%rip ($
%rip ($
%rip ($
%rip ($
%r]sp ($
%rsp ($
%rsp ($
%rip ($
%rjp ($
%r7jp ($
%rqjp ($
%rjp ($
%rjp ($
%rjp ($
%rjp ($
%rkp ($
%rkp ($
%r)kp ($
%rsp ($
%r=kp ($
%rskp ($
%rtp ($
%r3tp ($
%rkp ($
%rkp ($
%r?tp ($
%rkp ($
%rkp ($
%rkp ($
~(%
9E#)/5;AGMSY_ekqw}
%+17=CIOU[agmsy	!'-39?EKQW]ciou{#)/5;AGMSY_ekqw}
%+8,(s*(t*(u*(v*(w*(x*(y*(z*({*(|*(}*(~*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(	*(
*(*(*(
*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(*0-(v
s1

rpo2
rpo3
o5
o
(
s1

r~po2
rpo3
o5
o
(
s1

r[tpo2
rpo3
o5
o
(
s1

rmtpo2
r[po3
o5
o
(
s1

rtpo2
rpo3
o5
o
(
s1

rtpo2
r[po3
o5
o
(
*0
 
*0(
o

s
(
o
(z
o
+-(}

o
	o
(
o
&Xi2rp(
(
rtpo
u,o
-+
o
3o
oX
8o
t5rtpoJ
o"
		,	oG
1rtp	(
,	rtpoJ
o"
	-rp+rtp	(
(

,
(&
:\rtpoJ
o"
(
(&
,	@.o
(z
o
8

%9rp(
-Krtp(
-Jr~p(
-Nr[tp(
-Wrmtp(
-Vrtp(
-y8

o
+|
o
+j
rtpoJ
o
+S
	o
+F
rtprmtpoJ
o"
(
-+o
+
rtpoJ
o
Xi?o
o
o
:u,o
s
*A(%(%(%(%(#*.+.+.+.+s
*(*0s

('(
,*s
o
o
o

	,^	o
o
+/o
t~o
o
,o
o
&o
-u,o
*C<(*:(
}!*0{!(g
-{!
*>(
}"*b](
3*(
*0ro
+Y
(
o
+/to
(
,o
(

Xi2+i2*	*0'u]
(
-{"(+*(
*0ko
+R
o
(
,8(
o
+to

i2+Xi2*	*](
3o"
{"(-*(
*Fv(
()*F(
()*FF(
()*(
*(e*(f*.rtp(g*.rup(g*.rUup(g*.rup(g*.rup(g*.rup(g*.rvp(g*.r+vp(g*.rKvp(g*.r}vp(g*.rvp(g*.rvp(g*.rvp(g*.rvp(g*.rwp(g*.rEwp(g*.rYwp(g*.rwp(g*.rwp(g*.rwp(g*.rwp(g*.rwp(g*.r'xp(g*.r7xp(g*.rExp(g*.r_xp(g*.rqxp(g*.rxp(g*.rxp(g*.rxp(g*.rxp(g*.rxp(g*2ryp(h*6r?yp(i*2rwyp(h*2ryp(h*2ryp(h*6ryp(i*2r'zp(h*2rQzp(h*6rzp(i*2rzp(h*2rzp(h*2rzp(h*2rzp(h*2r{p(h*2r[{p(h*(
*~S*S*F~R~So
*0'(
~R~So

(8
*0+(
~R~So

(8
*(
o
(
o
o
s
RS*:(
}*{*s'*0s'
o+*"(n*0s'
o+*"(p*F{o"
*sk*sk*sk*sk*sk*sk*sk*sk*sk*"	sk*"
sk*"sk*"sk*"
sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*" sk*"!sk*""sk*"#sk*"$sk*"%sk*"&sk*"'sk*"(sk*")sk*"*sk*"+sk*",sk*"-sk*".sk*"/sk*"0sk*"1sk*"2sk*"3sk*"4sk*"5sk*"6sk*"7sk*"8sk*"9sk*":sk*";sk*"<sk*"=sk*">sk*"?sk*"@sk*"Ask*"Bsk*"Csk*"Dsk*"Esk*"Fsk*"Gsk*"Hsk*"Isk*"Jsk*"Ksk*"Lsk*"Msk*"Nsk*"Osk*"Psk*"Qsk*"Rsk*"Ssk*"Tsk*"Usk*"Vsk*"Wsk*"Xsk*"Ysk*"Zsk*"[sk*"\sk*"]sk*"^sk*"_sk*"`sk*"ask*"bsk*"csk*"dsk*"esk*"fsk*"gsk*"hsk*"isk*"jsk*"ksk*"lsk*"msk*"nsk*"osk*"psk*"qsk*"rsk*"ssk*"tsk*"usk*"vsk*"wsk*"xsk*"ysk*"zsk*"{sk*"|sk*"}sk*"~sk*"sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*(
*"(*:(
(+*03(
os
(	+
(+Xi2*b(
o
tA(	*2(s)*N(olo
*N(olo
*&(+*&(,*0s&
o+*"(/*0s&
o,*"(1* *0sE

(L
o
r{p(
oH
&(o
+9o

	,%,+r&poH
&o"
oH
&Xo
-u,o
o"
*3Fy{*"}*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*:(	o
*>(	o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:( o
*>( o
*:(!o
*>(!o
*:("o
*>("o
*:(#o
*>(#o
*:($o
*>($o
*:(%o
*>(%o
*:(&o
*>(&o
*:('o
*>('o
*:((o
*>((o
*:()o
*>()o
*:(*o
*>(*o
*:(+o
*>(+o
*:(,o
*>(,o
*:(-o
*>(-o
*:(.o
*>(.o
*:(/o
*>(/o
*:(0o
*>(0o
*:(1o
*>(1o
*:(2o
*>(2o
*:(3o
*>(3o
*:(4o
*>(4o
*:(5o
*>(5o
*:(6o
*>(6o
*:(7o
*>(7o
*:(8o
*>(8o
*:(9o
*>(9o
*:(:o
*>(:o
*:(;o
*>(;o
*:(<o
*>(<o
*:(=o
*>(=o
*:(>o
*>(>o
*:(?o
*>(?o
*:(@o
*>(@o
*:(Ao
*>(Ao
*:(Bo
*>(Bo
*:(Co
*>(Co
*:(Do
*>(Do
*:(Eo
*>(Eo
*:(Fo
*>(Fo
*:(Go
*>(Go
*:(Ho
*>(Ho
*:(Io
*>(Io
*:(Jo
*>(Jo
*:(Ko
*>(Ko
*:(Lo
*>(Lo
*:(Mo
*>(Mo
*:(No
*>(No
*:(Oo
*>(Oo
*:(Po
*>(Po
*:(Qo
*>(Qo
*:(Ro
*>(Ro
*:(So
*>(So
*:(To
*>(To
*:(Uo
*>(Uo
*:(Vo
*>(Vo
*:(Wo
*>(Wo
*:(Xo
*>(Xo
*:(Yo
*>(Yo
*:(Zo
*>(Zo
*:([o
*>([o
*:(\o
*>(\o
*:(]o
*>(]o
*:(^o
*>(^o
*:(_o
*>(_o
*:(`o
*>(`o
*:(ao
*>(ao
*:(bo
*>(bo
*:(co
*>(co
*:(do
*>(do
*:(eo
*>(eo
*:(fo
*>(fo
*:(go
*>(go
*:(ho
*>(ho
*:(io
*>(io
*:(jo
*>(jo
*:(ko
*>(ko
*:(lo
*>(lo
*:(mo
*>(mo
*:(no
*>(no
*:(oo
*>(oo
*:(po
*>(po
*:(qo
*>(qo
*:(ro
*>(ro
*:(so
*>(so
*:(to
*>(to
*:(uo
*>(uo
*:(vo
*>(vo
*:(wo
*>(wo
*:(xo
*>(xo
*:(yo
*>(yo
*:(zo
*>(zo
*:({o
*>({o
*:(|o
*>(|o
*:(}o
*>(}o
*:(~o
*>(~o
*:(o
*>(o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*0J({s'	
((~(s(
(((s((((s(
	(	(	(	s(
(((s(((s((((!s((((((s(((s(		(	(	(	s(

(
(
(
s((((s((((((((s(

(
(
(
s((((s((((s((((
s(4(((((((((	(
((!({
((~(((((((((((
(t((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(s(((((((!({((~	(
(((
(((((((
(t(s((s'*2~	(*R~	(}*2~
(*R~
(}*2~(*R~(}*2~(*R~(}*2~
(*R~
(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*:(
}*{*sM*0sM
oQ*"(*0sM
oQ*"(*F{o"
*s*s*s*s*s*s*s*s*s*"	s*"
s*"s*"s*"
s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*" s*"!s*""s*"#s*"$s*"%s*"&s*"'s*"(s*")s*"*s*"+s*",s*"-s*".s*"/s*"0s*"1s*"2s*"3s*"4s*"5s*"6s*"7s*"8s*"9s*":s*";s*"<s*"=s*">s*"?s*"@s*"As*"Bs*"Cs*"Ds*"Es*"Fs*"Gs*"Hs*"Is*"Js*"Ks*"Ls*"Ms*"Ns*"Os*"Ps*"Qs*"Rs*"Ss*"Ts*"Us*"Vs*"Ws*"Xs*"Ys*"Zs*"[s*"\s*"]s*"^s*"_s*"`s*"as*"bs*"cs*"ds*"es*"fs*"gs*"hs*"is*"js*"ks*"ls*"ms*"ns*"os*"ps*"qs*"rs*"ss*"ts*"us*"vs*"ws*"xs*"ys*"zs*"{s*"|s*(
*"(*:(
(Q*03(
os
(	+
(QXi2*b(
o
tA(	*2(sO*N(oo
*N(oo
*&(Q*&(R*0sL
oQ*"(U*0sL
oR*"(W*}*0sE

(L
o
r{p(
oH
&(o
+9o

	,%,+r&poH
&o"
oH
&Xo
-u,o
o"
*3Fy{*"}*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*:(	o
*>(	o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:( o
*>( o
*:(!o
*>(!o
*:("o
*>("o
*:(#o
*>(#o
*:($o
*>($o
*:(%o
*>(%o
*:(&o
*>(&o
*:('o
*>('o
*:((o
*>((o
*:()o
*>()o
*:(*o
*>(*o
*:(+o
*>(+o
*:(,o
*>(,o
*:(-o
*>(-o
*:(.o
*>(.o
*:(/o
*>(/o
*:(0o
*>(0o
*:(1o
*>(1o
*:(2o
*>(2o
*:(3o
*>(3o
*:(4o
*>(4o
*:(5o
*>(5o
*:(6o
*>(6o
*:(7o
*>(7o
*:(8o
*>(8o
*:(9o
*>(9o
*:(:o
*>(:o
*:(;o
*>(;o
*:(<o
*>(<o
*:(=o
*>(=o
*:(>o
*>(>o
*:(?o
*>(?o
*:(@o
*>(@o
*:(Ao
*>(Ao
*:(Bo
*>(Bo
*:(Co
*>(Co
*:(Do
*>(Do
*:(Eo
*>(Eo
*:(Fo
*>(Fo
*:(Go
*>(Go
*:(Ho
*>(Ho
*:(Io
*>(Io
*:(Jo
*>(Jo
*:(Ko
*>(Ko
*:(Lo
*>(Lo
*:(Mo
*>(Mo
*:(No
*>(No
*:(Oo
*>(Oo
*:(Po
*>(Po
*:(Qo
*>(Qo
*:(Ro
*>(Ro
*:(So
*>(So
*:(To
*>(To
*:(Uo
*>(Uo
*:(Vo
*>(Vo
*:(Wo
*>(Wo
*:(Xo
*>(Xo
*:(Yo
*>(Yo
*:(Zo
*>(Zo
*:([o
*>([o
*:(\o
*>(\o
*:(]o
*>(]o
*:(^o
*>(^o
*:(_o
*>(_o
*:(`o
*>(`o
*:(ao
*>(ao
*:(bo
*>(bo
*:(co
*>(co
*:(do
*>(do
*:(eo
*>(eo
*:(fo
*>(fo
*:(go
*>(go
*:(ho
*>(ho
*:(io
*>(io
*:(jo
*>(jo
*:(ko
*>(ko
*:(lo
*>(lo
*:(mo
*>(mo
*:(no
*>(no
*:(oo
*>(oo
*:(po
*>(po
*:(qo
*>(qo
*:(ro
*>(ro
*:(so
*>(so
*:(to
*>(to
*:(uo
*>(uo
*:(vo
*>(vo
*:(wo
*>(wo
*:(xo
*>(xo
*:(yo
*>(yo
*:(zo
*>(zo
*:({o
*>({o
*:(|o
*>(|o
*0
(((sN(((sN(((sN(sM
	(
	(	(3	sN((( sN((!sN((;((:sN}(((?(((C(((+	(
((((
(((J(<((>(((*(((1(((@((%(( (!("(A#($(%( &('(((B)(*(5+(,(-(4.(/(0(1(2(3(84(E5(6(G7(8(9(:(=;(<(=(>(?(;@(A(:B(C(D(,E(F(G(#H(I(J("K(L(M(-N(O(!P(	Q(R(2S(T(U(9V(W(X(6Y(
Z([(3\(](^(_(`(a(Db(c(d(.e(f(g(/h(i(j($k(Hl(m(n(&o(p(q('r(s(t(0u(v(
w(7x(Iy(z({()|(FsN((("sN		(	(	(,	sN(

(
(
( 
(
(
(B
(
(5
(
	(

(4
(
(

(
(
(
(8
(E
(
(G
(
(
(
(=
(
(
(
(
(;
(
(:
(
 (
!(,
"(
#(
$(#
%(
&(
'("
sN((($(HsN(((#sN

(
(%
sN(((&sN((('sN((()sN(((*sN(E((GsN(((+((((((sN(((-sN(((=sN(((.(((/sN(((0sN(((sN(((.sN(((/sN(	((2sN((5(((4sN(((6sN((
(7(IsN(((8sN  ( ( (9 sN!!(!(!(-!(!(!!(	!(!(2!(!	(!
(9!(!(!
(6!(
!(!(3!(!(!(!sN""("(J"(<"sN##(#(#(1#sN$$($(>$sN%%(%(%(?%sN&&(&(&(?&(&(&(C&(&(&(+&	(&
(&(&((&
(&(&(J&(<&sN''('('(@'sN(((((A(sN))()()(B)sN**(*(*(C*sN++(+(+(D+sN*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*5<?xml version="1.0" ?>
<EnumObject type="PhysicalPartition" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="TableID" local="TableID" />
			<link parent="IndexID" local="IndexID" />
		</parent_link>
		<version min_major='9' >
			<property_link table="sys.partitions AS p" />
			<property_link join = "sys.indexes AS indx">p.object_id = indx.object_id and p.index_id = indx.index_id</property_link>
			<property_link left_join = "sys.destination_data_spaces AS dds">dds.partition_scheme_id = indx.data_space_id and dds.destination_id = p.partition_number</property_link>
			<property_link fields="#FileGroupName#" left_join="sys.filegroups AS fg"> fg.data_space_id = dds.data_space_id or fg.data_space_id = indx.data_space_id</property_link>
			<property_link left_join = "sys.partition_schemes AS ps">ps.data_space_id = indx.data_space_id</property_link>
			<property_link fields="#RightBoundaryValue#RangeType#" left_join="sys.partition_range_values AS prv">prv.boundary_id = p.partition_number and prv.function_id = ps.function_id</property_link>		
			<property_link fields="#RangeType#" left_join="sys.partition_functions AS pf"> pf.function_id = prv.function_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='9' >
			<property name="IndexID" type="int" hidden='true'>p.index_id</property>
			<property name="TableID" type="int" hidden='true'>p.object_id</property>
			<property name="PartitionNumber" type="int" >p.partition_number</property>
			<property name="RightBoundaryValue" type="sql_variant">prv.value</property>
			<property name="RowCount" type="float" access='Read' cast='true'>p.rows</property>
			<property name="FileGroupName" type="sysname" > fg.name</property>
			<property name="RangeType" type="int" report_type="RangeType" cast='true' >pf.boundary_value_on_right</property>
		</version>
		<version min_major='10'>
			<property name="DataCompression" type="int" report_type="DataCompressionType" >p.data_compression</property>
		</version>
		<!---->
	</properties>
</EnumObject>lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet/PADPADPkÉA9kSdDMl
dǬ4H
!L~G긕G3ѿr\ŕ\⯯ʍE.C(}X͉/l
kj:3ra7jc0VQX&\bf!gPhWn+qm6x8y{`|)A|L}`'fJj5M!Yc\]8
_	BetweenRetries@CouldNotGetInfoFromDependencyRow,CouldNotInstantiateObjC6DatabaseNameMustBeSpecifiedfFDatabaseNameMustBeSpecifiedinTheUrn*EnumObjectTagNotFoundExecuting"FailedToCreateUrn(FailedToLoadAssembly&FailedToLoadResFile8Idle$IncorectVersionTag0InvalidConfigurationFile*InvalidConnectionType InvalidSqlServer$(InvalidUrnForDependsEInvalidVersionuMissingSection,NoClassNamePostProcessNotDbObjectNotDerivedFromNotSingleDb56NullVersionOnLoadingCfgFile\$OnlyPathOrFullName4PerformingCompletionAction&PropMustBeSpecified8QueryNotSupportedPostProcess(SmoSQLCLRUnAvailable<SqlServer80NameSqlServer90NameSuspendedTooManyDbLevelsUnknown7UnknownOperator@UnknownTypeS6UnsupportedTypeDepDiscoveryg,WaitingForStepToFinish,WaitingForWorkerThreadmsDisconnectedmsNone"msPendingFailovermsSuspended+msSynchronized6msSynchronizingDrmBulkLoggedSrmFull`rmSimplefBetween retries0Failed to retrieve dependency information ({0}).!could not instantiate object {0}. Database name must be specified.3The database name must be specified in the urn: {0}%Enumeration object tag was not found.	Executing)failed to create Urn for object code: {0}failed to load assembly {0}.File {0} was not found.
The file might be missing in sources or misspelled in config.xml, or case sensitivity may not be preserved.Not runningIncorrect version tag. Configuration file is not valid.Connection type is not valid.Operation not supported on {0}..Urn is not valid for dependency discovery: {0}'Operation not supported on version {0}.0invalid configuration file: missing section {0}.&<post_process> tag missing class_name.object is not under database.{0} is not derived from {1}.%objects are not in a single database.8Version was not specified on loading configuration file.-Only Path or only FullName must be specified.Performing completion action{0} must be specified on {1}.8Cannot provide DataReader because of the properties: {0}The functionality you’re trying to execute is disabled inside SQLCLR, if you still want to execute this functionality you can try executing it inside your client application.SQL Server 2000SQL Server 2005	Suspendedtoo many database levels.UnknownUnknown operator.Unknown type: {0}.e{0} is not supported in dependency discovery. Only objects of the following types are supported: {1}.Waiting for step to finishWaiting for worker threadDisconnectedNonePending Failover	SuspendedSynchronized
SynchronizingBulk LoggedFullSimple<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7'  cloud_min_major='10' >
    <settings>
        <version min_major='7' max_major='8'>
            <property_link table="master.dbo.sysdatabases AS dtb"/>
            <property_link fields="#SpaceAvailable#" left_join="#tmplog t">t.dbname = dtb.name</property_link>
        </version>
        <version min_major='8' max_major='8'>
            <property_link fields='#DatabaseOwnershipChaining#' join='master.dbo.spt_values AS v'>v.name = 'db chaining'</property_link>
        </version>
        <version min_major='7' max_major='8'>
            <prefix fields="#SpaceAvailable#">
                create table #tmplog (dbname sysname null, log_size float null, log_space_used float null, status int)
                INSERT INTO #tmplog EXEC ('DBCC SQLPERF(LOGSPACE)')
            </prefix>
          <prefix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime)
            insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]
          </prefix>
          <postfix fields="#SpaceAvailable#">
            drop table #tmplog
          </postfix>
          <postfix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            drop table #tempbackup
          </postfix>
        </version>

      <version cloud_min_major='10'>
        <property_link table="sys.databases AS dtb"/>
        <post_process fields = '#Owner#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessUser' triggered_fields='#Sid1#'></post_process>
      </version>
      
       <version min_major='9' >
            <property_link table="master.sys.databases AS dtb"/>
            <property_link fields = '#PrimaryFilePath#'
					left_join="sys.master_files AS df">df.database_id = dtb.database_id and 1=df.data_space_id and 1 = df.file_id</property_link>
            <property_link fields = '#MirroringPartner#MirroringPartnerInstance#MirroringTimeout#MirroringRedoQueueMaxSize#MirroringRole#MirroringSafetyLevel#MirroringStatus#MirroringWitness#MirroringWitnessStatus#IsMirroringEnabled#MirroringID#MirroringRoleSequence#MirroringSafetySequence#MirroringFailoverLogSequenceNumber#'
					left_join="sys.database_mirroring AS dmi">dmi.database_id = dtb.database_id</property_link>
            <property_link fields = '#RecoveryForkGuid#DatabaseGuid#'
					left_join="sys.database_recovery_status AS drs">drs.database_id = dtb.database_id</property_link>
            <property_link fields = '#IsVarDecimalStorageFormatEnabled#'
                    left_join='#tmp_sp_db_vardecimal_storage_format as vardec'>dtb.name = vardec.dbname</property_link>
        </version>

        <!--  Change tracking info for databases exist in sys.change_tracking_databases-->
        <version min_major='10' >
            <property_link fields = '#ChangeTrackingEnabled#ChangeTrackingAutoCleanUp#ChangeTrackingRetentionPeriod#ChangeTrackingRetentionPeriodUnits#'
				left_join="sys.change_tracking_databases AS ctb">ctb.database_id = dtb.database_id </property_link>
        </version>

        <!-- Prefix and post fix fields will be defined after all the table and field links are defined-->
        <version min_major='9' >
            <prefix fields="#IsVarDecimalStorageFormatEnabled#">
                create table #tmp_sp_db_vardecimal_storage_format (dbname sysname null, vardecimal_enabled varchar(3) null)
                if exists (select o.object_id from sys.system_objects o where o.name=N'sp_db_vardecimal_storage_format')
                begin
                insert into #tmp_sp_db_vardecimal_storage_format exec sys.sp_db_vardecimal_storage_format
                end
            </prefix>
          <prefix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime)
            insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]
          </prefix>
          <postfix fields="#IsVarDecimalStorageFormatEnabled#">
            drop table #tmp_sp_db_vardecimal_storage_format
          </postfix>
          <postfix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            drop table #tempbackup
          </postfix>
        </version>
        <version min_major='7' max_major='8'>
            <post_process fields = '#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
				triggered_fields='#DatabaseName#'/>
        </version>
        <version min_major='9' max_major='9'>
            <post_process fields = '#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#IsMailHost#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
				triggered_fields='#DatabaseName#'/>
        </version>
        <version min_major='8' max_major='8'>
            <post_process fields = '#DatabaseOwnershipChaining#'
					class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
					triggered_fields='#DatabaseNameOptions#'/>
        </version>
        <version min_major='10'>
          <post_process fields = '#IsManagementDataWarehouse#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#IsMailHost#DefaultFileStreamFileGroup#'
			class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
			triggered_fields='#DatabaseName#'/>
        </version>

     
      <post_process fields = '#Collation#Version#CompatibilityLevel#CaseSensitive#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessAutoCloseProperties'
				triggered_fields='#DatabaseName2#'/>
      
    </settings>
    <properties>
        <include file='inc_urn.xml'/>
        <version min_major='7' max_major='8'>
            <property name="Name" type="sysname">dtb.name</property>
            <property name="ID" type="int" cast='true'>dtb.dbid</property>
            <property name="Owner" type="sysname" access="Read">suser_sname(dtb.sid)</property>
            <property name="CreateDate" type="datetime" access="Read">dtb.crdate</property>
            <property name="PrimaryFilePath" type="nvarchar" size='512' access="Read">rtrim(dtb.filename)</property>
            <property name="Size" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <!-- Space available = LogSize*LogFreePercent, expressed in KB, so we multiply it with 1024 !-->
            <property name="SpaceAvailable" type="float" access="Read" expensive='true'>t.log_size*(100-t.log_space_used)*10.24</property>
            <property name="DataSpaceUsage" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <property name="IndexSpaceUsage" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>0</property>
            <property name="ActiveConnections" type="int" access="Read" expensive="true">(select count(*) from master.dbo.sysprocesses p where dtb.dbid=p.dbid)</property>
            <property name="CompatibilityLevel" type="tinyint" report_type="CompatibilityLevel" expensive='true' mode="design">dtb.cmptlevel</property>
            <property name="DefaultSchema" type="sysname" expensive='true' mode="design">''</property>
            <property name="ReplicationOptions" type="int" report_type='ReplicationOptions' access = 'Read'>dtb.category</property>
            <!--IsSystemObject check by name + if it is distributor-->
            <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master','model','msdb','tempdb') then 1 else category &amp; 16 end</property>

            <!--properties imported from databaseoptions.xml-->
            <property name="AutoClose" type="bit" cast='true' mode="deploy">dtb.status &amp; &lt;msparam&gt;1&lt;/msparam&gt;</property>
            <property name="AutoShrink" type="bit" cast='true' mode="deploy">dtb.status &amp; &lt;msparam&gt;4194304&lt;/msparam&gt;</property>
        </version>

      <version cloud_min_major='10'>
        <!--IsSystemObject check by name + if it is distributor-->
        <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master') then 1 else dtb.is_distributor end</property>
        <property name="DefaultSchema" type="sysname" expensive='true'>
          (select default_schema_name from sys.database_principals where name = user_name())
        </property>       
        <property name="UserName" type="sysname" expensive='true' access='Read'>(select user_name()) </property>
        <property name="Owner" type="sysname" read_only_after_creation="true" expensive='true'>0</property>
        <property name="Sid1" type="sysname" access="Read" hidden='true'>ISNULL(convert(nvarchar(85), dtb.owner_sid, 1),N'')</property>
        <property name="IsDbAccessAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_accessadmin'))</property>
        <property name="IsDbBackupOperator" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_backupoperator'))</property>
        <property name="IsDbDatareader" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_datareader'))</property>
        <property name="IsDbDatawriter" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_datawriter'))</property>
        <property name="IsDbOwner" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_owner'))</property>
        <property name="IsDbSecurityAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_securityadmin'))</property>
        <property name="IsDbDdlAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_ddladmin'))</property>
        <property name="IsDbDenyDatareader" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_denydatareader'))</property>
        <property name="IsDbDenyDatawriter" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_denydatawriter'))</property>
        <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_owner'))</property>
        <property name="IsDbManager" type="bit" access="Read" cast='true' expensive='true'>(select isnull(is_member(N'dbmanager'), 0))</property>
        <property name="IsLoginManager" type="bit" access="Read" cast='true' expensive='true'>(select isnull(is_member(N'loginmanager'), 0))</property>
        <property name="IsUpdateable" type="bit" access="Read" cast='true'>( case dtb.is_read_only when 1 then 0 else 1 end)</property>

        
      </version>

      <version min_major='9'  cloud_min_major='10'>
        <!--Adding options property here. Earlier use to in databaseoptions.xml-->
        <property name="AnsiNullDefault" type="bit" mode="design">dtb.is_ansi_null_default_on</property>
        <property name="AnsiNullsEnabled" type="bit" mode="design">dtb.is_ansi_nulls_on</property>
        <property name="AnsiPaddingEnabled" type="bit" mode="design">dtb.is_ansi_padding_on</property>
        <property name="AnsiWarningsEnabled" type="bit" mode="design">dtb.is_ansi_warnings_on</property>
        <property name="ArithmeticAbortEnabled" type="bit" mode="design">dtb.is_arithabort_on</property>
        <property name="AutoClose" type="bit" mode="deploy">dtb.is_auto_close_on</property>
        <property name="AutoShrink" type="bit" mode="deploy">dtb.is_auto_shrink_on</property>
        <property name="CloseCursorsOnCommitEnabled" type="bit" mode="deploy">dtb.is_cursor_close_on_commit_on</property>
        <property name="ConcatenateNullYieldsNull" type="bit" mode="design">dtb.is_concat_null_yields_null_on</property>
        <property name="NumericRoundAbortEnabled" type="bit" mode="design">dtb.is_numeric_roundabort_on</property>
        <property name="QuotedIdentifiersEnabled" type="bit" mode="design">dtb.is_quoted_identifier_on</property>
        <property name="ReadOnly" type="bit" mode="design">dtb.is_read_only</property>
        <property name="RecursiveTriggersEnabled" type="bit" mode="design">dtb.is_recursive_triggers_on</property>
        <property name="LocalCursorsDefault" type="bit" mode="design">dtb.is_local_cursor_default</property>
        <property name="PageVerify" type="tinyint" report_type = 'PageVerify' mode="design">dtb.page_verify_option</property>
        <property name="RecoveryModel" type="int" report_type="RecoveryModel" mode="deploy">dtb.recovery_model</property>
        <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess' mode="deploy">dtb.user_access</property>
        <property name="SnapshotIsolationState" type="tinyint" report_type="SnapshotIsolationState" access="Read">dtb.snapshot_isolation_state</property>
        <property name="IsReadCommittedSnapshotOn" type="bit" mode="deploy">dtb.is_read_committed_snapshot_on</property>
        <property name="DatabaseOwnershipChaining" type="bit" mode="deploy">dtb.is_db_chaining_on</property>
        <property name="AutoUpdateStatisticsAsync" type="bit" mode="deploy">dtb.is_auto_update_stats_async_on</property>
        <property name="DateCorrelationOptimization" type="bit" mode="deploy">dtb.is_date_correlation_on</property>
        <property name="BrokerEnabled" type="bit">dtb.is_broker_enabled</property>
        <property name="Trustworthy" type="bit" mode="design">dtb.is_trustworthy_on</property>
        <property name="Name" type="sysname">dtb.name</property>
        <property name="ID" type="int">dtb.database_id</property>
        <property name="CreateDate" type="datetime" access="Read">dtb.create_date</property>
        <property name="IsFullTextEnabled" type="bit">dtb.is_fulltext_enabled</property>
        <property name="Collation" type="sysname" expensive='true' mode="design">dtb.collation_name</property>
        <!--database view-->       
        <property name="IsDatabaseSnapshot" type="bit" cast='true' access='Read'>isnull(dtb.source_database_id, 0)</property>
        <property name="IsDatabaseSnapshotBase" type="bit" cast='true' access='Read' expensive='true'>(select count(1) from sys.databases dtbmir where dtbmir.source_database_id = dtb.database_id)</property>
        <property name="DatabaseSnapshotBaseName" type="sysname" read_only_after_creation="true">ISNULL(DB_NAME(dtb.source_database_id), N'')</property>
        <property name="AutoCreateStatisticsEnabled" type="bit" mode="deploy">dtb.is_auto_create_stats_on</property>
        <property name="AutoUpdateStatisticsEnabled" type="bit" mode="deploy">dtb.is_auto_update_stats_on</property>
        <property name="IsParameterizationForced" type="bit" mode="deploy">dtb.is_parameterization_forced</property>
        <property name="CompatibilityLevel" type="tinyint" report_type="CompatibilityLevel" expensive='true' mode="design">dtb.compatibility_level</property>
        <property name="ReplicationOptions" type="int"  report_type='ReplicationOptions' access = 'Read'>(dtb.is_published*1+dtb.is_subscribed*2+dtb.is_merge_published*4)</property>
        <property name="ServiceBrokerGuid" type="uniqueidentifier" access='Read'>dtb.service_broker_guid</property>
      </version>
      
          <version min_major='9'>
            <property name="MirroringRedoQueueMaxSize" type="int" access="read">ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0)</property>
            <property name="MirroringTimeout" type="int">ISNULL(dmi.mirroring_connection_timeout,0)</property>



            <property name="Owner" type="sysname" access="Read">suser_sname(dtb.owner_sid)</property>
            <property name="PrimaryFilePath" type="nvarchar" size='520' access="Read" expensive='true'>df.physical_name</property>
            <property name="Size" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="SpaceAvailable" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="DataSpaceUsage" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="IndexSpaceUsage" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>0</property>
            <property name="ActiveConnections" type="int" access="Read" expensive="true">(select count(*) from master.dbo.sysprocesses p where dtb.database_id=p.dbid)</property>
            <property name="DefaultSchema" type="sysname" expensive='true' mode="design">''</property>
            <property name="DefaultFullTextCatalog" type="sysname" expensive='true'>ISNULL((select top 1 ftc.name from sys.fulltext_catalogs as ftc where ftc.is_default=1),N'')</property>
            <property name="IsMailHost" type="bit" expensive='true' access='Read'>0</property>


            <property name="IsVarDecimalStorageFormatEnabled" type="bit" expensive="true" mode="deploy">
                case
                when vardec.vardecimal_enabled = 'ON' then cast(1 as bit)
                else cast(0 as bit)
                end
            </property>

 
            <!--database mirroring-->
            <property name='MirroringPartner' type='nvarchar' size = '128'
											>ISNULL(dmi.mirroring_partner_name,'')</property>
            <property name='MirroringPartnerInstance' type='nvarchar' size = '128' access='Read'
											>ISNULL(dmi.mirroring_partner_instance,'')</property>
            <property name='MirroringRole' type='tinyint' report_type = 'MirroringRole'
                                                  access='Read'>ISNULL(dmi.mirroring_role,0)</property>
            <property name='MirroringSafetyLevel' type='int' report_type = 'MirroringSafetyLevel'
											>ISNULL(dmi.mirroring_safety_level + 1, 0)</property>
            <property name='MirroringStatus' type='tinyint' report_type = 'MirroringStatus'
											access='Read'>ISNULL(dmi.mirroring_state + 1, 0)</property>
            <property name='MirroringWitness' type='nvarchar' size = '128'
											>ISNULL(dmi.mirroring_witness_name,'')</property>
            <property name='MirroringWitnessStatus' type='int' report_type = 'MirroringWitnessStatus'
											access='Read'>ISNULL(dmi.mirroring_witness_state + 1, 0)</property>
            <property name='IsMirroringEnabled' type='bit' cast='true'
											access='Read'>case when dmi.mirroring_partner_name is null then 0 else 1 end</property>
            <property name='MirroringID' type='uniqueidentifier'
											access='Read'>ISNULL(dmi.mirroring_guid,'00000000-0000-0000-0000-0000000000000000')</property>
            <property name='MirroringRoleSequence' type='int'
											access='Read'>ISNULL(dmi.mirroring_role_sequence,0)</property>
            <property name='MirroringSafetySequence' type='int'
											access='Read'>ISNULL(dmi.mirroring_safety_sequence,0)</property>
            <property name='MirroringFailoverLogSequenceNumber' type='numeric'
											access='Read'>ISNULL(dmi.mirroring_failover_lsn,0)</property>




            <!-- Database state, a mask of:
				DatabaseStatus enum
				Normal			= 0x000001
				Restoring		= 0x000002
				RecoveryPending = 0x000004
				Recovering		= 0x000008
				Suspect			= 0x000010
				Offline			= 0x000020
				Standby			= 0x000040
				Shutdown		= 0x000080 ,Shutdown is not applicable for 2005 and above
				EmergencyMode	= 0x000100
                AutoClosed      = 0x000200  

				state column				
				0 = ONLINE
				1 = RESTORING
				2 = RECOVERING
				3 = RECOVERY_PENDING
				4 = SUSPECT	
				5 = EMERGENCY
				6 = OFFLINE

                NULL collation means AutoClosed status. -->        
		
        <property name="Status" type="int" report_type="DatabaseStatus" access="Read">
            case
            when dtb.collation_name is null then 0x200
            else 0
            end |
            case
            when 1 = dtb.is_in_standby then 0x40
            else 0
            end |
            case dtb.state
            when 1 then 0x2
            when 2 then 0x8
            when 3 then 0x4
            when 4 then 0x10
            when 5 then 0x100
            when 6 then 0x20
            else 1
            end
          </property>

            <property name="RecoveryForkGuid" type="uniqueidentifier" access='Read'>drs.recovery_fork_guid</property>
            <property name="DatabaseGuid" type="uniqueidentifier" access='Read'>drs.database_guid</property>
            <!--IsSystemObject check by name + if it is distributor-->
            <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end</property>
            <property name='LogReuseWaitStatus' type='tinyint' report_type = 'LogReuseWaitStatus'
                      access='Read'>ISNULL(dtb.log_reuse_wait,0)</property>

          </version>

        <version min_major='10' >
            <property name="DefaultFileStreamFileGroup" type="sysname" expensive='true' access='Read'>N''</property>
            <property name="IsManagementDataWarehouse" type="bit" access="Read" cast='true' expensive='true'>0</property>
        </version>
        <!-- Change Tracking properties-->
        <version min_major='10'>
            <property name="ChangeTrackingEnabled" type="bit" cast='true' mode="deploy">case when ctb.database_id is null then 0 else 1  end</property>
            <property name="ChangeTrackingAutoCleanUp" type="bit" cast='true' mode="deploy">ISNULL(ctb.is_auto_cleanup_on,0)</property>
            <property name="ChangeTrackingRetentionPeriod" type="int" mode="deploy">ISNULL(ctb.retention_period,0)</property>
            <property name="ChangeTrackingRetentionPeriodUnits" type="tinyint" cast='true' report_type ='RetentionPeriodUnits' mode="deploy">ISNULL(ctb.retention_period_units,0)</property>
        </version>

        <!-- DATABASEPROPERTY obtained properties -->
        <version min_major='8' max_major='8'>
            <property name="IsFullTextEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsFulltextEnabled')</property>
            <property name="Collation" type="sysname" cast='true' expensive='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'Collation')</property>
        </version>

        <!-- common to 8.0 and 7.0  see above for meanings of the bits we are ORing together here -->
        <version min_major='7' max_major='8'>
            <property name="Status" type="int" report_type="DatabaseStatus" access="Read">
                case
                -- if all these are false then we are in the Normal state
                -- except some return NULL if it's AutoClosed
                when (DATABASEPROPERTY(dtb.name,'IsInLoad') = 0 and
                (DATABASEPROPERTY(dtb.name,'IsInRecovery') = 0 or DATABASEPROPERTY(dtb.name,'IsInRecovery') is null) and
                (DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 0 or DATABASEPROPERTY(dtb.name,'IsNotRecovered') is null) and
                DATABASEPROPERTY(dtb.name,'IsSuspect') = 0 and
                DATABASEPROPERTY(dtb.name,'IsOffline') = 0 and
                DATABASEPROPERTY(dtb.name,'IsInStandBy') = 0 and
                (DATABASEPROPERTY(dtb.name,'IsShutDown') = 0 or DATABASEPROPERTY(dtb.name,'IsShutDown') is null) and
                DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 0) then 1
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsInLoad') = 1 then 2
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 and
                DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 1 then 4
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 then 8
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsSuspect') = 1 then 16
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsOffline') = 1 then 32
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsInStandBy') = 1 then 64
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsShutDown') = 1 then 128
                when DATABASEPROPERTY(dtb.name,'IsShutDown') is null then (512 + 128)
                else 0
                end |
                case
                when DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 1 then 256
                else 0
                end
            </property>


        </version>

        <!--properties imported from databaseoptions.xml-->
        <version min_major='8' max_major='8'>
            <property name="AnsiNullDefault" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiPaddingEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled')</property>
            <property name="ArithmeticAbortEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled')</property>
            <property name="AutoCreateStatisticsEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatisticsEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="ConcatenateNullYieldsNull" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsNullConcat')</property>
            <property name="NumericRoundAbortEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="ReadOnly" type="bit" cast='true' mode="design">DATABASEPROPERTY(dtb.name, 'IsReadOnly')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="PageVerify" type="tinyint" report_type = 'PageVerify' mode="design">CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END</property>
            <property name="RecoveryModel" type="int"
				report_type="RecoveryModel" mode="deploy">CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END</property>
            <property name="UserAccess" type="int"
				report_type = 'DatabaseUserAccess' mode="deploy">CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END</property>
            <property name="DatabaseOwnershipChaining" type="bit" cast='true' expensive='true' mode="deploy">
                case when (dtb.status2 &amp; v.number != 0) then 1 else 0 end
            </property>
            <property name="DatabaseNameOptions" type="sysname" hidden='true'>dtb.name</property>

        </version>

      <version min_major ='8' max_major='8'>
        <property name="CaseSensitive" type="bit" access="Read" cast='true' expensive='true'>CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255)))</property>
      </version>
      
      <version min_major='9' cloud_min_major='10' >
        <property name="CaseSensitive" type="bit" access="Read" cast='true' expensive='true'>CHARINDEX(N'_CS_', dtb.collation_name)</property>
      </version>
      
        <version min_major='8' >
            <property name="IsUpdateable" type="bit" access="Read" cast='true'>( case LOWER(convert( nvarchar(128), DATABASEPROPERTYEX(dtb.name, 'Updateability'))) when 'read_write' then 1 else 0 end)</property>
            <property name="Version" type="int" access="Read" cast='true' expensive='true'>DATABASEPROPERTYEX(dtb.name, 'Version')</property>
        </version>
        <version min_major='7' max_major='7'>
            <property name="IsFullTextEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name,'IsFulltextEnabled')</property>
        </version>

        <version min_major='10' cloud_min_major = '10'>
            <property name="EncryptionEnabled" type="bit" cast="true">dtb.is_encrypted</property>
            <property name="HonorBrokerPriority" type="bit" cast="true">dtb.is_honor_broker_priority_on</property>
        </version>

      <version min_major='7'>
        <!--common in all versions -->
        <property name="IsDbAccessAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbBackupOperator" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDatareader" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDatawriter" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbOwner" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbSecurityAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDdlAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDenyDatareader" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDenyDatawriter" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="UserName" type="sysname" expensive='true' access='Read'>''</property>

        <property name="DefaultFileGroup" type="sysname" expensive='true' access='Read'>N''</property>
        <property name="DatabaseName" type="sysname" hidden='true'>dtb.name</property>
        <property name="IsAccessible" type="bit" cast='true' access = 'Read'>has_dbaccess(dtb.name)</property>
        <property name="LastLogBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;L&lt;/msparam&gt; and database_name = dtb.name)</property>
        <property name="LastBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;D&lt;/msparam&gt; and database_name = dtb.name)</property>
        <property name="LastDifferentialBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;I&lt;/msparam&gt; and database_name = dtb.name)</property>

      </version>

      <!--common in all versions -->
      <property name="DatabaseName2" type="sysname" hidden='true'>dtb.name</property>

      <version min_major='10'>
            <include file='inc_policy_health_state.xml'/>
        </version>
    </properties>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>0</property>
    <property name="ExtPropMajorID" type="int" hidden='true'>0</property>
    <property name="ExtPropMinorID" type="int" hidden='true'>0</property>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FileGroup" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysfilegroups AS g' />
			<prefix fields="#Size#">declare @PageSize float select @PageSize=v.low/1024.0 from master..spt_values v 
				where v.number=1 and v.type='E'
			</prefix>
		</version>
		<version min_major='9' >
			<property_link table='sys.filegroups AS g' />
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">g.groupname</property>
			<property name="ID" type="int" cast='true'>g.groupid</property>
			<property name="ReadOnly" type="bit" cast='true'>g.status &amp; 0x08</property>
			<property name="IsDefault" type="bit" cast='true'>g.status &amp; 0x10</property>
			<!-- return 0 if it has no files -->
			<property name="Size" type="float" access="Read" cast='true'>ISNULL((select sum(s.size * @PageSize) from dbo.sysfiles s where s.groupid = g.groupid), 0)</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname" cast='true'>cast(g.name as varbinary(256))</property>
			<property name="ID" type="int">g.data_space_id</property>
			<property name="ReadOnly" type="bit">g.is_read_only</property>
			<property name="IsDefault" type="bit" cast='true'>g.is_default</property>
			<!-- return 0 if it has no files -->
			<property name="Size" type="float" cast='true'>ISNULL((select sum(cast(gs.size as float))*convert(float,8) from sys.database_files gs where gs.data_space_id = g.data_space_id), 0)</property>
		</version>
		<version min_major='10' >		
			<property name="IsFileStream" type="bit" cast='true' read_only_after_creation="true">CASE WHEN 'FD'=g.type THEN 1 ELSE 0 END</property>
      <include file='inc_policy_health_state.xml'/>
    </version>
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="GroupID" />
		</parent_link>

		<version min_major='9' max_major='9'>
			<property_link table="sys.master_files AS s">s.type = 0 and s.database_id = db_id() and (s.drop_lsn IS NULL)</property_link>
		</version>
		<version min_major='10' >
			<property_link table="sys.master_files AS s">(s.type = 2 or s.type = 0) and s.database_id = db_id() and (s.drop_lsn IS NULL)</property_link>
		</version>

        <version min_major='9' >
            <property_link fields='#NumberOfDiskReads#NumberOfDiskWrites#BytesReadFromDisk#BytesWrittenToDisk#' left_join='sys.dm_io_virtual_file_stats(default, default) AS fs'>fs.database_id = s.database_id AND fs.file_id = s.file_id</property_link>
        </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_DbFile.xml'/>

		<!-- undocumented: using file id == 1 in place of slow FILEPROPERTY(s.name, N'IsPrimaryFile') see #441694 -->
		<version min_major='7' max_major='8'>
			<property name="IsPrimaryFile" type="bit" cast='true' read_only_after_creation="true">CASE s.fileid WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="UsedSpace" type="float" access='Read' cast='true'>CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8)</property>
      <property name="AvailableSpace" type="float" access='Read'>
        <link_multiple no='2' expression=" {0} - {1} ">
          <link_field type='local' field="Size" />
          <link_field type='local' field="UsedSpace" />
        </link_multiple>
      </property>
    </version>
		<version min_major='9'>
			<property name="IsPrimaryFile" type="bit" cast='true' read_only_after_creation="true">CASE s.file_id WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="UsedSpace" type="float" access='Read' cast='true'>CASE s.type WHEN 2 THEN 0 ELSE CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8) END</property>
      <property name="AvailableSpace" type="float" access='Read'>
        <link_multiple no='2' expression=" CASE s.type WHEN 2 THEN 0 ELSE ({0} - {1})  END ">
          <link_field type='local' field="Size" />
          <link_field type='local' field="UsedSpace" />
        </link_multiple>
      </property>
		</version>
		<version min_major='10'>
			<include file='inc_policy_health_state.xml'/>
    </version>
	</properties>
</EnumObject>
5<?xml version="1.0" ?>
<EnumObject type="LogFile" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<include file='inc_DbFile.xml' />
			<property_link>s.groupid = 0</property_link>
		</version>
		<version min_major='9' >
			<property_link table="sys.master_files AS s">s.type = 1 and s.database_id = db_id()</property_link>
            <property_link fields='#NumberOfDiskReads#NumberOfDiskWrites#BytesReadFromDisk#BytesWrittenToDisk#' join='sys.dm_io_virtual_file_stats(default, default) AS fs'>fs.database_id = s.database_id AND fs.file_id = s.file_id</property_link>
        </version>
    </settings>
    <properties>
		<include file='inc_urn.xml' />
		<version min_major='9' >
			<include file='inc_DbFile.xml' />
		</version>
		<property name="UsedSpace" type="float" access='Read' expensive="true">CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8)</property>
    <version min_major ="10">
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
	<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="Audit" impl_type="SqlObject" min_major="10">
	<settings>
		<property_link table='sys.server_audits AS au'></property_link>
		<property_link fields='#FileName#MaximumFileSize#ReserveDiskSpace#MaximumRolloverFiles#' left_join='sys.server_file_audits AS fileau'>fileau.audit_id = au.audit_id AND fileau.audit_guid = au.audit_guid</property_link>
        <property_link fields='#Owner#' left_join='sys.server_principals as p'>au.principal_id = p.principal_id</property_link>
		<post_process fields = '#MaximumFileSize#MaximumFileSizeUnit#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessAuditProperties'
				triggered_fields='#MaximumFileSizeInMegaBytes#'/>
	</settings>
	<properties>
        <include file='inc_urn.xml' />
		<property name='Name' type='sysname'>au.name</property>
		<property name='ID' type='int' access='Read'>au.audit_id</property>
        <property name='DestinationType' type='tinyint' report_type='AuditDestinationType'>case when au.type='FL' then 0 when au.type='SL' then 1 when au.type='AL' then 2 end</property>
        <property name='QueueDelay' type='int'>au.queue_delay</property>
        <property name='OnFailure' type='tinyint' report_type='OnFailureAction'>au.on_failure</property>
        <property name='Enabled' type='bit' access='Read'>au.is_state_enabled</property>
        <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' read_only_after_creation='true'>au.audit_guid</property>
        <property name='CreateDate' type='datetime' access='Read'>au.create_date</property>
        <property name='DateLastModified' type='datetime' access='Read'>au.modify_date</property>
        <property name='FilePath' type='sysname'>ISNULL(log_file_path,'')</property>
        <property name='FileName' type='sysname' access='Read'>ISNULL(log_file_name,'')</property>
        <property name='MaximumFileSizeInMegaBytes' type='bigint' hidden='true'>ISNULL(fileau.max_file_size,0)</property>
		<property name='MaximumFileSize' type='int'>0</property>
		<property name='MaximumFileSizeUnit' type='tinyint' report_type='AuditFileSizeUnit'>0</property>
		<property name='ReserveDiskSpace' type='bit'>ISNULL(fileau.reserve_disk_space, 0)</property>
        <property name='MaximumRolloverFiles' type='bigint'>ISNULL(fileau.max_rollover_files, 0)</property>
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>
<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ServerAuditSpecification" impl_type="SqlObject" min_major="10">
    <settings>
        <property_link table='sys.server_audit_specifications AS sas'></property_link>
        <property_link fields='#AuditName#' left_join='sys.server_audits AS au'>sas.audit_guid = au.audit_guid</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='sysname'>sas.name</property>
        <property name='ID' type='int' access='Read'>sas.server_specification_id</property>
        <property name='Enabled' type='bit' access='Read'>sas.is_state_enabled</property>
        <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' access='Read'>sas.audit_guid</property>
        <property name='AuditName' type='sysname'>ISNULL(au.name, '')</property>
        <property name='CreateDate' type='datetime' access='Read'>sas.create_date</property>
        <property name='DateLastModified' type='datetime' access='Read'>sas.modify_date</property>
        <include file='inc_policy_health_state.xml'/>
    </properties>
</EnumObject><?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ServerAuditSpecificationDetail" impl_type="SqlObject" min_major="10">
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table="sys.server_audit_specification_details AS details"></property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='1' expression="{0} + '/ServerAuditSpecificationDetail'">
        <link_field type='parent' field="Urn" />
      </link_multiple>
    </property>
    <property name="ParentID" type="int">details.server_specification_id</property>
    <property name="AuditActionType" type="char" size="4">details.audit_action_name</property>
    <property name="ObjectClass" type="sysname">''</property>
    <property name="ObjectSchema" type="sysname">''</property>
    <property name="ObjectName" type="sysname">''</property>
    <property name="Principal" type="sysname">''</property>
  </properties>
</EnumObject><?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="DatabaseAuditSpecification" impl_type="SqlObject" min_major="10">
    <settings>
        <property_link table='sys.database_audit_specifications AS das'></property_link>
        <property_link fields='#AuditName#' left_join='sys.server_audits AS au'>das.audit_guid = au.audit_guid</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='sysname'>das.name</property>
        <property name='ID' type='int' access='Read'>das.database_specification_id</property>
        <property name='Enabled' type='bit' access='Read'>das.is_state_enabled</property>
        <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' access='Read'>das.audit_guid</property>
        <property name='AuditName' type='sysname'>ISNULL(au.name, '')</property>
        <property name='CreateDate' type='datetime' access='Read'>das.create_date</property>
        <property name='DateLastModified' type='datetime' access='Read'>das.modify_date</property>
        <property name='DatabaseName' type='sysname' access='Read'>db_name()</property>
        <include file='inc_policy_health_state.xml'/>
    </properties>
</EnumObject>.<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="DatabaseAuditSpecificationDetail" impl_type="SqlObject" min_major="10">
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table="sys.database_audit_specification_details AS details"></property_link>
    <property_link fields="#ObjectSchema#ObjectName#" left_join="sys.all_objects AS o">details.is_group = 0 and o.object_id = details.major_id and details.class_desc != 'SCHEMA' and details.class_desc != 'DATABASE'</property_link>
    <property_link fields="#ObjectName#" left_join="sys.schemas as sch">details.is_group = 0 and sch.schema_id = details.major_id and details.class_desc = 'SCHEMA'</property_link>
    <property_link fields="#Principal#" left_join="sys.database_principals as p">details.is_group = 0 and p.principal_id = details.audited_principal_id</property_link>
    <property_link fields="#ObjectClass#" left_join="sys.securable_classes as s">details.is_group = 0 and s.class = details.class</property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='1' expression="{0} + '/DatabaseAuditSpecificationDetail'">
        <link_field type='parent' field="Urn" />
      </link_multiple>
    </property>
    <property name="ParentID" type="int">details.database_specification_id</property>
    <property name="AuditActionType" type="sysname">details.audit_action_name</property>
    <property name="ObjectClass" type="sysname">ISNULL(case when s.class_desc != 'DATABASE' and s.class_desc != 'SCHEMA' then 'OBJECT' else s.class_desc end,'')</property>
    <property name="ObjectSchema" type="sysname">ISNULL(SCHEMA_NAME(o.schema_id), '')</property>
    <property name="ObjectName" type="sysname">ISNULL(case when details.is_group = 0 and details.class_desc = 'DATABASE' then db_name() when details.class_desc = 'SCHEMA' then sch.name else o.name end,'')</property>
    <property name="Principal" type="sysname">ISNULL(p.name, '')</property>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Role" impl_type="SqlObject" min_major='7' >
	<settings distinct='true'>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.spt_values v1'>
				v1.low=0 and v1.type='SRV'
			</property_link>
		</version>
		<version min_major='9' >
			<property_link table = 'sys.server_principals r'>
				r.type ='R'
			</property_link>
			<property_link fields = '#Number#' table = 'master.dbo.spt_values v1'>
				v1.name = r.name and v1.low = 0
			</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>Role</property>
		<version min_major='7' max_major='8'>
			<property name="Name" type="nvarchar" size="250">v1.name</property>
			<property name="Description" type="nvarchar" size="250" table="master.dbo.spt_values v2" link="v2.low=-1 and v2.type='SRV' and v1.number=v2.number">v2.name</property>
			<property name="Number" type="int" hidden="true">v1.number</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname">r.name</property>
			<property name="ID" type="int">r.principal_id</property>
			<property name="Description" type="nvarchar" size="250">N''</property>
			<property name="Number" type="int" hidden="true">v1.number</property>
			
			<!-- enable permissions -->
			<property name="PermissionClass" type="int" hidden='true'>101</property>
		</version>
	</properties>
</EnumObject>
;<?xml version="1.0" ?>
<EnumObject type="Login" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.syslogins AS log' />
			<property_link fields="#LanguageAlias#" left_join="master.dbo.syslanguages AS l">log.language = l.name</property_link>
		</version>
    <version min_major='9' >
      <property_link table='sys.server_principals AS log'>log.type in ('U', 'G', 'S', 'C', 'K') AND log.principal_id not between 101 and 255 AND log.name &lt;&gt; N'##MS_AgentSigningCertificate##'</property_link>
      <property_link fields="#LanguageAlias#" left_join="sys.syslanguages AS l">l.name = log.default_language_name</property_link>
      <property_link fields="#PasswordPolicyEnforced#PasswordExpirationEnabled#"
					left_join="sys.sql_logins" alias = 'sqllog'>sqllog.principal_id = log.principal_id</property_link>
      <property_link fields="#DenyWindowsLogin#WindowsLoginAccessType#HasAccess#" left_join="sys.server_permissions AS sp">sp.grantee_principal_id = log.principal_id and sp.type = N'COSQ'</property_link>
      <property_link fields="#Certificate#" left_join="master.sys.certificates AS cert">cert.sid = log.sid</property_link>
      <property_link fields="#AsymmetricKey#" left_join="master.sys.asymmetric_keys AS ak">ak.sid = log.sid</property_link>
      <property_link fields="#Credential#" left_join="sys.credentials AS c">c.credential_id = log.credential_id</property_link>
    </version>
    <version cloud_min_major='10'>
      <property_link table='sys.sql_logins AS sqllog'>sqllog.type in ('S')</property_link>
      <property_link fields="#LanguageAlias#" left_join="sys.syslanguages AS l">l.name = sqllog.default_language_name</property_link>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">log.loginname</property>
			<property name="Language" type="sysname">ISNULL(log.language, N'')</property>
			<property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
			<property name="DefaultDatabase" type="sysname">ISNULL(log.dbname,N'')</property>
			<property name="DenyWindowsLogin" type="bit" cast='true'>log.denylogin</property>
			<property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN 0 &lt;&gt; log.isntuser THEN 0 WHEN 0 &lt;&gt; log.isntgroup THEN 1 ELSE 2 END</property>
			<property name="WindowsLoginAccessType" type="int" report_type="WindowsLoginAccessType" access='Read'>CASE WHEN (0 = log.isntuser AND 0 = log.isntgroup) THEN 99 WHEN (0 = log.denylogin and 0 = log.hasaccess) THEN 0 WHEN (0 = log.denylogin ) THEN 1 ELSE 2 END</property>
			<property name="HasAccess" type="bit" access='Read' cast='true'>log.hasaccess</property>
			<property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">log.sid</property>
			<property name="CreateDate" type="datetime" access='Read'>log.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>log.updatedate</property>
			<property name="IsSystemObject" type="bit" cast='true' access='Read'>CASE log.sid WHEN 0x01 THEN 1 ELSE 0 END</property>
		</version>

    <version min_major='9' >
      <property name="Name" type="sysname">log.name</property>
      <property name="Language" type="sysname">ISNULL(log.default_language_name,N'')</property>
      <property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
      <property name="DefaultDatabase" type="sysname">ISNULL(log.default_database_name, N'')</property>
      <property name="DenyWindowsLogin" type="bit" cast='true'>CASE sp.state WHEN N'D' THEN 1 ELSE 0 END</property>
      <property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN N'U' = log.type THEN 0 WHEN N'G' = log.type THEN 1 WHEN N'S' = log.type THEN 2 WHEN N'C' = log.type THEN 3 WHEN N'K' = log.type THEN 4 END</property>
      <property name="WindowsLoginAccessType" type="int" report_type="WindowsLoginAccessType" access='Read'>CASE WHEN (N'U' != log.type AND N'G' != log.type) THEN 99 WHEN (sp.state is null) THEN 0 WHEN (N'G'=sp.state) THEN 1 ELSE 2 END</property>
      <property name="HasAccess" type="bit" access='Read' cast='true'>CASE WHEN (sp.state is null) THEN 0 ELSE 1 END</property>
      <property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">log.sid</property>
      <property name="CreateDate" type="datetime" access='Read'>log.create_date</property>
      <property name="DateLastModified" type="datetime" access='Read'>log.modify_date</property>
      <property name="IsLocked" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsLocked')</property>
      <property name="IsPasswordExpired" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsExpired')</property>
      <property name="MustChangePassword" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsMustChange')</property>
      <property name="ID" type="int" access='Read'>log.principal_id</property>
      <property name="Credential" type="sysname">ISNULL(c.name,N'')</property>
      <property name="Certificate" type="sysname" read_only_after_creation="true">ISNULL(cert.name,N'')</property>
      <property name="AsymmetricKey" type="sysname" read_only_after_creation="true">ISNULL(ak.name,N'')</property>
      <property name="IsDisabled" type="bit" access="Read">log.is_disabled</property>
      

      <!-- enable permissions -->
      <property name="IsSystemObject" type="bit" cast='true' access='Read'>CASE WHEN log.principal_id &lt; 256 THEN 1 ELSE 0 END</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <!-- enable permissions -->
      <property name="PermissionClass" type="int" hidden='true'>101</property>      
      <property name="PasswordExpirationEnabled" type="bit" cast = "true">sqllog.is_expiration_checked</property>
      <property name="PasswordPolicyEnforced" type="bit" cast = "true" >sqllog.is_policy_checked</property>
    </version>
    <version cloud_min_major='10'>
      <property name="Name" type="sysname">sqllog.name</property>
      <property name="Language" type="sysname">ISNULL(sqllog.default_language_name,N'')</property>
      <property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
      <property name="DefaultDatabase" type="sysname">ISNULL(sqllog.default_database_name, N'')</property>
      <property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN N'S' = sqllog.type THEN 2 END</property>
      <property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">sqllog.sid</property>
      <property name="CreateDate" type="datetime" access='Read'>sqllog.create_date</property>
      <property name="DateLastModified" type="datetime" access='Read'>sqllog.modify_date</property>
      <property name="ID" type="int" access='Read'>sqllog.principal_id</property>
      <property name="IsDisabled" type="bit" access="Read" cast ="true">sqllog.is_disabled</property>
      
      <property name="IsSystemObject" type="bit" cast='true' access='Read'>0</property>
    </version>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
A<?xml version="1.0" ?>
<EnumObject type="DatabaseMapping" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="Name" local="LoginName" />
		</parent_link>
		<property_link table = '#loginmappings AS logmap'/>
		<prefix>
create table #loginmappings( LoginName sysname NULL, DBName sysname NULL, UserName sysname NULL, AliasName sysname NULL )
declare @db_name nvarchar(512)
declare crs cursor local fast_forward
	</prefix>
		<version min_major = '7' max_major = '8'>
			<prefix> 
	for ( select name from master.dbo.sysdatabases where 1 = has_dbaccess(name)) 
			</prefix>
		</version>
		<version min_major = '9'>
			<prefix> 
	for ( select name from sys.databases where 1 = has_dbaccess(name)) 
			</prefix>
		</version>
	<prefix>
open crs 
fetch crs into @db_name
while @@fetch_status &gt;= 0 
begin 
	set @db_name = quotename(@db_name)
		</prefix>
		<version min_major = '7' max_major = '8'>
			<prefix> 
	exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from dbo.sysusers u where suser_sname(u.sid) is not null')
			</prefix>
		</version>
		<version min_major = '9'>
			<prefix> 
	exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from sys.database_principals AS u where suser_sname(u.sid) is not null')
			</prefix>
		</version>
		<prefix> 
	fetch crs into @db_name
end 
close crs
deallocate crs
		</prefix>
		<postfix>
drop table #loginmappings
		</postfix>
	</settings>
	<properties>
		<property name="LoginName" type="sysname" access="Read">logmap.LoginName</property>
		<property name="DBName" type="sysname" access="Read">logmap.DBName</property>
		<property name="UserName" type="sysname" access="Read">logmap.UserName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="User" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link 
				table = 'dbo.sysusers AS u'>((u.issqlrole != &lt;msparam&gt;1&lt;/msparam&gt; and u.isapprole != &lt;msparam&gt;1&lt;/msparam&gt; ) or (u.sid=&lt;msparam&gt;0x00&lt;/msparam&gt;)) and u.isaliased != &lt;msparam&gt;1&lt;/msparam&gt; and u.hasdbaccess != &lt;msparam&gt;0&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table = 'sys.database_principals AS u'>u.type in ('U', 'S', 'G', 'C', 'K')</property_link>
			<property_link fields="#HasDBAccess#" left_join="sys.database_permissions AS dp">dp.grantee_principal_id = u.principal_id and dp.type = &lt;msparam&gt;CO&lt;/msparam&gt;</property_link>
    </version>
    <version min_major ="9">
      <property_link fields="#Certificate#" left_join="sys.certificates AS cert">cert.sid = u.sid</property_link>
      <property_link fields="#AsymmetricKey#" left_join="sys.asymmetric_keys AS ak">ak.sid = u.sid</property_link>
    </version>
    <version cloud_min_major='10'>
      <post_process fields = '#UserType#Login#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessUser' triggered_fields='#Sid1#'></post_process>
     </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">u.name</property>
    <version min_major='7' max_major='8'>
			<property name="ID" type="int" cast = 'true' access='Read'>u.uid</property>
			<property name="Login" type="sysname" read_only_after_creation="true" mode="design">ISNULL(suser_sname(u.sid),N'')</property>
			<property name="IsSystemObject" type="bit" access='Read'
				cast = 'true'>CASE WHEN u.uid = 1 OR u.uid = 16382 OR u.uid = 16383 THEN 1 ELSE 0 END</property>
			<property name="LoginType" type="int" report_type="LoginType" access='read'>CASE WHEN 0 &lt;&gt; u.isntuser THEN 0 WHEN 0 &lt;&gt; u.isntgroup THEN 1 ELSE 2 END</property>
            <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" mode="design">0</property>
			<property name="Sid" type="varbinary" size = "85" access='Read'>u.sid</property>
			<property name="HasDBAccess" type="bit" access='Read' cast='true'>u.hasdbaccess</property>
	
			<property name="CreateDate" type="datetime" access='Read'>u.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>u.updatedate</property>

			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>2</property>
			-->
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'USER'</property>
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="default"/>
				</link_multiple>
			</property>
		</version>			
		<version min_major='9' cloud_min_major='10'>
			<property name="ID" type="int" access='Read'>u.principal_id</property>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>CASE WHEN u.principal_id &lt; 5 OR u.principal_id = 16382 OR u.principal_id = 16383 THEN 1 ELSE 0 END</property>
			<property name="LoginType" type="int" report_type="LoginType" access='read'>CASE WHEN N'U' = u.type THEN 0 WHEN N'G' = u.type THEN 1 WHEN N'S' = u.type THEN 2 WHEN N'C' = u.type THEN 3 WHEN N'K' = u.type THEN 4 END</property>
			<property name="HasDBAccess" type="bit" access='Read' cast='true'>CASE dp.state WHEN N'G' THEN 1 WHEN 'W' THEN 1 ELSE 0 END</property>
			<property name="Sid" type="varbinary" size = "85" access='Read'>u.sid</property>
      			<property name="CreateDate" type="datetime" access='Read'>u.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>u.modify_date</property>
			<property name="DefaultSchema" type="sysname" mode="design">ISNULL(u.default_schema_name,N'')</property>
			
			<!-- extended properties support -->	
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
		</version>
    <version min_major='9'>
      <property name="Certificate" type="sysname" read_only_after_creation="true">ISNULL(cert.name,N'')</property>
      <property name="AsymmetricKey" type="sysname" read_only_after_creation="true">ISNULL(ak.name,N'')</property>
      <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" mode="design">CASE WHEN N'C' = u.type THEN 1 WHEN N'K' = u.type THEN 2 WHEN N'S' = u.type AND suser_sname(u.sid) IS NULL THEN 3 ELSE 0 END</property>
      <property name="Login" type="sysname" read_only_after_creation="true" mode="design">ISNULL(suser_sname(u.sid),N'')</property>
    </version>
    <version cloud_min_major='10'>
      <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" expensive='true'>0</property>
      <property name="Login" type="sysname" read_only_after_creation="true" expensive='true'>0</property>
      <property name="Sid1" type="nvarchar" size ="85" access='Read' hidden='true'>ISNULL(convert(nvarchar(85), u.sid, 1),N'')</property>
    </version>
		<!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysusers AS rl'>rl.issqlrole = 1</property_link>
			<property_link fields = '#Owner#' join='dbo.sysusers ou'>ou.uid = rl.altuid</property_link>
		</version>
		<version min_major='9'  cloud_min_major='10'>
			<property_link table='sys.database_principals AS rl'>rl.type = 'R'</property_link>
			<property_link fields = '#Owner#' join='sys.database_principals AS ou'>ou.principal_id = rl.owning_principal_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">rl.name</property>
    <version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>rl.uid</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.updatedate</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>2</property>			
		</version>
		<version min_major='9'  cloud_min_major='10'>
			<property name="ID" type="int">rl.principal_id</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.modify_date</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>4</property>			
		</version>
		<property name="Owner" type="sysname" mode="design">ou.name</property>
		
		<property name="IsFixedRole" type="bit" cast='true' access='Read' mode="design">
			<link_multiple no='1' expression="CASE WHEN {0} &gt; 16383 AND {0} &lt; 16400 THEN 1 ELSE 0 END">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="DatabaseUrn" type="nvarchar" size="600" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysusers AS rl'>rl.isapprole = 1</property_link>
		</version>
		<version min_major='9' >
			<property_link table='sys.database_principals AS rl'>rl.type = 'A'</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">rl.name</property>
    <version min_major='7' max_major='8'>		
			<property name="ID" type="int" cast='true'>rl.uid</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.updatedate</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>2</property>
		</version>
		<version min_major='9' >
			<property name="ID" type="int">rl.principal_id</property>
			<property name="DefaultSchema" type="sysname">rl.default_schema_name</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.modify_date</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
		</version>
		
		<property name="DatabaseUrn" type="nvarchar" size="600" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7' >
	<settings main_table="#fixdrv">
		<prefix> 
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject>"<?xml version="1.0" ?>
<EnumObject type="RemoteDrive" impl_type="SqlObject" min_major='7' >
	<settings main_table="#fixdrv">
		<prefix> 
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 1
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject>'<?xml version="1.0" ?>
<EnumObject type="RemovableDrive" impl_type="SqlObject" min_major='7' >
	<settings main_table="#fixdrv">
		<prefix>
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 2
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject>N<?xml version="1.0" ?>
<EnumObject type="CdromDrive" impl_type="SqlObject" min_major='9' >
	<settings main_table="#cdromdrv">
		<prefix>
            create table #cdromdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #cdromdrv EXECUTE master.dbo.xp_fixeddrives 3
            update #cdromdrv set Name = Name + ':'
        </prefix>
        <postfix> drop table #cdromdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7' >
	<settings main_table="#fixdrv">
		<prefix>
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL, Type sysname NULL ) 

insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 
update #fixdrv set Type = 'Fixed' where Type IS NULL 
insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 1 
update #fixdrv set Type = 'Remote' where Type IS NULL 
insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 2 
update #fixdrv set Type = 'Removable' where Type IS NULL
		</prefix>
        <version min_major='9' >
            <prefix>
                insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 3
                update #fixdrv set Type = 'CD-ROM' where Type IS NULL
            </prefix>
        </version>
        <prefix>
            update #fixdrv set Name = Name + ':'
        </prefix>
		<postfix> 
drop table #fixdrv
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
		<property name="Type" type="sysname" access="Read">Type</property>
	</properties>
</EnumObject>z<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' >
	<settings main_table="#filetmpfin">
		<prefix>
		create table #filetmpfin (Name nvarchar(255) NOT NULL, IsFile bit NULL) 
		if(@Name is null) 
		begin 
			create table #filetmp (Name nvarchar(255) NOT NULL, depth int NOT NULL, IsFile bit NULL ) 
			insert #filetmp EXECUTE master.dbo.xp_dirtree @Path, 1, 1 
			insert #filetmpfin select Name, IsFile from #filetmp f 
			drop table #filetmp 
		end 
		if(NOT @Name is null) 
		begin 
			declare @FullName nvarchar(300) 
			if(@Path is null) 
				select @FullName = @Name 
			else
				select @FullName = @Path 	+ '\' + @Name 
			create table #filetmp2 ( Exist bit NOT NULL, IsDir bit NOT NULL, DirExist bit NULL ) 
			insert #filetmp2 EXECUTE master.dbo.xp_fileexist @FullName 
			insert #filetmpfin select @Name, 1-IsDir from #filetmp2 where Exist = 1 or IsDir = 1 drop table #filetmp2 
		end
		</prefix>
		<postfix>drop table #filetmpfin</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255' access="Read">Name</property>
		<property name="FullName" type="nvarchar" size='300' access="Read">@Path+'\'+Name</property>
		<property name="Path" type="nvarchar" size='300' access="Read">@Path</property>
		<property name="IsFile" type="bit" access="Read">IsFile</property>
	</properties>
</EnumObject>
_<?xml version="1.0" ?>
<EnumObject type="Language" impl_type="SqlObject" min_major='7' >
  <settings>
    <version min_major='7' max_major='8'>
      <property_link table="master.dbo.syslanguages s" />
    </version>
    <version min_major='9'>
      <property_link table="sys.syslanguages s" />
    </version>
  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>Language</property>
		<property name="Name" type="sysname" access="ReadWrite"> s.name</property>
		<property name="LangID" type="smallint" access="Read"> s.langid</property>
		<property name="DateFormat" type="sysname" access="Read"> s.dateformat</property>
		<property name="Alias" type="sysname" access="Read"> s.alias</property>
		<property name="Days" type="sysname" access="Read"> s.days</property>
		<property name="FirstDayOfWeek" type="tinyint" access="Read"> s.datefirst</property>
		<property name="Months" type="sysname" access="Read"> s.months</property>
		<property name="ShortMonths" type="sysname" access="Read"> s.shortmonths</property>
		<property name="Upgrade" type="int" access="Read"> s.upgrade</property>
		<property name="LocaleID" type="int" access="Read"> s.lcid</property>
		<property name="MsgLangID" type="smallint" access="Read"> s.msglangid</property>
	</properties>
</EnumObject>#<?xml version="1.0" ?>
<EnumObject type="LinkedServer" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.sysservers AS srv'>srv.srvid != 0</property_link>
		</version>
        <version min_major='7' max_major='7'>
		    <property_link fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber#' join='#tmp_srvoptions' alias='so'>srv.srvid != 0 AND srv.srvname = so.srvname</property_link>
        </version>
		<version min_major='9' >
			<property_link table='sys.servers AS srv'>srv.server_id != 0</property_link>
		</version>
		<version min_major = '7' max_major='7'>
			<prefix fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber'>
                create table #tmp_srvoptions([srvname] nvarchar(255) not null, [collationcompatible] bit not null, [dataaccess] bit not null, [dist] bit not null, [dpub] bit not null, [pub] bit not null, [rpc] bit not null, [rpcout] bit not null, [sub] bit not null)
                declare @srvname nvarchar(255)
                declare @collation_compatible bit
                declare @data_access bit
                declare @dist bit
                declare @pub bit
                declare @dpub bit
                declare @rpc bit
                declare @rpc_out bit
                declare @sub bit
                create table #tmp(opt nvarchar(100))
                declare srvname_cursor cursor for
                select srvname FROM dbo.sysservers WHERE srvid &lt;&gt; 0
                open srvname_cursor
                fetch next from srvname_cursor into @srvname
                while @@FETCH_STATUS = 0
                begin
                truncate table #tmp
                insert #tmp exec sp_serveroption @srvname
                set @collation_compatible = case when exists ( select * from #tmp where opt = 'collation compatible') then 1 else 0 end
                set @data_access = case when exists ( select * from #tmp where opt = 'data access') then 1 else 0 end
                set @dist = case when exists ( select * from #tmp where opt = 'dist') then 1 else 0 end
                set @dpub = case when exists ( select * from #tmp where opt = 'dpub') then 1 else 0 end
                set @pub = case when exists ( select * from #tmp where opt = 'pub') then 1 else 0 end
                set @rpc = case when exists ( select * from #tmp where opt = 'rpc') then 1 else 0 end
                set @rpc_out = case when exists ( select * from #tmp where opt = 'rpc out') then 1 else 0 end
                set @sub = case when exists ( select * from #tmp where opt = 'sub') then 1 else 0 end
                insert into #tmp_srvoptions([srvname], [collationcompatible], [dataaccess], [dist], [dpub], [pub], [rpc], [rpcout], [sub]) values (@srvname, @collation_compatible, @data_access, @dist, @dpub, @pub, @rpc, @rpc_out, @sub)
                fetch next from srvname_cursor into @srvname
                end
                close srvname_cursor
                deallocate srvname_cursor
                drop table #tmp
			</prefix>
		    <postfix fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber#'>
                drop table #tmp_srvoptions
		    </postfix>
		</version>
		<post_process fields="#ProviderString#" class_name="Microsoft.SqlServer.Management.Smo.PostProcessCreateSqlSecureString" triggered_fields="#ProviderStringIn#" />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">srv.srvname</property>
			<property name="ID" type="int" cast='true'>srv.srvid</property>
			<property name="Catalog" type="sysname" read_only_after_creation="true">ISNULL(srv.catalog,N'')</property>
			<property name="DataSource" type="sysname" read_only_after_creation="true">ISNULL(srv.datasource,N'')</property>
			<property name="Location" type="sysname" read_only_after_creation="true">ISNULL(srv.location,N'')</property>
			<property name="ProductName" type="sysname" read_only_after_creation="true">srv.srvproduct</property>
			<property name="ProviderName" type="sysname" read_only_after_creation="true">srv.providername</property>
			<property name="ProviderStringIn" type="sysname" hidden="true">srv.providerstring</property>
			<property name="ProviderString" type="sysname" report_type="Internal.SqlSecureString" read_only_after_creation="true">null</property>
		</version>
		<version min_major='7' max_major='7'>
			<property name="CollationCompatible" type="bit" cast='true'>so.collationcompatible</property>
			<property name="DataAccess" type="bit" cast='true'>so.dataaccess</property>
			<property name="Distributor" type="bit" cast='true'>so.dist</property>
			<property name="DistPublisher" type="bit" cast='true'>so.dpub</property>
			<property name="Publisher" type="bit" cast='true'>so.pub</property>
			<property name="Rpc" type="bit" cast='true'>so.rpc</property>
			<property name="RpcOut" type="bit" cast='true'>so.rpcout</property>
			<property name="Subscriber" type="bit" cast='true'>so.sub</property>
		</version>
		<version min_major='8' max_major='8' comment='those need to be ported to 7.0, but we obtain them differently'>
			<property name="CollationCompatible" type="bit" cast='true'>srv.collationcompatible</property>
			<property name="DataAccess" type="bit" cast='true'>srv.dataaccess</property>
			<property name="Distributor" type="bit" cast='true'>srv.dist</property>
			<property name="DistPublisher" type="bit" cast='true'>srv.dpub</property>
			<property name="Publisher" type="bit" cast='true'>srv.pub</property>
			<property name="Rpc" type="bit" cast='true'>srv.rpc</property>
			<property name="RpcOut" type="bit" cast='true'>srv.rpcout</property>
			<property name="Subscriber" type="bit" cast='true'>srv.sub</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="CollationName" type="sysname" cast='true'>ISNULL(COLLATIONPROPERTYFROMID(srv.srvcollation, 'name'),N'')</property>
			<property name="ConnectTimeout" type="int">srv.connecttimeout</property>
			<property name="LazySchemaValidation" type="bit" cast='true'>srv.lazyschemavalidation</property>
			<property name="QueryTimeout" type="int">srv.querytimeout</property>
			<property name="UseRemoteCollation" type="bit" cast='true'>srv.useremotecollation</property>
		</version>
		<version min_major='9'>
			<property name="Name" type="sysname">srv.name</property>
			<property name="ID" type="int" cast='true'>srv.server_id</property>
			<property name="Catalog" type="sysname" read_only_after_creation="true">ISNULL(srv.catalog,N'')</property>
			<property name="DataSource" type="sysname" read_only_after_creation="true">ISNULL(srv.data_source,N'')</property>
			<property name="Location" type="sysname" read_only_after_creation="true">ISNULL(srv.location,N'')</property>
			<property name="ProductName" type="sysname" read_only_after_creation="true">srv.product</property>
			<property name="ProviderName" type="sysname" read_only_after_creation="true">srv.provider</property>
			<property name="CollationCompatible" type="bit" cast='true'>srv.is_collation_compatible</property>
			<property name="DataAccess" type="bit" cast='true'>srv.is_data_access_enabled</property>
			<property name="Distributor" type="bit" cast='true'>srv.is_distributor</property>
      <!-- DistPublisher defaults to 0 because we need to have this property 
           in the property bag for Yukon -->
			<property name="DistPublisher" type="bit" cast='true'>0</property>
			<property name="Publisher" type="bit" cast='true'>srv.is_publisher</property>
			<property name="Rpc" type="bit" cast='true'>srv.is_remote_login_enabled</property>
			<property name="RpcOut" type="bit" cast='true'>srv.is_rpc_out_enabled</property>
			<property name="Subscriber" type="bit" cast='true'>srv.is_subscriber</property>
			<property name="CollationName" type="sysname">ISNULL(srv.collation_name,N'')</property>
			<property name="ConnectTimeout" type="int">srv.connect_timeout</property>
			<property name="LazySchemaValidation" type="bit">srv.lazy_schema_validation</property>
			<property name="QueryTimeout" type="int">srv.query_timeout</property>
			<property name="UseRemoteCollation" type="bit">srv.uses_remote_collation</property>
			<property name="DateLastModified" type="datetime" access='Read'>srv.modify_date</property>
			<property name="ProviderStringIn" type="sysname" hidden="true">srv.provider_string</property>
			<property name="ProviderString" type="sysname" report_type="Internal.SqlSecureString" read_only_after_creation="true">null</property>
		</version>
		<version min_major='10' >
			<property name="IsPromotionofDistributedTransactionsForRPCEnabled" type="bit" cast='true'>srv.is_remote_proc_transaction_promotion_enabled</property>
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
#<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS tbl">(tbl.type='U' or tbl.type='S')</property_link>
			<property_link fields='#DataSpaceID#HasClusteredIndex#IndexID#RowCount#' join="dbo.sysindexes AS idx">idx.id = tbl.id and idx.indid &lt; 2</property_link>
		</version>
    <version min_major='9' cloud_min_major='10'>
      <property_link table="sys.tables AS tbl" />
      <property_link fields='#DataSpaceID#HasClusteredIndex#IndexID#FileStreamFileGroup#FileStreamPartitionScheme#' join="sys.indexes AS idx">idx.object_id = tbl.object_id and idx.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;</property_link>
    </version>
    <version min_major='9'>
      <property_link fields='#TextFileGroup#' left_join='sys.data_spaces AS dstext '>tbl.lob_data_space_id = dstext.data_space_id</property_link>
    </version>
    <!-- Change Tracking Properties for Table info is available in sys.change_tracking_tables-->
    <version min_major='10' >
      <property_link fields = '#ChangeTrackingEnabled#TrackColumnsUpdatedEnabled#' 
        left_join="sys.change_tracking_tables AS ctt">ctt.object_id = tbl.object_id </property_link>		
    </version>
    <version min_major='7'>
      <prefix fields='#IndexSpaceUsed#DataSpaceUsed#'>
        declare @PageSize float
        select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=&lt;msparam&gt;1&lt;/msparam&gt; and v.type=&lt;msparam&gt;E&lt;/msparam&gt;
      </prefix>
    </version>
		<special_query database = 'tempdb' query = "tbl.name not like '#%'"/>
	</settings>
	<properties>
		<include alias='tbl' file='inc_object.xml' />
        <include alias='tbl' file='inc_system_table_view_sp_udf.xml' for="#IsSystemObject#" />
		<include file='inc_objprop_table_view.xml' />
    <version min_major='7' max_major='8'>
			<property name="FakeSystemTable" type="bit" access='Read' cast='true'>CASE WHEN (OBJECTPROPERTY(tbl.id, N'tableisfake')=1) THEN 1 ELSE 0 END</property>
			<property name="DataSpaceUsed" type="float" access='Read' expensive='true'>@PageSize*((SELECT sum(sidx.dpages)
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid &lt; &lt;msparam&gt;2&lt;/msparam&gt; and sidx.id = tbl.id)
		+
		(SELECT isnull(sum(sidx.used), 0)
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid = &lt;msparam&gt;255&lt;/msparam&gt; and sidx.id = tbl.id))</property>
			<property name="IndexSpaceUsed" type="float" access='Read' expensive='true'>@PageSize*(SELECT sum(isnull(sidx.used,0)-isnull(sidx.dpages,0))
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid &lt; &lt;msparam&gt;2&lt;/msparam&gt; and sidx.id = tbl.id)</property>
			<property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.indid WHEN  1 THEN 1 ELSE 0 END</property>
			<property name="TextFileGroup" type="sysname" read_only_after_creation="true">ISNULL((SELECT top 1 s.groupname FROM dbo.sysfilegroups s, dbo.sysindexes i WHERE i.id = tbl.id and i.indid in (0,1)AND i.groupid = s.groupid), N'')</property>
			<property name="Replicated" type="bit" access='Read' cast='true'>tbl.replinfo</property>
			<property name="HasFullTextCatalog" type="bit" hidden='true' cast='true'>OBJECTPROPERTY(tbl.id, 'TableFullTextCatalogId')</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true'>idx.indid</property>
		</version>
		<version min_major='7' max_major='7'>
			<property name="RowCount" type="int" report_type2 = 'System.Int64' access='Read' cast='true'>idx.rows</property>			
		</version>
		<version min_major='8' max_major='8'>
			<property name="AnsiNullsStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.id,N'IsAnsiNullsOn')</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.id,N'IsQuotedIdentOn')</property>
			<property name="RowCount" type="bigint" access='Read' cast='true'>idx.rowcnt</property>			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'TABLE'</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
      <property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.index_id WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="Replicated" type="bit" access='Read'>tbl.is_replicated</property>
      <property name="AnsiNullsStatus" type="bit" read_only_after_creation="true" mode="design">tbl.uses_ansi_nulls</property>
      <property name="QuotedIdentifierStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.object_id,N'IsQuotedIdentOn')</property>
      <property name="FakeSystemTable" type="bit" cast='true' access='Read'>0</property>
      <!-- used for link with PartitionSchemeParameter, inc_storage -->
      <property name="IndexID" type="int" hidden='true'>idx.index_id</property>
      <!-- used for link with PartitionSchemeParameter -->
      <property name="TableID" type="int" hidden='true' cast='true'>tbl.object_id</property>      
    </version>
    
    <version cloud_min_major='10'>
      <property name='IsVarDecimalStorageFormatEnabled' type='bit' cast='true' expensive ='true' mode="deploy">
        objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat') <!-- version > 612 for cloud -->
      </property>
    </version>
    
		<version min_major='9' >
			<property name="TextFileGroup" type="sysname" read_only_after_creation="true">ISNULL(dstext.name,N'')</property>
			<property name="RowCount" type="bigint" access='Read'>ISNULL( ( select sum (spart.rows) from sys.partitions spart where spart.object_id = tbl.object_id and spart.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;), 0)</property>
			<!--when modify check datatabase.xml DataSpaceUsed for consistency -->
      			<property name="DataSpaceUsed" type="float" access='Read' expensive='true'
				>ISNULL((select @PageSize * SUM(CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
				FROM sys.indexes as i
				JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id
				JOIN sys.allocation_units as a ON a.container_id = p.partition_id
				where i.object_id = tbl.object_id),0.0)</property>
			<!--when modify check datatabase.xml IndexSpaceUsed and index.xml SpaceUsed for consistency -->
			<property name="IndexSpaceUsed" type="float" access='Read' expensive='true'
				>ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
				FROM sys.indexes as i
				JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id
				JOIN sys.allocation_units as a ON a.container_id = p.partition_id
				where i.object_id = tbl.object_id),0.0)</property>
			<property name='IsVarDecimalStorageFormatEnabled' type='bit' cast='true' expensive ='true' mode="deploy">
			case
    				when databasepropertyex(DB_NAME(), 'version') &lt; 612 then 0
    				else objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat')
			end
            		</property>
		</version>
    
    
    <!-- Properties for Change Tracking and Lock Escalation improvements-->
    <version min_major='10' cloud_min_major='10'>
      <property name="LockEscalation" type="tinyint" report_type='LockEscalationType' mode="deploy">tbl.lock_escalation</property>
      <property name="ThreePartName" type="nvarchar" size='600' hidden='true'>
        <link_multiple no='3' expression="quotename({0}, ']')+'.'+quotename({1}, ']')+'.'+quotename({2}, ']')">
          <link_field type='parent' field="Name" />
          <link_field type='local' field="Schema" />
          <link_field type='local' field="Name" />
        </link_multiple>
      </property>
      <property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
      <property name="ExtPropMajorIDforColumn" type="int" hidden='true'>tbl.object_id</property>
    </version>
    
		<version min_major='10' >
			<property name="ChangeTrackingEnabled" type="bit" cast='true' mode="deploy">case when ctt.object_id is null then 0 else 1  end</property>
			<property name="TrackColumnsUpdatedEnabled" type="bit" cast='true' mode="deploy">ISNULL(ctt.is_track_columns_updated_on,0)</property>
			<property name="HasCompressedPartitions" type="bit" access='Read' cast='true' expensive='true'>
				case when ((SELECT  MAX(data_compression) FROM sys.partitions  WHERE object_id = tbl.object_id AND index_id &lt; 2) &gt; 0) then 1 else 0 end
			</property>
		</version>
    <version min_major='7'>
      <include alias='idx' file='inc_storage.xml'/>
    </version>
		
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
u<?xml version="1.0" ?>
<EnumObject type="View" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS v">v.type = &lt;msparam&gt;V&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.all_views AS v">v.type = &lt;msparam&gt;V&lt;/msparam&gt;</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='v' />
        <include file='inc_system_table_view_sp_udf.xml' alias='v' for="#IsSystemObject#" />
		<include file='sql_module_link.xml' alias='v' 
			for='#AnsiNullsStatus#QuotedIdentifierStatus#IsSchemaBound#IsEncrypted#Text#BodyStartIndex#'/>
		<include file='inc_objprop_table_view.xml' />

    <property name="HasColumnSpecification" type='bit' expensive='true' access='Read' cast='true' usage='request'>0</property>	
		
		<version min_major='7' max_major='8'>
			<property name="HasFullTextCatalog" type="bit" hidden='true' cast='true'>OBJECTPROPERTY(v.id, 'TableFullTextCatalogId')</property>
			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'VIEW'</property>
		</version>	
		


		<version min_major='9' cloud_min_major='10'>
			<property name="ReturnsViewMetadata" type="bit" mode="design">v.has_opaque_metadata</property>
			
		</version>
		<version min_major='10' cloud_min_major='10'>
		<property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
		<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>v.object_id</property>
		</version>
		<property name="ThreePartName" type="nvarchar" size='600' hidden='true'>
			<link_multiple no='3' expression="quotename({0}, ']')+'.'+quotename({1}, ']')+'.'+quotename({2}, ']')">
				<link_field type='parent' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
)	<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7'   cloud_min_major='10' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS sp'>sp.xtype = &lt;msparam&gt;P&lt;/msparam&gt; OR sp.xtype = &lt;msparam&gt;RF&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table='sys.all_objects AS sp'>sp.type = &lt;msparam&gt;P&lt;/msparam&gt; OR sp.type = &lt;msparam&gt;RF&lt;/msparam&gt; OR sp.type=&lt;msparam&gt;PC&lt;/msparam&gt;</property_link>
			<property_link fields='#Startup#' left_join='sys.procedures AS spp'>spp.object_id = sp.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='sp' />
        <include file='inc_system_table_view_sp_udf.xml' alias='sp' for="#IsSystemObject#" />
		<include file='mixed_module_link.xml' alias='sp' 
			for='#Recompile#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#QuotedIdentifierStatus#IsEncrypted#Text#TextBody#BodyStartIndex#'/>
		<version min_major='7' max_major='8'>
			<property name="Startup" type="bit" cast='true' mode="design"> OBJECTPROPERTY(sp.id, N'ExecIsStartup')</property>
			<property name="ForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">CASE sp.xtype WHEN N'RF' THEN 1 ELSE 0 END</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>
			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'PROCEDURE'</property>
		</version>
		
		<version min_major='9' cloud_min_major='10'>
			<property name="Startup" type="bit" cast="true" mode="design">ISNULL(spp.is_auto_executed,0)</property>
			<property name="ForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">CASE sp.type WHEN N'RF' THEN 1 ELSE 0 END</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN sp.type = N'P' THEN 1 WHEN sp.type = N'PC' THEN 2 ELSE 1 END</property>
		</version>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Login" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="SRVID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.sysxlogins lnklgn'>
				lnklgn.ishqoutmap = 1
			</property_link>
			<property_link fields = '#Name#' 
				left_join='master.dbo.sysxlogins xlnklgn'>lnklgn.sid=xlnklgn.sid and ISNULL(xlnklgn.ishqoutmap,0) = 0</property_link>
		</version>
		<version min_major='9' >
			<property_link table='sys.linked_logins ll'/>
			<property_link fields = '#Name#'
				left_join='sys.server_principals sp'>ll.local_principal_id = sp.principal_id</property_link>
		</version>
	</settings>	
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerLogin</property>
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">ISNULL(xlnklgn.name, '')</property>
			<property name="RemoteUser" type="sysname">ISNULL(lnklgn.name, N'')</property>
			<property name="Impersonate" type="bit" cast = "true">convert(bit,lnklgn.selfoutmap)</property>
			<property name="SRVID" type="int" hidden="true">lnklgn.srvid</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname">ISNULL(sp.name, '')</property>
			<property name="RemoteUser" type="sysname">ISNULL(ll.remote_name, N'')</property>
			<property name="Impersonate" type="bit" cast = "true">ll.uses_self_credential</property>
			<property name="SRVID" type="int" hidden="true">ll.server_id</property>
			<property name="DateLastModified" type="datetime" access='Read'>ll.modify_date</property>
		</version>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="LinkedServerCatalog" impl_type="SqlObject" min_major='7'>
	<settings>
		<!-- 
		  Logic: For getting a value from the parent
		  1)Expose a hidden property called Servername
		  2)Get the Servername from the parent query ({0})
		  3)Insert the Servername into #tmp_sp_catalogs 
		-->
		<parent_link>
			<link parent="Name" local="ServerName" />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
			<field name='ProductName' />
			<field name='ProviderName' />
		</request_parent_select>
		<property_link table="#tmp_sp_catalogs" alias="tsc" />
		<!-- 
		  1) Check whether the catalog support exist or not for this provider
		  2) If catalog support is not exist then return default as the catalog name and set IsCatalogSupport to "0"
		  3) For sql servers IsSysObject should be set to 1 if catalog is in ('master','model','msdb','tempdb')
		-->
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
                create table #tmp_sp_catalogs (is_catalog_support bit null,server_name nvarchar(128) null, product_name nvarchar(128) null,provider_name nvarchar(128) null,catalog_name nvarchar(128) null, description nvarchar(4000) null)
                declare @ServerName sysname
                declare @ProductName sysname
				declare @ProviderName sysname
                declare crs cursor local fast_forward
                for ( {0} ) 
                open crs 
                fetch crs into @ServerName,@ProductName,@ProviderName
                while @@fetch_status &gt;= 0 
                begin					
				    DECLARE @IsCatalogSupport bit                   
                    create table #tmp_catalog_exist_test (id int null,description sysname null,flags varchar null)
                    insert into #tmp_catalog_exist_test(id,description,flags) EXEC master.dbo.xp_prop_oledb_provider @ProviderName
                    select @IsCatalogSupport = count(*) from #tmp_catalog_exist_test  where id = 233  							
					if (UPPER(@ProviderName) like 'SQLNCLI%' ) 
					begin  
                        set @IsCatalogSupport = 1                
                    end
                    if (@IsCatalogSupport = 0)
					begin
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)										
					end
					else
					begin					
					insert into #tmp_sp_catalogs (catalog_name,description) EXEC master.dbo.sp_catalogs @server_name = @ServerName
					update #tmp_sp_catalogs set is_catalog_support = 1	               
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)   				    
					end
					update #tmp_sp_catalogs set server_name = @ServerName
					update #tmp_sp_catalogs set product_name = @ProductName
					update #tmp_sp_catalogs set provider_name = @ProviderName
					fetch crs into @ServerName,@ProductName,@ProviderName
			    end
				close crs
				deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #tmp_sp_catalogs
				drop table #tmp_catalog_exist_test
			</postfix>
		</version>
		<version min_major='9'>
			<prefix>
				<link_multiple no='1' expression="
                create table #tmp_sp_catalogs (is_catalog_support bit null,server_name nvarchar(128) null, product_name nvarchar(128) null,provider_name nvarchar(128) null,catalog_name nvarchar(128) null, description nvarchar(4000) null)
                declare @ServerName sysname
                declare @ProductName sysname
				declare @ProviderName sysname
                declare crs cursor local fast_forward
                for ( {0} ) 
                open crs 
                fetch crs into @ServerName,@ProductName,@ProviderName
                while @@fetch_status &gt;= 0 
                begin					
				    DECLARE @IsCatalogSupport bit                   
                    create table #tmp_catalog_exist_test (id int null,description sysname null,flags varchar null)
                    insert into #tmp_catalog_exist_test(id,description,flags) EXEC master.dbo.xp_prop_oledb_provider @ProviderName
                    select @IsCatalogSupport = count(*) from #tmp_catalog_exist_test  where id = 233  							
					if (UPPER(@ProviderName) like 'SQLNCLI%' ) 
					begin  
                        set @IsCatalogSupport = 1                
                    end
                    if (@IsCatalogSupport = 0)
					begin
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)										
					end
					else
					begin
					BEGIN TRY
					insert into #tmp_sp_catalogs (catalog_name,description) EXEC master.dbo.sp_catalogs @server_name = @ServerName
					update #tmp_sp_catalogs set is_catalog_support = 1
	                END TRY
					BEGIN CATCH
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)   
				    END CATCH
					end
					update #tmp_sp_catalogs set server_name = @ServerName
					update #tmp_sp_catalogs set product_name = @ProductName
					update #tmp_sp_catalogs set provider_name = @ProviderName
					fetch crs into @ServerName,@ProductName,@ProviderName
			    end
				close crs
				deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #tmp_sp_catalogs
				drop table #tmp_catalog_exist_test
			</postfix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @IsCatalogSupport=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="IsCatalogSupport" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerCatalog</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tsc.server_name</property>
		<property name="ProductName" type="nvarchar" size="128" hidden='true'>tsc.product_name</property>
		<property name="ProvideName" type="nvarchar" size="128" hidden='true'>tsc.provider_name</property>
		<property name="Name" type="nvarchar" size="128">tsc.catalog_name</property>
		<property name="Description" type="nvarchar" size="4000">ISNULL(tsc.description, '')</property>
		<property name="IsCatalogSupport" type="bit" access='Read' >tsc.is_catalog_support</property>
		<property name="IsSystemObject" type="bit" access='Read' >case when ( ((tsc.product_name in ('SQL Server')) or (UPPER(tsc.provider_name) like ('SQLNCLI%')) ) and (tsc.catalog_name in ('master','model','msdb','tempdb')) ) then 1 else 0 end</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="LinkedServerTable" impl_type="SqlObject" min_major='7'>
	<settings>
		<parent_link>
			<link parent="ServerName" local="ServerName" />
		</parent_link>
		<!-- selecting both linkedServerName and CatalogName from the Parent -->
		<request_parent_select>
			<field name='ServerName' />
			<field name='Name' />
			<field name='IsCatalogSupport' />
		</request_parent_select>
		<property_link table="#tmp_sp_tables_ex" alias="tste" />
		<!-- 
		  1) There is no way to request SYSTEMTABLES and TABLES in one call
		  2) #tmp_sp_tables_ex_all : select all objects(Tables,systemtables,views,systemviews) into this table
		  3) #tmp_sp_tables_ex: this table contains only SYSTEM TABLES and TABLES
		  4) If catalog support not exist (@IsCatalogSupportExist=0) then pass NULL to @table_catalog
		  5)schemaname can be null for some providers, we can't handle this in OE so make the schemaname.objectname (or)
		    only objectname using the property SchemaObjectName		 
		-->
		<prefix>
			<link_multiple no='1' expression="
				create table #tmp_sp_tables_ex (is_catalog_error bit null,server_name nvarchar(128) null,server_catalog_name nvarchar(128) null,TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null) 				
				create table #tmp_sp_tables_ex_all (TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null)
                declare @TableServerName sysname
				declare @TableCatalogName sysname
				declare @IsCatalogSupportExist bit
                declare TableServerCrs cursor local fast_forward
                for ( {0} ) 
                open TableServerCrs 
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                while @@fetch_status &gt;= 0 
                begin
				IF (@IsCatalogSupportExist=0)
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = NULL
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM TABLE','TABLE')
				update #tmp_sp_tables_ex set server_catalog_name = NULL
				END
				ELSE
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = @TableCatalogName
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM TABLE','TABLE')
				update #tmp_sp_tables_ex set server_catalog_name = @TableCatalogName
				END				
                update #tmp_sp_tables_ex set server_name = @TableServerName																
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                end
                close TableServerCrs
                deallocate TableServerCrs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_sp_tables_ex
			drop table #tmp_sp_tables_ex_all
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerTable</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tste.server_name</property>
		<property name="ServerCatalogName" type="nvarchar" size="128" hidden='true'>tste.server_catalog_name</property>
		<property name="CatalogName" type="sysname" >ISNULL(tste.TABLE_CAT,'')</property>
		<property name="Schema" type="sysname">ISNULL(tste.TABLE_SCHEM,'')</property>
		<property name="Name" type="sysname">tste.TABLE_NAME</property>		
		<property name="TableType" type="varchar" size="32">tste.TABLE_TYPE</property>
		<property name="SchemaObjectName" type="sysname">
			<link_multiple no='2' expression="case when ( tste.TABLE_SCHEM in ('') or (tste.TABLE_SCHEM IS NULL) ) then {1} else {0}+'.'+{1} end">
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Remarks" type="varchar" size="254">ISNULL(tste.REMARKS,'')</property>
		<property name="IsSystemObject" type="bit" access="Read" >case when tste.TABLE_TYPE in ('SYSTEM TABLE') then 1 else 0 end</property>		
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="LinkedServerView" impl_type="SqlObject" min_major='7'>
	<settings>
		<parent_link>
			<link parent="ServerName" local="ServerName" />
		</parent_link>
		<!-- selecting both linkedServerName and CatalogName from the Parent -->
		<request_parent_select>
			<field name='ServerName' />
			<field name='Name' />
			<field name='IsCatalogSupport' />
		</request_parent_select>
		<property_link table="#tmp_sp_tables_ex" alias="tste" />
		<!--
		1) There is no way to request SYSTEMVIEWS and VIEWS in one call
		2) #tmp_sp_tables_ex_all : select all objects(Tables,systemtables,views,systemviews) into this table.
		3) #tmp_sp_tables_ex:  this table contains only SYSTEM VIEWS and VIEWS
		4) If catalog support not exist (@IsCatalogSupportExist=0) then pass NULL to @table_catalog		
		5)schemaname can be null for some providers, we can't handle this in OE so make the schemaname.objectname (or)
		    only objectname using the property SchemaObjectName		
		-->
		<prefix>
			<link_multiple no='1' expression="
				create table #tmp_sp_tables_ex (is_catalog_error bit null,server_name nvarchar(128) null,server_catalog_name nvarchar(128) null,TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null) 				
				create table #tmp_sp_tables_ex_all (TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null)		
                declare @TableServerName sysname
				declare @TableCatalogName sysname
				declare @IsCatalogSupportExist bit
                declare TableServerCrs cursor local fast_forward
                for ( {0} ) 
                open TableServerCrs 
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                while @@fetch_status &gt;= 0                 
				begin
				IF (@IsCatalogSupportExist=0)
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = NULL
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM VIEW','VIEW')
				update #tmp_sp_tables_ex set server_catalog_name = NULL
				END
				ELSE
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = @TableCatalogName
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM VIEW','VIEW')
				update #tmp_sp_tables_ex set server_catalog_name = @TableCatalogName
				END				
                update #tmp_sp_tables_ex set server_name = @TableServerName																
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                end
                close TableServerCrs
                deallocate TableServerCrs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_sp_tables_ex
			drop table #tmp_sp_tables_ex_all
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerView</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tste.server_name</property>
		<property name="ServerCatalogName" type="nvarchar" size="128" hidden='true'>tste.server_catalog_name</property>
		<property name="CatalogName" type="sysname" >ISNULL(tste.TABLE_CAT,'')</property>
		<property name="Schema" type="sysname">ISNULL(tste.TABLE_SCHEM,'')</property>
		<property name="Name" type="sysname">tste.TABLE_NAME</property>
		<property name="TableType" type="varchar" size="32">tste.TABLE_TYPE</property>
		<property name="SchemaObjectName" type="sysname">
			<link_multiple no='2' expression="case when ( tste.TABLE_SCHEM in ('') or (tste.TABLE_SCHEM IS NULL) ) then {1} else {0}+'.'+{1} end">
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Remarks" type="varchar" size="254">tste.REMARKS</property>
		<property name="IsSystemObject" type="bit" access="Read" >case when tste.TABLE_TYPE in ('SYSTEM VIEW') then 1 else 0 end</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7' >
    <settings>
        <version min_major='7' max_major='8'>
            <parent_link>
                <link_multiple no="1" expression="{0} = lgnmb.role_col">
                    <link_field type="parent" field="Name" />
                </link_multiple>
            </parent_link>
            <property_link table='#SmoMemberTemp lgnmb' />
            <prefix>
create table #SmoMemberTemp
(
	role_col sysname NOT NULL,
	mem_col sysname NOT NULL,
	id_col varbinary(85)
)
insert into #SmoMemberTemp (role_col, mem_col, id_col) exec master.dbo.sp_helpsrvrolemember
            </prefix>
            <postfix>
drop table #SmoMemberTemp
            </postfix>
        </version>
        <version min_major='9' >
            <parent_link>
                <link_multiple no="1" expression="{0} = m.role_principal_id">
                    <link_field type="parent" field="ID" />
                </link_multiple>
            </parent_link>
            <property_link table = 'sys.server_role_members m'/>
            <property_link table = 'sys.server_principals p'>
				p.principal_id = m.member_principal_id
            </property_link>
        </version>
    </settings>
    <properties>
        <version min_major='7' max_major='8'>
            <property name="Name" type="sysname">lgnmb.mem_col</property>
        </version>
        <version min_major='9' >
          <property name="Name" type="sysname">p.name</property>
          <property name="LoginType" type="int" report_type="LoginType" access='read'>CASE p.type WHEN N'U' THEN 0 WHEN N'G' THEN 1 WHEN N'S' THEN 2 WHEN N'C' THEN 3 WHEN N'K' THEN 4 END</property>
        </version>
    </properties>
</EnumObject>/<!--handle Sql Server Agent Checks from OE xmls instead of putting a hack in AgentPropertyHandler.PopulateProperties, putting cloud version attributes in Jobserver.xml: VSTS 341222-->
<EnumObject type='SPGetSqlagentProperties' impl_type='SqlObject' min_major='7' cloud_min_major='10'>
	<settings>

    <version min_major = '7' max_major='8'>

      <property_link table='#tmp_sp_get_sqlagent_properties' alias='tsgsp' fields="#MsxServerName#SqlServerRestart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName#SqlAgentAutoStart#"/>

      <prefix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName">
        create table #tmp_sp_get_sqlagent_properties
        (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name nvarchar(128) null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null)
        insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled)
        exec msdb.dbo.sp_get_sqlagent_properties
      </prefix>

      <prefix fields="#MsxAccountName#">
        create table #tmpMsxAccountName ( domain nvarchar(255) null, username nvarchar(255) null)
        if ( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion &amp; 0xffff &gt;= 760) ) or (@@microsoftversion / power(2, 24) &gt; 8))
        begin
        insert into #tmpMsxAccountName(domain, username) exec master.dbo.xp_sqlagent_msx_account N'GET'
        end
      </prefix>
    </version>

    <version min_major = '9' >
      <property_link table='#tmp_sp_get_sqlagent_properties' alias='tsgsp' fields="#MsxServerName#SqlServerRestart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName#SqlAgentAutoStart#ReplaceAlertTokensEnabled#"/>

      <prefix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#ReplaceAlertTokensEnabled#">
        create table #tmp_sp_get_sqlagent_properties
        (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name sysname null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null, replace_alert_tokens_enabled int null)
        insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled, replace_alert_tokens_enabled)
        exec msdb.dbo.sp_get_sqlagent_properties
      </prefix>

      <prefix fields="#MsxAccountName#MsxAccountCredentialName#">
        create table #tmpMsxAccountName
        (msx_connection int null, msx_credential_id int null, msx_credential_name nvarchar(300) null, msx_login_name nvarchar(300) null)
        insert into #tmpMsxAccountName(msx_connection, msx_credential_id, msx_credential_name, msx_login_name)
        exec msdb.dbo.sp_msx_get_account
      </prefix>
      <prefix fields = '#DatabaseMailProfile#'>
        declare @DatabaseMailProfile nvarchar(255)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'DatabaseMailProfile', @param = @DatabaseMailProfile OUT, @no_output = N'no_output'
      </prefix>
      <prefix fields = '#AgentMailType#'>
        declare @AgentMailType int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'UseDatabaseMail', @param = @AgentMailType OUT, @no_output = N'no_output'
      </prefix>
      <prefix fields="#ServiceAccount#">
        declare @ServiceAccount nvarchar(512)
        EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'ObjectName', @ServiceAccount OUTPUT
      </prefix>
      <prefix fields="#ServiceStartMode#">
        declare @ServiceStartMode int
        EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'Start', @ServiceStartMode OUTPUT
      </prefix>
    </version>
    <version min_major="10">
      <prefix fields="#AgentDomainGroup#">
        declare @AgtGroup nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'AGTGroup', @AgtGroup OUTPUT
      </prefix>
    </version>
        <postfix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#ReplaceAlertTokensEnabled#">
drop table #tmp_sp_get_sqlagent_properties
        </postfix>
    
		<postfix fields="#MsxAccountName#MsxAccountCredentialName#">
drop table #tmpMsxAccountName
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn_single.xml'/>
		<version min_major = '7' max_major = '7'>
			<property name="Name" type="sysname">@@SERVERNAME</property>
		</version>
		<version min_major = '8' cloud_min_major ='10'>
			<property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
		</version>

		<property name='MsxServerName' type='sysname' access="Read" notusage='order'>ISNULL(tsgsp.msx_server_name,N'')</property>
		<property name="JobServerType" type="int" report_type='Agent.JobServerType' access="Read">tsgsp.sqlagent_type</property>
		<property name='SqlServerRestart' type='bit' cast='true'>tsgsp.sqlserver_restart</property>
		<property name="SqlAgentRestart" type="bit" cast='true'>tsgsp.monitor_autostart</property>
		<property name='MaximumHistoryRows' type='int'>tsgsp.jobhistory_max_rows</property>
		<property name='MaximumJobHistoryRows' type='int'>tsgsp.jobhistory_max_rows_per_job</property>
		<property name='ErrorLogFile' type='nvarchar' size = '255'>tsgsp.errorlog_file</property>
		<property name='AgentLogLevel' type='int' report_type = "Agent.AgentLogLevels">tsgsp.errorlogging_level</property>
		<property name='NetSendRecipient' type='nvarchar' size = '30'>ISNULL(tsgsp.error_recipient,N'')</property>
		<property name='AgentShutdownWaitTime' type='int'>tsgsp.job_shutdown_timeout</property>
		<property name='SqlAgentMailProfile' type='nvarchar' size = '64'>ISNULL(tsgsp.email_profile,N'')</property>
		<property name='SaveInSentFolder' type='bit' cast='true'>tsgsp.email_save_in_sent_folder</property>
		<property name='WriteOemErrorLog' type='bit' cast='true'>tsgsp.oem_errorlog</property>
		<property name='IsCpuPollingEnabled' type='bit' cast='true'>tsgsp.cpu_poller_enabled</property>
		<property name='IdleCpuPercentage' type='int'>tsgsp.idle_cpu_percent</property>
		<property name='IdleCpuDuration' type='int'>tsgsp.idle_cpu_duration</property>
		<property name='LoginTimeout' type='int'>tsgsp.login_timeout</property>
		<property name='HostLoginName' type='sysname' access="Read">ISNULL(tsgsp.host_login_name,N'')</property>
		<property name='LocalHostAlias' type='sysname'>ISNULL(tsgsp.local_host_server,N'')</property>
		<property name="SqlAgentAutoStart" type="bit" cast='true'>tsgsp.auto_start</property>
    
		<version min_major = '7' max_major = '8'>
			<property name="MsxAccountName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 ISNULL(domain + N'\', N'') + username as [UserName] from #tmpMsxAccountName),N'')</property>
			<property name='SysAdminOnly' type='bit' cast='true' access="Read">tsgsp.sysadmin_only</property>
		</version>

		<version min_major = '9'>
            <property name='ReplaceAlertTokensEnabled' type='bit' cast='true'>tsgsp.replace_alert_tokens_enabled</property>
			<property name="MsxAccountName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 msx_login_name from #tmpMsxAccountName),N'')</property>
			<property name="MsxAccountCredentialName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 msx_credential_name from #tmpMsxAccountName),N'')</property>
			<property name='DatabaseMailProfile' type='nvarchar' size='255'>ISNULL(@DatabaseMailProfile,N'')</property>
			<property name='AgentMailType' type='int' report_type='Agent.AgentMailType'>ISNULL(@AgentMailType, 0)</property>
      <!-- SysAdminOnly defaults to 1 because we need to have this property
           in the property bag for Yukon -->
      <property name='SysAdminOnly' type='bit' cast='true' access="Read">1</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode"  access="Read">@ServiceStartMode</property>
      <property name="ServiceAccount" type="nvarchar" size="512" access="Read">ISNULL(@ServiceAccount,N'')</property>
    </version>
    <version min_major ="10">
      <property name="AgentDomainGroup" type="nvarchar" size="128" access="Read">ISNULL(suser_sname(sid_binary(ISNULL(@AgtGroup,N''))),N'')</property>
    </version>
	</properties>
</EnumObject>
,5<?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<!-- ignore heap( > 0 ), and we need only indexes (<255) -->
			<property_link table="dbo.sysindexes AS i">i.indid &gt; &lt;msparam&gt;0&lt;/msparam&gt; and i.indid &lt; &lt;msparam&gt;255&lt;/msparam&gt; and &lt;msparam&gt;1&lt;/msparam&gt; != INDEXPROPERTY(i.id,i.name,N'IsStatistics') and &lt;msparam&gt;1&lt;/msparam&gt; != INDEXPROPERTY(i.id,i.name,N'IsHypothetical')</property_link>
			<property_link fields = '#KeyID#IsSystemNamed#' left_join="dbo.sysobjects AS k">k.parent_obj = i.id AND k.name = i.name AND k.xtype IN (N'PK', N'UQ')</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<!-- ignore heap( > 0 )-->
			<property_link table="sys.indexes AS i">i.index_id &gt; &lt;msparam&gt;0&lt;/msparam&gt; and i.is_hypothetical = &lt;msparam&gt;0&lt;/msparam&gt;</property_link>
			<property_link fields='#NoAutomaticRecomputation#' left_join="sys.stats AS s">s.stats_id = i.index_id AND s.object_id = i.object_id</property_link>
			<property_link fields = '#KeyID#IsSystemNamed#' left_join="sys.key_constraints AS k">k.parent_object_id = i.object_id AND k.unique_index_id = i.index_id</property_link>
		</version>
    <version min_major ="9">
      <property_link fields = '#SecondaryXmlIndexType#ParentXmlIndex#' left_join="sys.xml_indexes AS xi">xi.object_id = i.object_id AND xi.index_id = i.index_id</property_link>
      <property_link fields = '#ParentXmlIndex#' left_join="sys.xml_indexes AS xi2">xi2.object_id = xi.object_id AND xi2.index_id = xi.using_xml_index_id</property_link>
    </version>
    
		<version min_major ='10' cloud_min_major='10'>
			<property_link fields='#SpatialIndexType#' left_join="sys.spatial_indexes AS spi">i.object_id = spi.object_id and i.index_id = spi.index_id</property_link>
			<property_link fields='#BoundingBoxXMin#BoundingBoxYMin#BoundingBoxXMax#BoundingBoxYMax#Level1Grid#Level2Grid#Level3Grid#Level4Grid#CellsPerObject#' left_join='sys.spatial_index_tessellations as si'>i.object_id = si.object_id and i.index_id = si.index_id</property_link>
		</version>

    <version min_major='7'>
      <prefix fields="#SpaceUsed#">declare @PageSize float select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=&lt;msparam&gt;1&lt;/msparam&gt; and v.type=&lt;msparam&gt;E&lt;/msparam&gt;</prefix>
    </version>
			
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design#deploy">i.name</property>
			<property name="ID" type="int" cast='true'>i.indid</property>
			<property name="IsSystemObject" type="bit" access="Read" cast='true'>OBJECTPROPERTY(i.id,N'IsMSShipped')</property>
			<property name="IsFullTextKey" type="bit" cast='true'>INDEXPROPERTY(i.id,i.name,N'IsFulltextKey')</property>
			<property name="NoAutomaticRecomputation" type="bit" cast='true' mode="design#deploy">CASE WHEN (i.status &amp; 0x1000000) &lt;&gt; 0 THEN 1 ELSE 0 END</property>
			<property name="FillFactor" type="tinyint" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.id,i.name,N'IndexFillFactor')</property>
			<property name="SpaceUsed" type="float" expensive='true' access='Read'>CASE WHEN (i.indid = 1) THEN (i.used - i.dpages - ISNULL((SELECT 
				SUM(j.used) FROM dbo.sysindexes AS j WHERE (j.indid &gt; 1) AND (j.indid &lt; 255) AND (j.id = i.id) AND (j.name = i.name)), 0)) * @PageSize ELSE i.used * @PageSize END</property>
			<property name="IsClustered" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">CASE i.indid WHEN 1 THEN 1 ELSE 0 END</property>
			<property name="IndexKeyType" type="int" report_type="IndexKeyType" read_only_after_creation="true" mode="design#deploy">CASE WHEN 0 != i.status&amp;0x800 THEN 1 WHEN 0 != i.status&amp;0x1000 THEN 2 ELSE 0 END</property>
			<property name="IsUnique" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">i.status&amp;2</property>
            <property name="IgnoreDuplicateKeys" type="bit" cast='true' mode="design#deploy">CASE WHEN 0 != (i.status&amp;0x01) THEN 1 ELSE 0 END</property>
			<property name="DisallowRowLocks" type="bit" cast='true' mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsRowLockDisallowed')</property>
			<property name="DisallowPageLocks" type="bit" cast='true' mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsPageLockDisallowed')</property>
			<property name="PadIndex" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsPadIndex')</property>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>ISNULL(k.status &amp; 4, 0)</property>
			<property name="ParentID" type="int" hidden='true'>i.id</property>
			<property name="KeyID" type="int" hidden='true'>k.id</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true' cast='true'>i.indid</property>
		</version>
		<version min_major='8' max_major='8'>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN 6 ELSE 3 END">
					<link_field type='local' field="IndexKeyType" />
				</link_multiple>
			</property>
			-->
			<property name="ObjectTypeName" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN N'INDEX' ELSE N'CONSTRAINT' END">
					<link_field type='filter' field="IndexKeyType" default_value="0"/>
				</link_multiple>
			</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>


		<version min_major='9' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design#deploy">i.name</property>
			<property name="ID" type="int" cast='true'>i.index_id</property>
			<property name="IsSystemObject" type="bit" access="Read" cast='true'>OBJECTPROPERTY(i.object_id,N'IsMSShipped')</property>
			<property name="IsFullTextKey" type="bit" cast='true'>INDEXPROPERTY(i.object_id,i.name,N'IsFulltextKey')</property>
			<property name="NoAutomaticRecomputation" type="bit" mode="design#deploy">s.no_recompute</property>
			<property name="FillFactor" type="tinyint" read_only_after_creation="true" mode="design#deploy">i.fill_factor</property>
					
			<property name="IsClustered" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">CASE i.index_id WHEN 1 THEN 1 ELSE 0 END</property>
			<property name="IndexKeyType" type="int" report_type="IndexKeyType" read_only_after_creation="true" mode="design#deploy">i.is_primary_key + 2*i.is_unique_constraint</property>
			<property name="IsUnique" type="bit" read_only_after_creation="true" mode="design#deploy">i.is_unique</property>
            		<property name="IgnoreDuplicateKeys" type="bit" mode="design#deploy">i.ignore_dup_key</property>
			<property name="DisallowRowLocks" type="bit" mode="design#deploy">~i.allow_row_locks</property>
			<property name="DisallowPageLocks" type="bit" mode="design#deploy">~i.allow_page_locks</property>
			<property name="PadIndex" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.object_id, i.name, N'IsPadIndex')</property>
			<property name="IsDisabled" type="bit" access="Read">i.is_disabled</property>
			<property name="IsXmlIndex" type="bit" access="Read" cast='true'>case when i.type=3 then 1 else 0 end</property>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>ISNULL(k.is_system_named, 0)</property>

			<property name="ParentID" type="int" hidden='true'>i.object_id</property>
			<property name="KeyID" type="int" hidden='true'>k.object_id</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true' cast='true'>i.index_id</property>
			<!-- used for link with PartitionSchemeParameter -->
			<property name="TableID" type="int" hidden='true' cast='true'>i.object_id</property>
			<!-- extended properties support -->			
			<property name="ExtPropClass" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN 7 ELSE 1 END">
					<link_field type='local' field="IndexKeyType" />
				</link_multiple>
			</property>
			
			<!-- fragmentation info support:IndexNameFromFilter, TableNameFromFilter, ParentSysObj -->
			<property name="IndexNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="'*'"/>
				</link_multiple>
			</property>
			<property name="TableNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="TableNameFromFilter"/>
				</link_multiple>
			</property>
			<property name="ParentSysObj" type='bit' hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="IsSystemObject" />
				</link_multiple>
			</property>
		</version>
    
    <version min_major='9'>
      <!-- will report 0 for hypothetical indexes -->
      <!--when modify check datatabase.xml and table.xml IndexSpaceUsed for consistency -->
      <property name="SpaceUsed" type="float" expensive='true' access='Read'>
ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
FROM sys.partitions as p
JOIN sys.allocation_units as a ON a.container_id = p.partition_id
WHERE p.object_id = i.object_id AND p.index_id = i.index_id),0.0)</property>
      <property name='SecondaryXmlIndexType' type="int" report_type="SecondaryXmlIndexType" read_only_after_creation="true">case UPPER(ISNULL(xi.secondary_type,'')) when 'P' then 1 when 'V' then 2 when 'R' then 3 else 0 end</property>
      <property name='ParentXmlIndex' type="sysname" read_only_after_creation="true">ISNULL(xi2.name, N'')</property>
    </version>

    <version min_major='10' cloud_min_major='10'>
      <property name ="SpatialIndexType" type="tinyint"  cast ="true" report_type='SpatialIndexType' read_only_after_creation="true">ISNULL(spi.spatial_index_type,0)</property>
      <property name ="BoundingBoxXMin" type="float" size ="53"  cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_xmin,0)</property>
      <property name ="BoundingBoxYMin" type="float" size="53"  cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_ymin,0)</property>
      <property name ="BoundingBoxXMax" type="float"  size="53" cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_xmax,0)</property>
      <property name ="BoundingBoxYMax" type="float"  size="53" cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_ymax,0)</property>
      <property name ="Level1Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_1_grid,0)</property>
      <property name ="Level2Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_2_grid,0)</property>
      <property name ="Level3Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_3_grid,0)</property>
      <property name ="Level4Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_4_grid,0)</property>
      <property name ="CellsPerObject" type="int" cast ="true" read_only_after_creation="true">ISNULL(si.cells_per_object,0)</property>
      <property name ="IsSpatialIndex" type="bit" access ="read" cast ='true'>case when i.type=4 then 1 else 0 end</property>
      <property name="HasFilter" type="bit" access='read'>i.has_filter</property>
      <property name="FilterDefinition" type="nvarchar" size='max' read_only_after_creation="true" mode="deploy">ISNULL(i.filter_definition, N'')</property>
    </version>

    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
      <property name="HasCompressedPartitions" type="bit" access='Read' cast='true' expensive='true'>
        case when ((SELECT  MAX(data_compression) FROM sys.partitions  WHERE object_id = i.object_id AND index_id = i.index_id) &gt; 0) then 1 else 0 end
      </property>
    </version>

    <version min_major="7">
		<include alias='i' file='inc_storage.xml' ro_after_creation='#FileStreamFileGroup#FileStreamPartitionScheme#'/>
    </version>

    <!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='3' expression="CASE ({0}) WHEN 0 THEN {1} ELSE {2} END">
				<link_field type='local' field="IndexKeyType" />
				<link_field type='local' field="ParentID" />
				<link_field type='local' field="KeyID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>
			<link_multiple no='2' expression="CASE ({0}) WHEN 0 THEN {1} ELSE 0 END">
				<link_field type='local' field="IndexKeyType" />			
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
  </properties>
</EnumObject>
C
<?xml version="1.0" ?>
<EnumObject type="IndexedColumn" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<version min_major='7' max_major='8'>		
			<property_link table="dbo.sysindexkeys AS ic" />
			<property_link filed = '#Name#IsComputed#' join="dbo.syscolumns AS clmns">clmns.id = ic.id and clmns.colid = ic.colid and clmns.number = 0</property_link>
		</version>		
		<version min_major='9' cloud_min_major='10'>	
			<!-- accept key, include and xml column, reject RID and partition columns -->
			<property_link table = "sys.index_columns AS ic">ic.column_id > 0 and (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0)</property_link>
			<property_link filed = '#Name#IsComputed#' join="sys.columns AS clmns">clmns.object_id = ic.object_id and clmns.column_id = ic.column_id</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>		
			<property name="Name" type="nvarchar" size="256" mode="design#deploy">clmns.name</property>		
			<property name="ID" type="int" access="Read" cast='true'>ic.keyno</property>
			<property name="TableID" type="int" hidden='true'>ic.id</property>
			<property name="IndexID" type="int" hidden='true' cast='true'>ic.indid</property>
			<property name="IsComputed" type="bit" access="Read"
						cast = 'true'>COLUMNPROPERTY(ic.id, clmns.name, N'IsComputed')</property>
		</version>		
		<version min_major = '8' max_major='8'>
			<property name="Descending" type="bit"
						cast = 'true' mode="design#deploy">INDEXKEY_PROPERTY(ic.id, ic.indid, ic.keyno, N'IsDescending')</property>
		</version>
		<version min_major='9' cloud_min_major='10'>	
			<property name="Name" type="sysname" mode="design#deploy">clmns.name</property>

			<property name="ID" type="int" access="Read">(case ic.is_included_column when 1 then ic.index_column_id else ic.key_ordinal end)</property>
			<property name="TableID" type="int" hidden='true'>ic.object_id</property>
			<property name="IndexID" type="int" hidden='true'>ic.index_id</property>
			<property name="IsComputed" type="bit" access="Read"
						cast = 'true'>COLUMNPROPERTY(ic.object_id, clmns.name, N'IsComputed')</property>
			<property name="Descending" type="bit" mode="design#deploy">ic.is_descending_key</property>
			<property name="IsIncluded" type="bit" mode="design#deploy">ic.is_included_column</property>
		</version>		
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpJobstep' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>
	
	
		<property_link table='#tmp_sp_help_jobstep' alias='tshj'/>
        <version min_major='9' > 
            <property_link fields='#ProxyName#' left_join='#tmp_sp_help_proxy' alias = 'sp'>sp.proxy_id = tshj.proxy_id</property_link>
        </version>
		
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #tmp_sp_help_jobstep
(step_id int null, step_name nvarchar(128) null, subsystem nvarchar(128) collate Latin1_General_CI_AS null, command nvarchar(3200) null, flags int null, cmdexec_success_code int null, on_success_action tinyint null, on_success_step_id int null, on_fail_action tinyint null, on_fail_step_id int null, server nvarchar(128) null, database_name sysname null, database_user_name sysname null, retry_attempts int null, retry_interval int null, os_run_priority int null, output_file_name nvarchar(300) null, last_run_outcome int null, last_run_duration int null, last_run_retries int null, last_run_date int null, last_run_time int null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobstep(step_id, step_name, subsystem, command, flags, cmdexec_success_code, on_success_action, on_success_step_id, on_fail_action, on_fail_step_id, server, database_name, database_user_name, retry_attempts, retry_interval, os_run_priority, output_file_name, last_run_outcome, last_run_duration, last_run_retries, last_run_date, last_run_time) 
		exec msdb.dbo.sp_help_jobstep @job_id = @job_id
	update #tmp_sp_help_jobstep set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<version min_major='9' >
			<prefix>
				<link_multiple no='1' expression="
create table #tmp_sp_help_jobstep
(step_id int null, step_name nvarchar(128) null, subsystem nvarchar(128) collate Latin1_General_CI_AS null, command nvarchar(max) null, flags int null, cmdexec_success_code int null, on_success_action tinyint null, on_success_step_id int null, on_fail_action tinyint null, on_fail_step_id int null, server nvarchar(128) null, database_name sysname null, database_user_name sysname null, retry_attempts int null, retry_interval int null, os_run_priority int null, output_file_name nvarchar(300) null, last_run_outcome int null, last_run_duration int null, last_run_retries int null, last_run_date int null, last_run_time int null, proxy_id int null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobstep(step_id, step_name, subsystem, command, flags, cmdexec_success_code, on_success_action, on_success_step_id, on_fail_action, on_fail_step_id, server, database_name, database_user_name, retry_attempts, retry_interval, os_run_priority, output_file_name, last_run_outcome, last_run_duration, last_run_retries, last_run_date, last_run_time, proxy_id) 
		exec msdb.dbo.sp_help_jobstep @job_id = @job_id
	update #tmp_sp_help_jobstep set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<prefix fields ="#ProxyName#">
create table #tmp_sp_help_proxy
(proxy_id int null, name nvarchar(300) null, credential_identity nvarchar(300) null, enabled tinyint null, description nvarchar(max) null, user_sid binary(200) null, credential_id int null, credential_identity_exists int null)
insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists)
		exec msdb.dbo.sp_help_proxy
		</prefix>
		<postfix fields ="#ProxyName#">
drop table #tmp_sp_help_proxy
		</postfix>
		<postfix>
drop table #tmp_sp_help_jobstep
		</postfix>
		<post_process fields = '#LastRunDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime' 
				triggered_fields='#LastRunDateInt#LastRunTimeInt#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshj.step_name</property>		
		<property name='ID' type='int' access="Write" read_only_after_creation="true">tshj.step_id</property>
        <property name="SubSystem" type="int" report_type="Agent.AgentSubSystem"
			>CASE LOWER(tshj.subsystem) when 'tsql' THEN 1 WHEN 'activescripting' THEN 2 WHEN 'cmdexec' THEN 3 
WHEN 'snapshot' THEN 4 WHEN 'logreader' THEN 5 WHEN 'distribution' THEN 6 
WHEN 'merge' THEN 7 WHEN 'queuereader' THEN 8 WHEN 'analysisquery' THEN 9 
WHEN 'analysiscommand' THEN 10 WHEN 'dts' THEN 11 WHEN 'ssis' THEN 11 WHEN 'powershell' THEN 12 ELSE 0 END</property>
         <version min_major='7' max_major='8'>
		    <property name='Command' type='nvarchar' size = '3200'>ISNULL(tshj.command,N'')</property>
		</version> 
 		<version min_major='9' >
			<property name='Command' type='nvarchar' size = 'max'>ISNULL(tshj.command,N'')</property>		
		</version>       
		<property name='CommandExecutionSuccessCode' type='int'>tshj.cmdexec_success_code</property>
		<property name='OnSuccessAction' type='tinyint' report_type="Agent.StepCompletionAction">tshj.on_success_action</property>		
		<property name='OnSuccessStep' type='int'>tshj.on_success_step_id</property>		
		<property name='OnFailAction' type='tinyint' report_type="Agent.StepCompletionAction">tshj.on_fail_action</property>		
		<property name='OnFailStep' type='int'>tshj.on_fail_step_id</property>		
		<property name='Server' type='nvarchar' size = '128'>ISNULL(tshj.server,N'')</property>		
		<property name='DatabaseName' type='sysname'>ISNULL(tshj.database_name,N'')</property>		
		<property name='DatabaseUserName' type='sysname'>ISNULL(tshj.database_user_name,N'')</property>		
		<property name='RetryAttempts' type='int'>tshj.retry_attempts</property>
		<property name='RetryInterval' type='int'>tshj.retry_interval</property>
		<property name='OSRunPriority' type='int' report_type="Agent.OSRunPriority">tshj.os_run_priority</property>		
		<property name='OutputFileName' type='nvarchar' size = '300'>ISNULL(tshj.output_file_name,N'')</property>
		<property name='LastRunOutcome' type='int' report_type="Agent.CompletionResult" access="Read">tshj.last_run_outcome</property>
		<property name='LastRunDuration' type='int' access="Read">tshj.last_run_duration</property>
		<property name='LastRunRetries' type='int' access="Read">tshj.last_run_retries</property>
		<property name="LastRunDate" type="datetime" access="Read">null</property>
		<property name='LastRunDateInt' type='int' hidden='true'>tshj.last_run_date</property>
		<property name='LastRunTimeInt' type='int' hidden='true'>tshj.last_run_time</property>
		<property name="JobStepFlags" type="int" report_type="Agent.JobStepFlags">tshj.flags</property>		

		<version min_major='9' >
			<property name="ProxyName" type="nvarchar" size="300">ISNULL(sp.name,N'')</property>		
		</version>
		
		<property name="JobID" type="uniqueidentifier" hidden='true'>tshj.job_id</property>
	</properties>
</EnumObject>~<?xml version="1.0" ?>
<EnumObject type="SPHelpJobStepLog" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent='JobID' local='JobID' />
			<link parent='ID' local='StepID' />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>
		<property_link table="#jobstep_outputlog_tmp tjsol" />
		<prefix>
			<link_multiple no='1' expression="
create table #jobstep_outputlog_tmp(job_id uniqueidentifier, job_name sysname, step_id int, step_name sysname, step_uid uniqueidentifier, date_created datetime, date_modified datetime, log_size int, log nvarchar(max))
declare @JobID uniqueidentifier
declare @OldJobID uniqueidentifier
select @OldJobID = null

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @JobID
while @@fetch_status &gt;= 0 
begin 
		if (@OldJobID IS NULL) OR (@OldJobID &lt;&gt; @JobID)
		begin
			insert #jobstep_outputlog_tmp (job_id,job_name,step_id,step_name,step_uid,date_created,date_modified,log_size,log) exec msdb.dbo.sp_help_jobsteplog @job_id = @JobID
			select @OldJobID = @JobID
		end
		fetch crs into @JobID
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #jobstep_outputlog_tmp
		</postfix>
	</settings>
	<properties>
		<property name="JobID" type="uniqueidentifier" access="read">tjsol.job_id</property>
		<property name="JobName" type="sysname" access="read">tjsol.job_name</property>
		<property name="StepID" type="int" access="read">tjsol.step_id</property>
		<property name="StepName" type="sysname" access="read">tjsol.step_name</property>
		<property name="StepUID" type="uniqueidentifier" access="read">tjsol.step_uid</property>				
		<property name="DateCreated" type="datetime" access="read">tjsol.date_created</property>
		<property name="DateModified" type="datetime" access="read">tjsol.date_modified</property>
		<property name="LogSize" type="int" access="read">tjsol.log_size</property>
		<property name="Log" type="nvarchar" size="max" access="read">tjsol.log</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='sysjobschedules' impl_type='SqlObject' min_major='7' >
    <settings>
        <parent_link>
            <link parent="JobID" local="JobID" />
        </parent_link>
        <request_parent_select>
            <field name='JobID' />
        </request_parent_select>

        <property_link table='#tmp_sp_help_jobschedule' alias='tshj'/>
        <version min_major = '7' max_major = '8'>
            <prefix>
                <link_multiple no='1' expression="
create table #tmp_sp_help_jobschedule
(schedule_id int null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, next_run_date int null, next_run_time int null, job_id uniqueidentifier null)
declare @job_id sysname
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobschedule (schedule_id, schedule_name, enabled, freq_type, freq_interval, freq_subday_type, freq_subday_interval, freq_relative_interval, freq_recurrence_factor, active_start_date, active_end_date, active_start_time, active_end_time, date_created, schedule_description, next_run_date, next_run_time) 
		exec msdb.dbo.sp_help_jobschedule @job_id = @job_id
	update #tmp_sp_help_jobschedule set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major = '9' >
            <prefix>
                <link_multiple no='1' expression="
create table #tmp_sp_help_jobschedule
(schedule_id int null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, next_run_date int null, next_run_time int null, schedule_uid uniqueidentifier null,  job_count int null, job_id uniqueidentifier null)
declare @job_id sysname
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobschedule (schedule_id, schedule_name, enabled, freq_type, freq_interval, freq_subday_type, freq_subday_interval, freq_relative_interval, freq_recurrence_factor, active_start_date, active_end_date, active_start_time, active_end_time, date_created, schedule_description, next_run_date, next_run_time, schedule_uid, job_count) 
		exec msdb.dbo.sp_help_jobschedule @job_id = @job_id
	update #tmp_sp_help_jobschedule set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <postfix>
            drop table #tmp_sp_help_jobschedule
        </postfix>

        <post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
        <post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
        <post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
        <post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='nvarchar' size = '128'>tshj.schedule_name</property>
        <property name='ID' type='int'>tshj.schedule_id</property>
        <property name='DateCreated' type='datetime' access="Read">tshj.date_created</property>
        <property name='IsEnabled' type='bit' cast='true'>tshj.enabled</property>
        <property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>tshj.freq_type</property>
        <property name='FrequencyInterval' type='int'>tshj.freq_interval</property>
        <property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>tshj.freq_subday_type</property>
        <property name='FrequencySubDayInterval' type='int'>tshj.freq_subday_interval</property>
        <property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">tshj.freq_relative_interval</property>
        <property name='FrequencyRecurrenceFactor' type='int'>tshj.freq_recurrence_factor</property>
        <property name='ActiveStartDate' type='datetime'>null</property>
        <property name='ActiveStartDateInt' type='int' hidden='true'>tshj.active_start_date</property>
        <property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
        <property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>tshj.active_start_time</property>
        <property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
        <property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>tshj.active_end_time</property>
        <property name='ActiveEndDate' type='datetime'>null</property>
        <property name='ActiveEndDateInt' type='int' hidden='true'>tshj.active_end_date</property>
        <property name='JobID' type='uniqueidentifier' hidden='true'>tshj.job_id</property>

        <version min_major='7' max_major='8'>
            <property name='JobCount' type='int' expensive='true' access='Read'>(SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = tshj.schedule_id))</property>
        </version>
        <version min_major='9' >
            <property name='JobCount' type='int' access='Read'>tshj.job_count</property>
            <property name='ScheduleUid' type='uniqueidentifier'>tshj.schedule_uid</property>
        </version>
    </properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SPHelpSchedule' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='#tmp_sp_help_schedule' alias='tshs'/>
		<prefix>
create table #tmp_sp_help_schedule
(schedule_id int null, schedule_uid uniqueidentifier null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, job_count int null)
insert into #tmp_sp_help_schedule exec msdb.dbo.sp_help_schedule
		</prefix>
		<postfix>
drop table #tmp_sp_help_schedule
		</postfix>
		
		<post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
		<post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
		<post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
		<post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshs.schedule_name</property>
		<property name='ID' type='int'>tshs.schedule_id</property>
    <property name='DateCreated' type='datetime' access="Read">tshs.date_created</property>
		<property name='IsEnabled' type='bit' cast='true'>tshs.enabled</property>
		<property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>tshs.freq_type</property>						
		<property name='FrequencyInterval' type='int'>tshs.freq_interval</property>		
		<property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>tshs.freq_subday_type</property>
		<property name='FrequencySubDayInterval' type='int'>tshs.freq_subday_interval</property>
		<property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">tshs.freq_relative_interval</property>
		<property name='FrequencyRecurrenceFactor' type='int'>tshs.freq_recurrence_factor</property>
		<property name='ActiveStartDate' type='datetime'>null</property>
		<property name='ActiveStartDateInt' type='int' hidden='true'>tshs.active_start_date</property>
		<property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>tshs.active_start_time</property>
		<property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>tshs.active_end_time</property>
		<property name='ActiveEndDate' type='datetime'>null</property>		
		<property name='ActiveEndDateInt' type='int' hidden='true'>tshs.active_end_date</property>
		<property name='JobCount' type='int' access='Read'>tshs.job_count</property>
    <property name='ScheduleUid' type='uniqueidentifier' access="Read">tshs.schedule_uid</property>
  </properties>
</EnumObject>
n<?xml version='1.0' ?>
<EnumObject type='sysjobschedules' impl_type='SqlObject' min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='msdb.dbo.sysjobschedules sjs' />
		</version>
		<version min_major='9' >
			<property_link table='msdb.dbo.sysschedules sjs' />
		</version>
		<post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
		<post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
		<post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
		<post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>sjs.name</property>
		<property name='ID' type='int'>sjs.schedule_id</property>
		<property name='DateCreated' type='datetime' access='Read'>sjs.date_created</property>
		<property name='IsEnabled' type='bit'>convert(bit,sjs.enabled)</property>
		<property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>sjs.freq_type</property>
		<property name='FrequencyInterval' type='int'>sjs.freq_interval</property>
		<property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>sjs.freq_subday_type</property>
		<property name='FrequencySubDayInterval' type='int'>sjs.freq_subday_interval</property>
		<property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">sjs.freq_relative_interval</property>
		<property name='FrequencyRecurrenceFactor' type='int'>sjs.freq_recurrence_factor</property>
		<property name='ActiveStartDateInt' type='int' hidden='true'>sjs.active_start_date</property>
		<property name='ActiveStartDate' type='datetime'>cast(null as datetime)</property>
		<property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>sjs.active_start_time</property>
		<property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='ActiveEndDateInt' type='int' hidden='true'>sjs.active_end_date</property>
		<property name='ActiveEndDate' type='datetime'>cast(null as datetime)</property>
		<property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>sjs.active_end_time</property>
		<property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='JobCount' type='int' expensive='true' access='Read'>(SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = sjs.schedule_id))</property>
	</properties>
</EnumObject>
Y<?xml version="1.0" ?>
<EnumObject type="PrimaryFile" impl_type="PrimaryFile" min_major='7' >
	<settings>
		<property_link table="#smoPrimaryFileProp p" fields="#Property#Value#" />
		<prefix fields="#Property#Value#"> 
			declare @command nvarchar(300)
			select @command = 'dbcc checkprimaryfile (N'''+ @fileName + ''' , 2)'
			create table #smoPrimaryFileProp(property sql_variant NULL, value sql_variant NULL) 
			insert #smoPrimaryFileProp exec (@command)
		</prefix>
		<postfix fields="#Property#Value#"> drop table #smoPrimaryFileProp</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255'>rtrim(@fileName)</property>
		<property name="Property" type="sysname" access="Read">p.property</property>
		<property name="Value" type="sysname" access="Read">p.value</property>
	</properties>
</EnumObject>
'<?xml version="1.0" ?>
<EnumObject type="OLEDBProvider" impl_type="SqlObject" min_major='7' >
	<settings main_table="#OLEDBProv op">
		<prefix> create table #OLEDBProv ( Name sysname NOT NULL, ParseName sysname NOT 
			NULL,Description sysname NOT NULL ) insert #OLEDBProv EXECUTE master.dbo.xp_enum_oledb_providers</prefix>
		<postfix> drop table #OLEDBProv</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>OLEDBProvider</property>
		<property name="Name" type="sysname" access="Read">op.Name</property>
		<property name="ParseName" type="sysname" access="Read">op.ParseName</property>
		<property name="Description" type="sysname" access="Read">op.Description</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="OLEDBProviderProp" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="Name" local="Name"/>
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#OLEDBProvProp prop" />
		<prefix>
			<link_multiple no='1' expression="
			create table #OLEDBProvProp (ID int NOT NULL,Description sysname NOT NULL , Flags int NOT NULL, Name sysname null) 
			declare name_cursor cursor 
				FOR {0} 
				for read only 
			open name_cursor 
			DECLARE @providername sysname 
			FETCH NEXT FROM name_cursor INTO @providername 
			WHILE (@@FETCH_STATUS &lt;&gt; -1) 
			BEGIN 
				IF (@@FETCH_STATUS &lt;&gt; -2) 
				BEGIN 
					SELECT @providername = RTRIM(@providername) 
					insert #OLEDBProvProp (ID,Description, Flags) EXECUTE master.dbo.xp_prop_oledb_provider @providername 
					update #OLEDBProvProp set Name = @providername where Name is null
				END 
				FETCH NEXT FROM name_cursor INTO @providername 
			END 
			CLOSE name_cursor 
			DEALLOCATE name_cursor">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix> 
			drop table #OLEDBProvProp
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname">prop.Name</property>
		<property name="ID" type="int">prop.ID</property>
		<property name="Description" type="sysname">prop.Description</property>
		<property name="Flags" type="int">prop.Flags</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' >
	<settings main_table="#SmoPrimayChildren s">
		<prefix>
			declare @command nvarchar(300)
			select @command = 'dbcc checkprimaryfile (N''' + @fileName + ''' , 3)'
			create table #SmoPrimayChildren(status INT,fileid INT,name sysname,filename nvarchar(512))
			insert #SmoPrimayChildren exec (@command)
		</prefix>
		<postfix>  
			drop table  #SmoPrimayChildren		
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255'>s.name</property>
		<property name="ID" type="int" access="Read">s.fileid</property>
		<property name="IsFile" type="bit" access="Read" cast='true'>case when (s.status &amp; 0x40) = 0 then 1 else 0 end</property>
		<property name="FileName" type="nvarchar" size="512" access="Read">RTRIM(s.filename)</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Check" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.type = 'C'</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.check_constraints AS cstr" />
		</version>
	</settings>
	<properties>
		<include file='inc_constraint.xml' />
		<include file='inc_fulltext.xml' alias = 'cstr' ro_after_creation='#Text#'/>
		
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS tr'>tr.type = &lt;msparam&gt;TR&lt;/msparam&gt;</property_link>
		</version>
    <version min_major='9' cloud_min_major='10'>
      <property_link table='sys.objects AS tr'>tr.type in (&lt;msparam&gt;TR&lt;/msparam&gt;, &lt;msparam&gt;TA&lt;/msparam&gt;)</property_link>
      <property_link table='sys.triggers AS trr'
				fields='#IsEnabled#InsteadOf#NotForReplication#'>trr.object_id = tr.object_id</property_link>
      <property_link fields='#Insert#InsertOrder#' left_join='sys.trigger_events AS tei'>tei.object_id = tr.object_id and tei.type=&lt;msparam&gt;1&lt;/msparam&gt;</property_link>
      <property_link fields='#Update#UpdateOrder#' left_join='sys.trigger_events AS teu'>teu.object_id = tr.object_id and teu.type=&lt;msparam&gt;2&lt;/msparam&gt;</property_link>
      <property_link fields='#Delete#DeleteOrder#' left_join='sys.trigger_events AS ted'>ted.object_id = tr.object_id and ted.type=&lt;msparam&gt;3&lt;/msparam&gt;</property_link>
    </version>
    <version min_major='9'>
      <property_link fileds='#ClassName#MethodName#AssemblyName#'
							left_join='sys.assembly_modules AS mod'>mod.object_id = tr.object_id</property_link>
      <property_link fields='#AssemblyName#'
							left_join='sys.assemblies AS asmbl'>asmbl.assembly_id = mod.assembly_id</property_link>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#ParentID#ExtPropClass#ExtPropMajorID#ExtPropMinorID#ObjectNameFromFilter#"/>
        <include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#" />
		<include file='mixed_module_link.xml' alias='tr' 
			for='#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#QuotedIdentifierStatus#Text#BodyStartIndex#IsEncrypted#' />
    <version min_major='7' max_major='8'>
			<property name="IsEnabled" type="bit" cast='true' mode="design">1-OBJECTPROPERTY(tr.id,N'ExecIsTriggerDisabled')</property>
			<property name="InsteadOf" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id, N'ExecIsInsteadOfTrigger')</property>
			<property name="Insert" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsInsertTrigger')</property>
			<property name="InsertOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstInsertTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastInsertTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="Update" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsUpdateTrigger')</property>
			<property name="UpdateOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstUpdateTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastUpdateTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="Delete" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsDeleteTrigger')</property>
			<property name="DeleteOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstDeleteTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastDeleteTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="NotForReplication" type="bit" cast='true' mode="deploy">OBJECTPROPERTY(tr.id,N'ExecIsTriggerNotForRepl')</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>
		</version>
		
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'TRIGGER'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		
		<version min_major='9' cloud_min_major='10'>
			<property name="IsEnabled" type="bit" mode="design">~trr.is_disabled</property>
			<property name="InsteadOf" type="bit" mode="design">trr.is_instead_of_trigger</property>
			<property name="Insert" type="bit" cast='true' mode="design">ISNULL(tei.object_id,0)</property>
			<property name="InsertOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN tei.is_first = 1 THEN 0 WHEN tei.is_last = 1 THEN 2 ELSE 1 END</property>
			<property name="Update" type="bit" cast='true' mode="design">ISNULL(teu.object_id,0)</property>
			<property name="UpdateOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN teu.is_first = 1 THEN 0 WHEN teu.is_last = 1 THEN 2	ELSE 1 END</property>
			<property name="Delete" type="bit" cast='true' mode="design">ISNULL(ted.object_id,0)</property>
			<property name="DeleteOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN ted.is_first = 1 THEN 0 WHEN ted.is_last = 1 THEN 2	ELSE 1 END</property>
			<property name="NotForReplication" type="bit" mode="deploy">trr.is_not_for_replication</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
		</version>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefineFunction" impl_type="SqlObject" min_major='8' cloud_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table="dbo.sysobjects AS udf">udf.xtype in ( 'TF', 'FN', 'IF') and udf.name not like N'#%%'</property_link>
			<property_link fields='#TableVariableName#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#' 
					left_join='syscolumns AS ret_param'>ret_param.id = udf.id and ret_param.number = &lt;msparam&gt;0&lt;/msparam&gt; and ret_param.name=''</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<!--FN = SQL Scalar-Function
				IF = SQL Inlined-table-valued-Function
				TF = SQL Table-valued-Function
				FS = Assembly  (CLR) Scalar-Function
				FT = Assembly (CLR) Table-valued Function
			-->
			<property_link table="sys.all_objects AS udf">udf.type in ('TF', 'FN', 'IF', 'FS', 'FT')</property_link>
			<property_link fields='#TableVariableName#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#XmlSchemaNamespaceSchema#XmlDocumentConstraint#UserType#'
					left_join='sys.all_parameters AS ret_param'>ret_param.object_id = udf.object_id and ret_param.is_output = &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='udf' />
        <include file='inc_system_table_view_sp_udf.xml' alias='udf' for="#IsSystemObject#" />
		<include file='inc_type.xml' alias='ret_param' />
		<include file='mixed_module_link.xml' alias='udf' 
			for='#ReturnsNullOnNullInput#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#IsSchemaBound#IsEncrypted#Text#TextBody#BodyStartIndex#'/>
		
		<version min_major='7' max_major='8'>
			<property name="IsDeterministic" type="bit" access="Read" cast='true'>OBJECTPROPERTY(udf.id, N'IsDeterministic')</property>
			<property name="FunctionType" type="int" report_type='UserDefinedFunctionType' mode="design">(case when 1 = OBJECTPROPERTY(udf.id, N'IsScalarFunction') then 1 when 1 = OBJECTPROPERTY(udf.id, N'IsInlineFunction') then 3 when 1 = OBJECTPROPERTY(udf.id, N'IsTableFunction') then 2 else 0 end)</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">isnull(OBJECTPROPERTYEX(udf.id, N'IsQuotedIdentOn'),1)</property>
			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'FUNCTION'</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
			<property name="IsDeterministic" type="bit" access="Read" cast='true'>OBJECTPROPERTYEX(udf.object_id, N'IsDeterministic')</property>
			<property name="FunctionType" type="int" report_type='UserDefinedFunctionType' mode="design">(case when 'FN' = udf.type then 1 when 'FS' = udf.type then 1 when 'IF' = udf.type then 3 when 'TF' = udf.type then 2 when 'FT' = udf.type then 2 else 0 end)</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN udf.type IN ('FN','IF','TF') THEN 1 WHEN udf.type IN ('FS','FT') THEN 2 ELSE 1 END</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">OBJECTPROPERTYEX(udf.object_id, N'IsQuotedIdentOn')</property>
		</version>
		<version min_major='10' cloud_min_major='10'>
			<property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
			<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>udf.object_id</property>
		</version>
		<property name="TableVariableName" type='sysname' mode="design">ret_param.name</property>

		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
91<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.syscolumns AS clmns' />
			<property_link fields='#InPrimaryKey#' left_join='dbo.sysindexes AS ik'>ik.id = clmns.id and 0 != ik.status &amp; 0x0800</property_link>
			<property_link fields='#InPrimaryKey#' left_join='dbo.sysindexkeys AS cik'>cik.indid = ik.indid and cik.colid = clmns.colid and cik.id = clmns.id</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join='dbo.sysobjects AS d'>d.id = clmns.cdefault and 0=d.category &amp; 0x0800</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join='dbo.sysobjects AS r'>r.id = clmns.domain</property_link>
			<post_process fields='#ComputedText#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessText' />
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table='sys.all_columns AS clmns' />
			<property_link fields='#IdentitySeed#IdentityIncrement#NotForReplication#' left_join='sys.identity_columns AS ic'>ic.object_id = clmns.object_id and ic.column_id = clmns.column_id</property_link>
			<property_link fields='#ComputedText#IsPersisted#' left_join='sys.computed_columns AS cc'>cc.object_id = clmns.object_id and cc.column_id = clmns.column_id</property_link>
			<property_link fields='#InPrimaryKey#' left_join='sys.indexes AS ik'>ik.object_id = clmns.object_id and 1=ik.is_primary_key</property_link>
			<property_link fields='#InPrimaryKey#' left_join='sys.index_columns AS cik'>cik.index_id = ik.index_id and cik.column_id = clmns.column_id and cik.object_id = clmns.object_id and 0 = cik.is_included_column</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join='sys.objects AS d'>d.object_id = clmns.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join='sys.objects AS r'>r.object_id = clmns.rule_object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">clmns.name</property>
			<property name="ID" type="int" access="Read" cast='true'>clmns.colid</property>
			<!-- column specific props-->
			<property name="Nullable" type="bit" cast='true' mode="design">clmns.isnullable</property>
			<property name="Computed" type="bit" cast='true' read_only_after_creation="true" mode="design">clmns.iscomputed</property>
			<property name="InPrimaryKey" type="bit" access='read' cast='true'>ISNULL(cik.colid, 0)</property>
			<property name="AnsiPaddingStatus" type="bit" cast='true' access='read'>COLUMNPROPERTY(clmns.id, clmns.name, N'UsesAnsiTrim')</property>
			<property name="RowGuidCol" type="bit" cast='true' mode="design">clmns.colstat &amp; 2</property>
			<property name="NotForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">clmns.colstat &amp; 8</property>
			<property name="IsFullTextIndexed" type="bit" cast='true' access='read' >COLUMNPROPERTY(clmns.id, clmns.name, N'IsFulltextIndexed')</property>
			<property name="ComputedText" type="nvarchar" size='4000' expensive='true' read_only_after_creation="true" mode="design">cast(clmns.id as nvarchar(20)) + '_' + cast(clmns.colid as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20)) + '_0'</property>
			<property name="Identity" type="bit" cast='true' read_only_after_creation="true" mode="design">COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity')</property>
			<property name="IsForeignKey" type="bit" cast='true' 
				access='read' >ISNULL((select top 1 1 from dbo.sysforeignkeys AS colfk where colfk.fkey = clmns.colid and colfk.fkeyid = clmns.id), 0)</property>
			<version min_major='8' max_major='8'>
				<property name="Collation" type="sysname" mode="design">ISNULL(clmns.collation, N'')</property>
				
				<property name="IdentitySeed" type="bigint" cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_seed({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
				<property name="IdentityIncrement" type="bigint" cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_incr({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
			</version>
			<version min_major='7' max_major='7'>
				<property name="IdentitySeed" type="int" report_type2 = 'System.Int64' cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_seed({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
				<property name="IdentityIncrement" type="int" report_type2 = 'System.Int64' cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_incr({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
			</version>

			<!-- default section -->
			<property name="ColumnDefaultID" type="int" hidden='true'>clmns.cdefault</property>
			<property name="ParentID" type="int" hidden="true">clmns.id</property>			
			<property name="Default" type="sysname" read_only_after_creation="true">(case when clmns.cdefault = 0 then N'' else d.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when clmns.cdefault = 0 then N'' else user_name(d.uid) end)</property>
			<!-- rule section -->
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when clmns.domain = 0 then N'' else r.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when clmns.domain = 0 then N'' else user_name(r.uid) end)</property>

			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
			-->
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'COLUMN'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">clmns.name</property>
			<property name="ID" type="int">clmns.column_id</property>
			<!-- column specific props-->
			<property name="Nullable" type="bit" mode="design">clmns.is_nullable</property>
			<property name="Computed" type="bit" read_only_after_creation="true" mode="design">clmns.is_computed</property>
			<property name="InPrimaryKey" type="bit" access='read' cast='true'>ISNULL(cik.index_column_id, 0)</property>
			<property name="AnsiPaddingStatus" type="bit" access='read'>clmns.is_ansi_padded</property>
			<property name="RowGuidCol" type="bit" cast='true' mode="design">clmns.is_rowguidcol</property>
			<property name="NotForReplication" type="bit" read_only_after_creation="true" mode="deploy">ISNULL(ic.is_not_for_replication, 0)</property>
			<property name="IsFullTextIndexed" type="bit" cast='true' access='read'>COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsFulltextIndexed')</property>
            <property name="IsDeterministic" type="bit" cast='true' access='read'>ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsDeterministic'),0)</property>
            <property name="IsPrecise" type="bit" cast='true' access='read'>ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsPrecise'),0)</property>
			<property name="ComputedText" type="nvarchar" size='max' expensive='true' read_only_after_creation="true" mode="design">ISNULL(cc.definition,N'')</property>
			<property name="IsPersisted" type="bit" cast="true" mode="design">ISNULL(cc.is_persisted, 0)</property>
			<property name="Collation" type="sysname" mode="design">ISNULL(clmns.collation_name, N'')</property>
			<property name="IsForeignKey" type="bit" cast='true' 
				access='read' >ISNULL((select TOP 1 1 from sys.foreign_key_columns AS colfk where colfk.parent_column_id = clmns.column_id and colfk.parent_object_id = clmns.object_id), 0)</property>
			<!-- identity section -->
			<property name="Identity" type="bit" read_only_after_creation="true" mode="design">clmns.is_identity</property>
			<property name="IdentitySeed" type="bigint" cast='true' read_only_after_creation="true" mode="design">ISNULL(ic.seed_value,0)</property>
			<property name="IdentityIncrement" type="bigint" cast='true' read_only_after_creation="true" mode="design">ISNULL(ic.increment_value,0)</property>

			<!-- default section -->
			<property name="ColumnDefaultID" type="int" hidden='true'>clmns.default_object_id</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else d.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else schema_name(d.schema_id) end)</property>
			<!-- rule section -->
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when clmns.rule_object_id = 0 then N'' else r.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when clmns.rule_object_id = 0 then N'' else schema_name(r.schema_id) end)</property>
		</version>
		<version min_major='9' max_major='9'>
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>1</property>
			<property name="ParentID" type="int" hidden="true">clmns.object_id</property>
		</version>

    <version min_major='10' cloud_min_major='10'>
      <!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="ExtPropClassforColumn"/>
        </link_multiple>
      </property>
    </version>
    
    <version min_major='10' cloud_min_major='10'>
      <!-- column specific props-->
      <property name="IsFileStream" type="bit" cast='true' read_only_after_creation="true">clmns.is_filestream</property>
      <property name="ParentID" type="int" hidden="true">clmns.object_id</property>
      <property name="IsSparse" type="bit" cast="true" mode="design">clmns.is_sparse</property>
      <property name="IsColumnSet" type="bit" cast="true" read_only_after_creation="true" mode="design">clmns.is_column_set</property>
    </version>
		
		<include alias = 'clmns' file='inc_type.xml' />
		
		<!-- extended properties support -->
		<version min_major='7' max_major='9'>
			<property name="ExtPropMajorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ParentID" />
				</link_multiple>
			</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
		
		<version min_major='10' cloud_min_major='10'>
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="ExtPropMajorIDforColumn"/>
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>

		<!-- permission support-->
		<property name="ObjectName" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
		<property name="ObjectSchema" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Schema" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OrderColumn" impl_type="SqlObject" min_major='10' >
	<settings >
		<parent_link>
			<link parent="ID" local="UdfID" />
		</parent_link>
		<property_link table = "sys.function_order_columns AS oc"></property_link>
		<property_link fields = '#Name#' join="sys.columns AS clmns">clmns.object_id = oc.object_id and clmns.column_id = oc.column_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="ID" type="int" access="Read">oc.order_column_id</property>
		<property name="Descending" type="bit">oc.is_descending</property>		
		<property name="Name" type="sysname">clmns.name</property>
		<property name="UdfID" type="int" hidden='true'>oc.object_id</property>
	</properties>
</EnumObject>

@<?xml version='1.0' ?>
<EnumObject type='SysjobsView' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='msdb.dbo.sysjobs_view' alias='sv'/>

		<property_link fields = '#Category#CategoryType#' join='#tmp_sp_help_category' alias='tshc'>sv.category_id = tshc.category_id</property_link>

		<property_link fields = '#OperatorToEmail#' left_join='#tmp_sp_help_operator' alias='tsho_e'>tsho_e.id = sv.notify_email_operator_id</property_link>
		<property_link fields = '#OperatorToNetSend#' left_join='#tmp_sp_help_operator' alias='tsho_ns'>tsho_ns.id = sv.notify_netsend_operator_id</property_link>
		<property_link fields = '#OperatorToPage#' left_join='#tmp_sp_help_operator' alias='tsho_p'>tsho_p.id = sv.notify_page_operator_id</property_link>

		<prefix fields = '#Category#CategoryType#'>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category exec msdb.dbo.sp_help_category
		</prefix>
		<version min_major='7' max_major='8'>
<!-- Yukon SP2 bug 401299: In SQL 2000, aka major version 8, sp_help_operator 
is available only to sysadmin, the db_owner or anyone explicitly 
granted. Otherwise it raises an error which throws back into SMO. SQL 
2000 doesn't have TRY..CATCH so we explicitly check for permission 
before trying to call it.-->
			
<!--action = 224(EXECUTE) and protecttype != 206 (not DENY) and (uid = 0 or uid = USER_ID())(public or to me)-->
			<prefix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
create table #tmp_sp_help_operator
(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)
			
if ((ISNULL(IS_SRVROLEMEMBER('sysadmin'), 0) != 0) or
    exists (select * from sysprotects
            where OBJECT_NAME(id) = 'sp_help_operator'
            and action = 224 
            and protecttype != 206 
            and (uid = 0 or uid = USER_ID())
           )
   )
  insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
		</prefix>
		</version>
		<version min_major='9'>
			<prefix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
				create table #tmp_sp_help_operator
				(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)
				insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
			</prefix>
		</version>
		<postfix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
drop table #tmp_sp_help_operator
		</postfix>
		<postfix fields = '#Category#CategoryType#'>
drop table #tmp_sp_help_category
		</postfix>
		<post_process fields = '#CurrentRunRetryAttempt#CurrentRunStatus#CurrentRunStep#HasSchedule#HasServer#HasStep#LastRunDateInt#LastRunTimeInt#LastRunDate#LastRunOutcome#NextRunDateInt#NextRunTimeInt#NextRunDate#NextRunScheduleID#JobType#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessJobActivity'
				triggered_fields='#job_id#'/>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @CategoryID=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="CategoryID" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name='Name' type='sysname'>sv.name</property>
		<property name='JobID' type='uniqueidentifier' access='Read'>sv.job_id</property>
		<property name='OriginatingServer' type='sysname' access="Read">sv.originating_server</property>
		<property name='IsEnabled' type='bit' cast='true'>sv.enabled</property>
		<property name='Description' type='nvarchar' size = '512'>ISNULL(sv.description,N'')</property>
		<property name='StartStepID' type='int'>sv.start_step_id</property>
		<property name='OwnerLoginName' type='sysname'>ISNULL(suser_sname(sv.owner_sid), N'')</property>
		<property name="EventLogLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_eventlog</property>
		<property name="EmailLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_email</property>
		<property name="NetSendLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_netsend</property>
		<property name="PageLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_page</property>
		<property name="DeleteLevel" type="int" report_type="Agent.CompletionAction">sv.delete_level</property>
		<property name='DateCreated' type='datetime' access="Read">sv.date_created</property>
		<property name='DateLastModified' type='datetime' access="Read">sv.date_modified</property>
		<property name='VersionNumber' type='int' access='Read'>sv.version_number</property>
		<property name='Category' type='sysname' expensive = 'true'>tshc.name</property>
		<property name='CategoryID' type='int' expensive = 'false'>sv.category_id</property>
		<property name='CategoryType' type='tinyint' expensive = 'true'>tshc.category_type</property>
		<property name="OperatorToEmail" type="sysname" expensive = 'true'>ISNULL(tsho_e.name,N'')</property>
		<property name="OperatorToNetSend" type="sysname" expensive = 'true'>ISNULL(tsho_ns.name,N'')</property>
		<property name="OperatorToPage" type="sysname" expensive = 'true'>ISNULL(tsho_p.name,N'')</property>

		<property name='job_id' type='nvarchar' size = '100' hidden='true' cast='true'>sv.job_id</property>
		<!-- activity properties -->
		<property name="CurrentRunRetryAttempt" type="int" access="Read" expensive = 'true' notusage="filter,order">null</property>
		<property name="CurrentRunStatus" type="int" access="Read" report_type="Agent.JobExecutionStatus" expensive = 'true' notusage="filter,order">null</property>
		<property name="CurrentRunStep" type="sysname" access="Read" expensive = 'true' notusage="filter,order">null</property>
		<property name="HasSchedule" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="HasServer" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="HasStep" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="LastRunDate" type="datetime" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="LastRunOutcome" type="int" report_type="Agent.CompletionResult" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="NextRunDate" type="datetime" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="NextRunScheduleID" type="int" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="JobType" type="int" report_type="Agent.JobType" access='Read' expensive = 'true' notusage="filter,order">null</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="AditionalParameters" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table = '#srvargs arg'/>
		<prefix > 
declare @Arg sysname
declare @Param sysname
declare @n int

select @n=0
select @Param='dummy'

create table #srvargs (value nvarchar(512) NOT NULL)

while(not @Param is null)
begin
	select @Param=null
	select @Arg='SqlArg'+convert(nvarchar,@n)

		</prefix>
		<version min_major = '7' max_major = '7'>
			<prefix > 
	exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT
			</prefix>
		</version>
		<version min_major = '8'>
			<prefix > 
	exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT
			</prefix>
		</version>
		<prefix > 
	insert #srvargs  select @Param where not @Param is null

	select @n=@n+1
end
		</prefix>
		<postfix>
drop table #srvargs		
		</postfix>
	</settings>
	<properties>
		<property name="Value" type="nvarchar" size="512">arg.value</property>
	</properties>
</EnumObject>	
<?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ID' local='RoleID' />
		</parent_link>
		<request_parent_select>
			<field name='ID' />
		</request_parent_select>
		<version min_major = '7' max_major = '8'>
			<property_link table = '#tmp_role_member_ids AS m'/>
			<property_link join = 'dbo.sysusers AS u'>u.uid = m.id</property_link>
    	    <prefix>
			    <link_multiple no='1' expression="
set NOCOUNT OFF
CREATE TABLE #tmp_role_member_ids (id int not null, role_id int null, sub_role_id int null, generation int null)
declare @generation int
set @generation = 0
INSERT INTO #tmp_role_member_ids (id) {0}
UPDATE #tmp_role_member_ids SET role_id = id, sub_role_id = id, generation=@generation
WHILE ( 1=1 )
BEGIN
	INSERT INTO #tmp_role_member_ids (id, role_id, sub_role_id, generation)
		SELECT a.memberuid, b.role_id, a.groupuid, @generation + 1
            FROM sysmembers AS a INNER JOIN #tmp_role_member_ids AS b
            ON a.groupuid = b.id
			WHERE b.generation = @generation
	if @@ROWCOUNT &lt;= 0
		break
	set @generation = @generation + 1
END
delete #tmp_role_member_ids WHERE id in ( {0} )
UPDATE #tmp_role_member_ids SET generation = 0;
INSERT INTO #tmp_role_member_ids (id, role_id, generation) 
    SELECT distinct id, role_id, 1 FROM #tmp_role_member_ids
DELETE #tmp_role_member_ids WHERE generation = 0
">
				<link_field field="ParentSelect" />
			</link_multiple>
    	    </prefix>
    		<postfix>
	    		drop table #tmp_role_member_ids
	    	</postfix>
        </version>
		<version min_major = '9' cloud_min_major='10'>
			<property_link table = '#tmp_role_member_ids AS m'/>
            <property_link join = 'sys.database_principals AS u'>u.principal_id = m.id</property_link>            
    	<prefix>
			<link_multiple no='1' expression="
set NOCOUNT OFF
CREATE TABLE #tmp_role_member_ids (id int not null, role_id int null, sub_role_id int null, generation int null)
declare @generation int
set @generation = 0
INSERT INTO #tmp_role_member_ids (id) {0}
UPDATE #tmp_role_member_ids SET role_id = id, sub_role_id = id, generation=@generation
WHILE ( 1=1 )
BEGIN
	INSERT INTO #tmp_role_member_ids (id, role_id, sub_role_id, generation)
		SELECT a.member_principal_id, b.role_id, a.role_principal_id, @generation + 1
            FROM sys.database_role_members AS a INNER JOIN #tmp_role_member_ids AS b
			ON a.role_principal_id = b.id
            WHERE b.generation = @generation
	if @@ROWCOUNT &lt;= 0
		break
	set @generation = @generation + 1
END
DELETE #tmp_role_member_ids WHERE id in ({0} )
UPDATE #tmp_role_member_ids SET generation = 0;
INSERT INTO #tmp_role_member_ids (id, role_id, generation) 
    SELECT distinct id, role_id, 1 FROM #tmp_role_member_ids
DELETE #tmp_role_member_ids WHERE generation = 0
">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_role_member_ids
		</postfix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/' + {1}+ '[@Name=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="DatabaseUrn" />
				<link_field type='local' field="MemberType" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Name" type="sysname">u.name</property>		
		
		<version min_major = '7' max_major = '8'>
			<property name="ID" type="int">u.uid</property>
			<property name="Login" type="sysname">suser_sname(u.sid)</property>
			<property name="MemberType" type="sysname" hidden='true'>(CASE 
				WHEN u.issqlrole = 1 THEN N'Role' 
				WHEN u.isapprole = 1 THEN N'ApplicationRole'
				ELSE N'User' END)
			</property>
			<property name="RoleID" type="sysname" hidden='true'>m.role_id</property>
		</version>
		<version min_major = '9' cloud_min_major='10'>
			<property name="ID" type="int">u.principal_id</property>
			
			<property name="MemberType" type="sysname" hidden='true'>(CASE u.type 
				WHEN 'A' THEN N'ApplicationRole'
				WHEN 'R' THEN N'Role'
				ELSE N'User' END)
			</property>
			<property name="RoleID" type="sysname" hidden='true'>m.role_id</property>
		</version>

    <version min_major = '9'>
      <property name="Login" type="sysname">suser_sname(u.sid)</property>
    </version>
    <version cloud_min_major='10'>
      <property name="Login" type="sysname">0</property>
    </version>
    
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="WindowsGroup" impl_type="SqlObject" min_major='7' >
	<settings>

		<property_link table = "#tmpntgrp" alias = 't'/>
		
		<prefix>
			<link_multiple no = '1' 
expression = 'create table #tmpntgrp ( name sysname NULL, description nvarchar(255) NULL)
insert into #tmpntgrp exec master.dbo.xp_enumgroups {0}'>
				<link_field type='filter' field="Domain"/>
			</link_multiple>
		</prefix>
		
		<postfix>
			drop table #tmpntgrp
		</postfix>
		
	</settings>
	<properties>
		<property name="Name" type="sysname">t.name</property>
		<property name="Description" type="nvarchar" size='255'>t.description</property>
		<property name="Domain" type="nvarchar" size='255' expensive='true' usage='filter'>
			<link_multiple no = '1' expression = '{0}'>
				<link_field type='filter' field="Domain" default_value='NULL'/>
			</link_multiple>
		</property>
	</properties>
</EnumObject>
]<?xml version="1.0" ?>
<EnumObject type="NTLogin" impl_type="SqlObject" min_major='7' >
	<settings main_table="#tmpntlogin">
		<prefix>
			create table #tmpntlogin ( [Account name] sysname NULL, Type sysname	NULL, [Privilege] sysname NULL, [Mapped login name] sysname NULL, [Permission path] sysname NULL)
			insert into #tmpntlogin exec master.dbo.xp_logininfo 
		</prefix>
		<postfix>
			drop table #tmpntlogin
		</postfix>
	</settings>
	<properties>
		<property name="Account name" type="sysname">[Account name]</property>
		<property name="Type" type="sysname">Type</property>
		<property name="Privilege" type="sysname">[Privilege]</property>
		<property name="Mapped login name" type="sysname">[Mapped login name]</property>
		<property name="Permission path" type="sysname">[Permission path]</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Rule" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS obj">obj.xtype=N'R'</property_link>
		</version>
		<version min_major='9' >
			<property_link table="sys.objects" alias="obj">obj.type=N'R' and (0 = obj.parent_object_id or obj.parent_object_id is null)</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#'/>
		<include file='sql_module_link.xml' alias='obj' for='#Text#BodyStartIndex#' ro_after_creation='#Text#'/>
		
		<version min_major='8' max_major='8'>
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'RULE'</property>
		</version>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
O<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="RuleID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table = 'dbo.syscolumns AS c'/>
		</version>
		<version min_major='9' >
			<property_link join = 'sys.columns AS c'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="RuleID" type="int" hidden='true'>c.domain</property>
		</version>
		<version min_major='9' >
			<!--needed for children inc_DefaultRule_column-->
			<property name="RuleID" type="int" hidden='true'>c.rule_object_id</property>
		</version>
		<include file='inc_column_reference.xml' alias='c'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="RuleID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.systypes AS t' />
		</version>
		<version min_major='9' >
			<property_link join='sys.types AS t'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="RuleID" type="int" hidden='true'>t.domain</property>
		</version>
		<version min_major='9' >
			<property name="RuleID" type="int" hidden='true'>t.rule_object_id</property>
		</version>
		<include file='inc_type_reference.xml' alias='t' />
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Configuration" impl_type="SqlObject" min_major='7' >
  <settings>
	<version min_major='7' 	max_major = '8'>
		<property_link table="master.dbo.syscurconfigs" alias ="cfg"/>
		<property_link join="master.dbo.spt_values" alias ="v">v.type = 'C  ' and not cfg.status is null and v.number = cfg.config	</property_link>
		<property_link fields="#ConfigValue#" left_join="master.dbo.sysconfigures ucfg">ucfg.config = cfg.config</property_link>
	</version>
	<version min_major='9' >
		<property_link table="sys.configurations" alias= "cfg"/>
	</version>
  </settings>

  <properties>
	<version min_major='7' 	max_major = '8'>
		<property name="Name" type="nvarchar" size="35" access="Read">v.name</property>
		<property name="Number" type="int" access="Read">v.number</property>
		<property name="Minimum" type="int" access="Read">v.low</property>
		<property name="Maximum" type="int" access="Read">v.high</property>
		<property name="Dynamic" type="bit" access="Read" cast='true'>cfg.status &amp; 1</property>
		<property name="Advanced" type="bit" access="Read" cast='true'>cfg.status &amp; 2</property>
		<property name="ConfigValue" type="int" access="Read">ucfg.value</property>
		<property name="RunValue" type="int" access="Read">cfg.value</property>
		<property name="Description" type="nvarchar" size='510' access="Read">cfg.comment</property>			
	</version>
	<version min_major='9' >
		<property name="Name" type="nvarchar" size="35" access="Read">cfg.name</property>
		<property name="Number" type="int" access="Read">cfg.configuration_id</property>
		<property name="Minimum" type="int" access="Read">cfg.minimum</property>
		<property name="Maximum" type="int" access="Read">cfg.maximum</property>
		<property name="Dynamic" type="bit" access="Read">cfg.is_dynamic</property>
		<property name="Advanced" type="bit" access="Read">cfg.is_advanced</property>
		<property name="ConfigValue" type="int" access="Read">cfg.value</property>
		<property name="RunValue" type="int" access="Read">cfg.value_in_use</property>
		<property name="Description" type="nvarchar" size='510' access="Read">cfg.description</property>	
	</version>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="AffinityInfo" impl_type="SqlObject" min_major='10' min_minor ='50'>
  <settings>
	<version min_major='10' min_minor ='50'>
		<property_link table="sys.dm_os_memory_nodes" alias= "mnd"/>
    <property_link fields="#NodeStateDesc#GroupID#CpuIds#CpuAffinityMask#" join="(Select SUM (cpu_affinity_mask) as cpu_affinity_mask, 
		SUM(online_scheduler_mask) as online_scheduler_mask,
		processor_group,
		node_state_desc,
		memory_node_id
		from sys.dm_os_nodes 
		group by memory_node_id, node_state_desc, processor_group) AS nd">nd.memory_node_id = mnd.memory_node_id</property_link>
    <property_link fields="#AffinityType#" join="sys.dm_os_sys_info AS inf">1=1</property_link>
    <postfix fields="#NodeStateDesc#GroupID#CpuIds#CpuAffinityMask#">ORDER BY ID ASC</postfix>
  </version>
  </settings>
  <properties>
	<version min_major='10' min_minor ='50' >
    <property name="AffinityType" type="int">inf.affinity_type</property>
    <property name="NodeStateDesc" type="nvarchar" size ="256" access ="Read">nd.node_state_desc</property>
		<property name="ID" type="int" access="Read">mnd.memory_node_id</property>
		<property name="GroupID" type="int" access="Read">nd.processor_group</property>
		<property name="CpuIds" type="bigint" access="Read">nd.cpu_affinity_mask</property>
		<property name="CpuAffinityMask" type="bigint" access="Read">nd.online_scheduler_mask</property>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Default" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS obj">obj.xtype=N'D' and obj.name not like N'#%%' and 0=(obj.category &amp; 0x0800)</property_link>
		</version>
		<version min_major='9' >
			<property_link table="sys.objects" alias="obj">obj.type=N'D' and not(obj.parent_object_id > 0)</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#'/>
		<include file='sql_module_link.xml' alias='obj' for='#Text#BodyStartIndex#' ro_after_creation='#Text#'/>
		
		<version min_major='8' max_major='8'>
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'DEFAULT'</property>
		</version>
    <version min_major='10' >
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedDataType" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="systypes AS st">st.xusertype != st.xtype and st.name != N'sysname'</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sysobjects AS def">def.id = st.tdefault</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sysobjects AS rul">rul.id = st.domain</property_link>
		</version>
		<version min_major='9' max_major='9'>
			<property_link table="sys.types AS st">st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sys.objects AS def">def.object_id = st.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sys.objects AS rul">rul.object_id = st.rule_object_id</property_link>
		</version>
    <version min_major='10' cloud_min_major='10'>
			<property_link table="sys.types AS st">st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id and st.is_table_type != 1</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sys.objects AS def">def.object_id = st.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sys.objects AS rul">rul.object_id = st.rule_object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include file='inc_type_reference.xml' alias='st' />
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>st.xusertype</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
			<property name="ID" type="int">st.user_type_id</property>
		</version>
		<include file='inc_type.xml' alias='st' for='#Length#NumericPrecision#NumericScale#' ro_after_creation='#Length#NumericPrecision#NumericScale#'/>
		<property name="AllowIdentity" type="bit" access="Read" cast='true'>
			<link_multiple no='1' expression="CASE WHEN {0} IN (N'decimal', N'int', N'numeric', N'smallint', N'tinyint', N'bigint') THEN 1 ELSE 0 END">
				<link_field type='local' field="SystemType" />
			</link_multiple>
		</property>
		<version min_major='7' max_major='8'>
			<property name="MaxLength" type="smallint" access="Read">st.length</property>
			<property name="Nullable" type="bit" read_only_after_creation="true" mode="design">st.allownulls</property>
			<property name="VariableLength" type="bit" access="Read">st.variable</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when st.tdefault = 0 then N'' else def.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when st.tdefault = 0 then N'' else user_name(def.uid) end)</property>
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when st.domain = 0 then N'' else rul.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when st.domain = 0 then N'' else user_name(rul.uid) end)</property>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>1</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>0</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>st.xusertype</property>
			-->
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'TYPE'</property>
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="default"/>
				</link_multiple>
			</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation, N'')</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
			<property name="MaxLength" type="smallint" access="Read">st.max_length</property>
			<property name="Nullable" type="bit" read_only_after_creation="true" mode="design">st.is_nullable</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when st.default_object_id = 0 then N'' else def.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when st.default_object_id = 0 then N'' else schema_name(def.schema_id) end)</property>
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when st.rule_object_id = 0 then N'' else rul.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when st.rule_object_id = 0 then N'' else schema_name(rul.schema_id) end)</property>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation_name, N'')</property>
			<property name="VariableLength" type="bit" cast='true' access="Read">CASE WHEN baset.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END</property>
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>6</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>st.user_type_id</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		</version>
		<property name="SystemType" type="sysname" read_only_after_creation="true" mode="design">
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="BaseTypeHidden" />
			</link_multiple>
		</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedTableType" impl_type="SqlObject" min_major='10' cloud_min_major='10'>
	<settings>
		<property_link table="sys.table_types AS tt" />
		<property_link fields='#CreateDate#DateLastModified#ParentID#' left_join="sys.objects AS obj">obj.object_id = tt.type_table_object_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
    <include file='inc_type_reference.xml' alias='tt' for='#Owner#IsSchemaOwned#' />
		<property name="Name" type="sysname" mode="design">tt.name</property>
		<property name="ID" type="int" access='Read'>tt.type_table_object_id</property>
		<property name="Schema" type="sysname" mode="design">SCHEMA_NAME(tt.schema_id)</property>
		<property name="CreateDate" type="datetime" access='Read'>obj.create_date</property>
		<property name="DateLastModified" type="datetime" access='Read'>obj.modify_date</property>
		<property name="ParentID" type="int" hidden='true'>obj.parent_object_id</property>
		<property name="MaxLength" type="smallint" access="Read">tt.max_length</property>
		<property name="Nullable" type="bit" read_only_after_creation="true">tt.is_nullable</property>
		<property name="Collation" type="sysname" access="Read">ISNULL(tt.collation_name, N'')</property>
		<property name="IsUserDefined" type="bit" cast='true' read_only_after_creation="true" mode="design">case when tt.is_user_defined = 1 then 1 else 0 end</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>6</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>tt.user_type_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<property name="ExtPropClassforColumn" type="int" hidden='true'>8</property>
		<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>tt.user_type_id</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ForeignKey" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.type=N'F'</property_link>
			<property_link fields="#ReferencedKey#ReferencedTable#ReferencedTableSchema#" 
					join="dbo.sysreferences AS rfr">rfr.constid = cstr.id</property_link>
			<property_link fields="#ReferencedKey#" 
					left_join="dbo.sysindexes AS ki">ki.indid = rfr.rkeyindid AND ki.id = rfr.rkeyid</property_link>
			<property_link fields="#ReferencedTable#ReferencedTableSchema#" 
					join="dbo.sysobjects AS rtbl">rfr.rkeyid = rtbl.id</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.foreign_keys AS cstr" />
			<property_link fields="#ReferencedKey#" 
					left_join="sys.indexes AS ki">ki.index_id = cstr.key_index_id and ki.object_id = cstr.referenced_object_id</property_link>
			<property_link fields="#ReferencedTable#ReferencedTableSchema#" 
					join="sys.tables rtbl">rtbl.object_id = cstr.referenced_object_id</property_link>
		</version>
	</settings>
	<properties>
    
		<include file='inc_constraint.xml' />
		<version min_major='7' max_major='8'>
			<property name="ReferencedKey" type="sysname" access='Read'>ki.name</property>
			<property name="ReferencedTable" type="sysname" mode="design">rtbl.name</property>
			<property name="ReferencedTableSchema" type="sysname" mode="design">user_name(rtbl.uid)</property>
			<property name="DeleteAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">OBJECTPROPERTY(cstr.id, N'CnstIsDeleteCascade')</property>
			<property name="UpdateAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">OBJECTPROPERTY(cstr.id, N'CnstIsUpdateCascade')</property>
		</version>
		
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		
		<version min_major='9' cloud_min_major='10'>
			<property name="ReferencedKey" type="sysname" access='Read'>ki.name</property>
			<property name="ReferencedTable" type="sysname" mode="design">rtbl.name</property>
			<property name="ReferencedTableSchema" type="sysname" mode="design">schema_name(rtbl.schema_id)</property>
			<!--
			The referential action that was declared for this foreign key when an update happens, one of:
			0 = No Action
			1 = Cascade
			2 = Set Null
			3 = Set Default
			-->
			<property name="DeleteAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">cstr.delete_referential_action</property>
			<property name="UpdateAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">cstr.update_referential_action</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'>param.number = 1 or (param.number = 0 and 1 = OBJECTPROPERTY(param.id, N'IsScalarFunction') and isnull(param.name, '') != '')</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table='sys.all_parameters' alias='param'>param.is_output = 0</property_link>
		</version>
	</settings>
	<properties>
		<property name="Number" type="int" hidden='true'>-1</property>
		<version min_major='10' cloud_min_major='10'>
			<property name="IsReadOnly" type="bit" mode="design">param.is_readonly</property>
		</version>
		<include file='parameter.xml'/>	
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="BoundColumn" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="UserTypeID" />
		</parent_link>
		<version min_major = '7' max_major = '8'>
			<property_link table = 'dbo.syscolumns AS c'/>
			<property_link join="dbo.sysobjects AS t">t.id = c.id and t.type = 'U'</property_link>
		</version>			
		<version min_major = '9' >
			<property_link table = 'sys.columns AS c'/>
			<property_link fields = '#ObjectName#ObjectSchema#' join="sys.tables AS t">t.object_id = c.object_id</property_link>
		</version>			
	</settings>
	<properties>
		<property name="Name" type="sysname">c.name</property>	
		<property name="ObjectName" type="sysname" access="Read">t.name</property>
		<version min_major = '7' max_major = '8'>
			<property name="ObjectSchema" type="sysname" access="Read">user_name(t.uid)</property>		
			<property name="UserTypeID" type="int" hidden = 'true'>c.xusertype</property>
		</version>
		<version min_major = '9' >
			<property name="ObjectSchema" type="sysname" access="Read">schema_name(t.schema_id)</property>		
			<property name="UserTypeID" type="int" hidden = 'true'>c.user_type_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ServerOption" impl_type="SqlObject" min_major='7' >
	<settings>
	</settings>
	<properties>
		<property name="DisableDefaultConstraintCheck" type="bit" cast='true'>@@OPTIONS &amp; 1</property>
		<property name="ImplicitTransactions" type="bit" cast='true'>@@OPTIONS &amp; 2</property>
		<property name="CursorCloseOnCommit" type="bit" cast='true'>@@OPTIONS &amp; 4</property>
		<property name="AnsiWarnings" type="bit" cast='true'>@@OPTIONS &amp; 8</property>
		<property name="AnsiPadding" type="bit" cast='true'>@@OPTIONS &amp; 16</property>
		<property name="AnsiNulls" type="bit" cast='true'>@@OPTIONS &amp; 32</property>
		<property name="ArithAbort" type="bit" cast='true'>@@OPTIONS &amp; 64</property>
		<property name="ArithIgnore" type="bit" cast='true'>@@OPTIONS &amp; 128</property>
		<property name="QuotedIdentifier" type="bit" cast='true'>@@OPTIONS &amp; 256</property>
		<property name="NoCount" type="bit" cast='true'>@@OPTIONS &amp; 512</property>
		<property name="AnsiNullDefaultOn" type="bit" cast='true'>@@OPTIONS &amp; 1024</property>
		<property name="AnsiNullDefaultOff" type="bit" cast='true'>@@OPTIONS &amp; 2048</property>
		<property name="ConcatNullYieldsNull" type="bit" cast='true'>@@OPTIONS &amp; 4096</property>
		<property name="NumericRoundAbort" type="bit" cast='true'>@@OPTIONS &amp; 8192</property>
		<property name="AbortTransactionOnError" type="bit" cast='true'>@@OPTIONS &amp; 16384</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SystemDataType" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link table="dbo.systypes AS st">st.xusertype = st.xtype or st.name=N'sysname'</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.types AS st">st.schema_id=4</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_type_reference.xml' alias='st' for='#Name#'/>
		
		<property name="Numeric" type="bit" cast='true' access="Read">CASE WHEN st.name IN (N'decimal', N'numeric') THEN 1 ELSE 0 END</property>
		<property name="VariableLength" type="bit" access="Read" cast='true'>CASE WHEN st.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END</property>
		<property name="VariableMaxLength" type="int" access="Read">
			<link_multiple no='1' expression="CASE WHEN st.name IN ( N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar' ) THEN {0} ELSE 0 END">
				<link_field type='local' field="MaximumLength" />
			</link_multiple>
		</property>
		
		<property name="AllowIdentity" type="bit" access="Read" cast='true'>CASE WHEN st.name IN (N'decimal', N'int', N'numeric', N'smallint', N'tinyint', N'bigint') THEN 1 ELSE 0 END</property>
		<property name="AllowLength" type="bit" access="Read" cast='true'>CASE WHEN st.name IN ( N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar' ) THEN 1 ELSE 0 END</property>
				
		<version min_major = '7' max_major='8'>
			<property name="AllowNulls" type="bit" access="Read">st.allownulls</property>
			<property name="MaximumLength" type="int" access="Read" cast='true'>CASE WHEN st.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN st.prec ELSE st.length END</property>
			<property name="NumericPrecision" type="int" cast='true' access="Read">st.xprec</property>
			<property name="NumericScale" type="int" cast='true' access="Read">st.xscale</property>
		</version>
		<version min_major = '8' max_major='8'>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation,N'')</property>
		</version>
		
		<version min_major = '9' cloud_min_major='10'>
			<property name="AllowNulls" type="bit" access="Read">st.is_nullable</property>
			<property name="MaximumLength" type="int" access="Read" 
				cast='true'>CASE WHEN st.name IN (N'nchar', N'nvarchar') THEN st.max_length/2 ELSE st.max_length END</property>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation_name,N'')</property>											
			<property name="ID" type="int" access="Read">st.user_type_id</property>
			<property name="NumericPrecision" type="int" cast='true' access="Read">st.precision</property>
			<property name="NumericScale" type="int" cast='true' access="Read">st.scale</property>
		</version>
	</properties>
</EnumObject>
=
<?xml version="1.0" ?>
<EnumObject type="BackupDevice" impl_type="SqlObject" min_major='7' >
	<settings>
    <version min_major='7' max_major='8'>
      <property_link table = 'master.dbo.sysdevices o'>(o.status &amp; 0x10) &lt;&gt; 0</property_link>
    </version>
    <version min_major='9'>
      <property_link table="sys.backup_devices o"></property_link>
    </version>
    
  </settings>


  <properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">o.name</property>
    <version min_major='7' max_major='8'>
      <property name="PhysicalLocation" type="sysname" read_only_after_creation="true">o.phyname</property>		
  		<property name="BackupDeviceType" type="int" report_type='BackupDeviceType' read_only_after_creation="true">o.cntrltype</property>				
	  	<property name="SkipTapeLabel" type="bit" cast='true' read_only_after_creation="true">o.status &amp; 0x08</property>
    </version>
    <version min_major='9'>
      <property name="PhysicalLocation" type="sysname" read_only_after_creation="true">o.physical_name</property>
      <property name="BackupDeviceType" type="int" report_type='BackupDeviceType' read_only_after_creation="true">o.type</property>
      <!-- This property is not supported on 9.0 but we return 0 in case someone is relying on it to have a value-->
      <property name="SkipTapeLabel" type="bit" cast='true' read_only_after_creation="true">0</property>
    </version>
    <!--This object does not have an ID, so we're going to use the name  
    to calculate policy health.
    Note that this has to be consistent with the API implementation of UrnWithId.-->
    <version min_major = '10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='2' expression="'Server/{1}[@Name=' + quotename({0},'''') + ']'">
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='2' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/{1}\[@Name=' + QUOTENAME({0}, '''') + '\]%' ESCAPE '\') then 1 else 0 end">
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>
d<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS xproc'>xproc.xtype='X'</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table='sys.all_objects AS xproc'>xproc.type='X'</property_link>
		</version>
	</settings>>
	<properties>
		<include file='inc_object.xml' alias='xproc' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />
    
    <include file='inc_system_object.xml' alias='xproc' for="#IsSystemObject#" />    
      <property name="DllLocation" type="nvarchar" size="4000" read_only_after_creation="true">
        <link_multiple no='1' expression="ISNULL((select top 1 c.definition from sys.sql_modules AS c where c.object_id = {0}),N'')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>    
    <version min_major='10' >
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>`<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="DefaultID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table = 'dbo.syscolumns AS c'/>
		</version>
		<version min_major='9' >
			<property_link join = 'sys.columns AS c'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="DefaultID" type="int" hidden='true'>c.cdefault</property>
		</version>
		<version min_major='9' >
			<!--needed for children inc_DefaultRule_column-->
			<property name="DefaultID" type="int" hidden='true'>c.default_object_id</property>
		</version>
		<include file='inc_column_reference.xml' alias='c'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="DefaultID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.systypes AS t' />
		</version>
		<version min_major='9' >
			<property_link join='sys.types AS t'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="DefaultID" type="int" hidden='true'>t.tdefault</property>
		</version>
		<version min_major='9' >
			<property name="DefaultID" type="int" hidden='true'>t.default_object_id</property>
		</version>
		<include file='inc_type_reference.xml' alias='t' />
	</properties>
</EnumObject>
k<?xml version="1.0" ?>
<EnumObject min_major='7' >
	<settings/>
	<properties>
		<version min_major='7' max_major='8'>
			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='50' hidden='true'>
				<link_multiple no='1' expression="cast({0} as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20))">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
		<version min_major='9' >
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max'  hidden='true'>
				<link_multiple no='1' expression="object_def({0})">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10' >
	<settings />
	<properties>
		<version min_major='7' max_major='8'>
			<property name="AnsiNullsStatus" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id,N'ExecIsAnsiNullsOn')</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id,N'ExecIsQuotedIdentOn')</property>
			<property name="IsSchemaBound" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id, N'IsSchemaBound')</property>
			<property name="IsEncrypted" type="bit" cast='true' mode="deploy">(SELECT TOP 1 encrypted FROM dbo.syscomments p WHERE {0}.id = p.id AND p.colid=1 and p.number &lt; 2)</property>
			<property name="Recompile" type="bit" cast='true' mode="design">{0}.status &amp; 4</property>
			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='80' hidden='true'>cast({0}.id as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20)) + '_0'</property>
		</version>
		<version min_major='9'  cloud_min_major='10' >
			<property name="IsEncrypted" type="bit" cast='true' mode="deploy">CASE WHEN ISNULL({0}.definition, s{0}.definition) IS NULL THEN 1 ELSE 0 END</property>
			<property name="Recompile" type="bit" cast='true' mode="design">ISNULL({0}.is_recompiled, s{0}.is_recompiled)</property>
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max' hidden='true'>ISNULL({0}.definition, s{0}.definition)</property>
		</version>
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
`<?xml version="1.0" ?>
<EnumObject type="inc_procedures" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		<property name="FullName" type="nvarchar" size="300" hidden='true'>
			<link_multiple no='2' expression="QUOTENAME({1}) + '.' + QUOTENAME({0})">
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
			</link_multiple>
		</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="inc_urn" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject>K<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' cloud_min_major='10'>
  <settings>
    <version min_major='8'>
      <prefix fields='#MasterDBPath#MasterDBLogPath#ErrorLogPath#RootDirectory#InstallDataDirectory#PerfMonMode#MailProfile#BackupDirectory#AuditLevel#LoginMode#DefaultLog#DefaultFile#NumberOfLogFiles#BrowserStartMode#BrowserServiceAccount#InstallSharedDirectory#TcpEnabled#NamedPipesEnabled#ServiceStartMode#ServiceAccount#ServiceInstanceId#SqlDomainGroup#FilestreamShareName#FilestreamLevel#'>
        declare @HkeyLocal nvarchar(18)
        declare @ServicesRegPath nvarchar(34)
        declare @SqlServiceRegPath sysname
        declare @BrowserServiceRegPath sysname
        declare @MSSqlServerRegPath nvarchar(31)
        declare @InstanceNamesRegPath nvarchar(59)
        declare @InstanceRegPath sysname
        declare @SetupRegPath sysname
        declare @NpRegPath sysname
        declare @TcpRegPath sysname
        declare @RegPathParams sysname
        declare @FilestreamRegPath sysname

        select @HkeyLocal=N'HKEY_LOCAL_MACHINE'

        -- Instance-based paths
        select @MSSqlServerRegPath=N'SOFTWARE\Microsoft\MSSQLServer'
        select @InstanceRegPath=@MSSqlServerRegPath + N'\MSSQLServer'
        select @FilestreamRegPath=@InstanceRegPath + N'\Filestream'
        select @SetupRegPath=@MSSqlServerRegPath + N'\Setup'
        select @RegPathParams=@InstanceRegPath+'\Parameters'

        -- Services
        select @ServicesRegPath=N'SYSTEM\CurrentControlSet\Services'
        select @SqlServiceRegPath=@ServicesRegPath + N'\MSSQLSERVER'
        select @BrowserServiceRegPath=@ServicesRegPath + N'\SQLBrowser'

        -- InstanceId setting
        select @InstanceNamesRegPath=N'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL'

        -- Network settings
        select @NpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Np'
        select @TcpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Tcp'
      </prefix>
    </version>
	  <version min_major='8' max_major='9'>
      <prefix fields="#TapeLoadWaitTime#">
        declare @SmoTapeLoadWaitTime int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
      </prefix>
    </version>

	  <!-- Setup properties -->
    <version min_major="10">
      <prefix fields="#SqlDomainGroup#">
        declare @SqlGroup nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLGroup', @SqlGroup OUTPUT
      </prefix>
      <prefix fields="#FilestreamLevel#">
        declare @FilestreamLevel int
        exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'EnableLevel', @FilestreamLevel OUTPUT
      </prefix>
      <prefix fields="#FilestreamShareName#">
        declare @FilestreamShareName nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'ShareName', @FilestreamShareName OUTPUT
      </prefix>
      <prefix fields="#ProcessorUsage#">
        create table #tempproc(value int)
        insert #tempproc exec msdb.sys.sp_getProcessorUsage 
      </prefix>
    </version>
	  
    <!-- Setup Properties-->
    <version min_major="9">
      <prefix fields="#ServiceInstanceId#">
        declare @ServiceInstanceId nvarchar(512)
        EXEC master.sys.xp_regread @HkeyLocal, @InstanceNamesRegPath, @@SERVICENAME, @ServiceInstanceId OUTPUT
      </prefix>
      <prefix fields="#ServiceAccount#">
        declare @ServiceAccount nvarchar(512)
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'ObjectName', @ServiceAccount OUTPUT
      </prefix>
      <prefix fields="#ServiceStartMode#">
        declare @ServiceStartMode int
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'Start', @ServiceStartMode OUTPUT
      </prefix>
      <prefix fields="#NamedPipesEnabled#">
        declare @NamedPipesEnabled int
        exec master.dbo.xp_instance_regread @HkeyLocal, @NpRegPath, N'Enabled', @NamedPipesEnabled OUTPUT
      </prefix>
      <prefix fields="#TcpEnabled#">
        declare @TcpEnabled int
        EXEC master.sys.xp_instance_regread @HkeyLocal, @TcpRegPath, N'Enabled', @TcpEnabled OUTPUT
      </prefix>
      <prefix fields="#InstallSharedDirectory#">
        declare @InstallSharedDirectory nvarchar(512)
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @InstallSharedDirectory OUTPUT
      </prefix>
      <prefix fields="#BrowserServiceAccount#">
        declare @BrowserServiceAccount nvarchar(512)
        EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'ObjectName', @BrowserServiceAccount OUTPUT
      </prefix>
      <prefix fields="#BrowserStartMode#">
        declare @BrowserStartMode int
        EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'Start', @BrowserStartMode OUTPUT
      </prefix>
    </version>

    <!--imported from settings.xml-->
	  <version min_major='8' >
		  <prefix fields="#NumberOfLogFiles#">
			  declare @NumErrorLogs int
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'NumErrorLogs', @NumErrorLogs OUTPUT
		  </prefix>
		  <prefix fields="#DefaultFile#">
			  declare @SmoDefaultFile nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultData', @SmoDefaultFile OUTPUT
		  </prefix>
		  <prefix fields="#DefaultLog#">
			  declare @SmoDefaultLog nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultLog', @SmoDefaultLog OUTPUT
		  </prefix>
		  <prefix fields="#LoginMode#">
			  declare @SmoLoginMode int
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'LoginMode', @SmoLoginMode OUTPUT
		  </prefix>
		  <prefix fields="#AuditLevel#">
			  declare @SmoAuditLevel int
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'AuditLevel', @SmoAuditLevel OUTPUT
		  </prefix>
		  <prefix fields="#BackupDirectory#">
			  declare @BackupDirectory nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'BackupDirectory', @BackupDirectory OUTPUT
		  </prefix>
		  <prefix fields="#MailProfile#">
			  declare @SmoMailProfile nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'MailAccountName', @SmoMailProfile OUTPUT
		  </prefix>
		  <prefix fields="#PerfMonMode#">
			  declare @SmoPerfMonMode int
			  exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Performance', @SmoPerfMonMode OUTPUT

			  if @SmoPerfMonMode is null
			  begin
			  set @SmoPerfMonMode = 1000
			  end
		  </prefix>
		  <!-- Setup properties -->
		  <prefix fields="#InstallDataDirectory#">
			  declare @InstallSqlDataDir nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLDataRoot', @InstallSqlDataDir OUTPUT
		  </prefix>

		  <!--imported from information.xml-->
		  <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#">
			  create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
			  insert #SVer exec master.dbo.xp_msver
		  </prefix>
		  <prefix fields="#RootDirectory#">
			  declare @SmoRoot nvarchar(512)
			  exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @SmoRoot OUTPUT
		  </prefix>
		  <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
			  declare @Arg sysname
			  declare @Param sysname
			  declare @MasterPath nvarchar(512)
			  declare @LogPath nvarchar(512)
			  declare @ErrorLogPath nvarchar(512)
			  declare @n int

			  select @n=0
			  select @Param='dummy'
			  while(not @Param is null)
			  begin
			  select @Param=null
			  select @Arg='SqlArg'+convert(nvarchar,@n)

			  exec master.dbo.xp_instance_regread @HkeyLocal, @RegPathParams, @Arg, @Param OUTPUT
			  if(@Param like '-d%')
			  begin
			  select @Param=substring(@Param, 3, 255)
			  select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
			  end
			  else if(@Param like '-l%')
			  begin
			  select @Param=substring(@Param, 3, 255)
			  select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
			  end
			  else if(@Param like '-e%')
			  begin
			  select @Param=substring(@Param, 3, 255)
			  select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
			  end

			  select @n=@n+1
			  end
		  </prefix>
	  </version>
	  <version min_major="8">
		  <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#">
			  drop table #SVer
		  </postfix>
	  </version>
    <version min_major="10">
      <postfix fields="#ProcessorUsage#">
        drop table #tempproc
      </postfix>
    </version>
  </settings>
  <properties>

    <!--imported from Settings.xml-->
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='2' expression="'{1}[@Name=' + quotename({0},'''') + ']'">
        <link_field type='local' field="Name" />
        <link_field field="NType" />
		  
      </link_multiple>
    </property>

    <version min_major="7">
      <!--imported from Settings.xml-->
      <property name="AuditLevel" type="int"  report_type='AuditLevel'>@SmoAuditLevel</property>
      <property name="DefaultFile" type="nvarchar" size="512">ISNULL(@SmoDefaultFile,N'')</property>
      <property name="DefaultLog" type="nvarchar" size="512">ISNULL(@SmoDefaultLog,N'')</property>
      <property name="NumberOfLogFiles" type="int">ISNULL(@NumErrorLogs, -1)</property>
      <property name="LoginMode" type="int" report_type='ServerLoginMode'>(case when @SmoLoginMode &lt; 3 then @SmoLoginMode else 9 end)</property>


      <property name="MailProfile" type="nvarchar" size="512">ISNULL(@SmoMailProfile,N'')</property>
      <property name="BackupDirectory" type="nvarchar" size="512" notusage='filter,order'>@BackupDirectory</property>
      <property name="PerfMonMode" type="int" report_type='PerfMonMode'>@SmoPerfMonMode</property>

      <!-- setup properties -->
      <property name="InstallDataDirectory" type="nvarchar" size="512" access="Read">ISNULL(@InstallSqlDataDir,N'')</property>
      <property name="ServiceName" type="sysname" cast='true' access="Read">@@SERVICENAME</property>

      <!--imported from information.xml-->
      <property name="Product" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductName')</property>
      <property name="OSVersion" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'WindowsVersion')</property>
      <property name="Language" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'Language')</property>
      <property name="Platform" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'Platform')</property>
      <property name="PhysicalMemory" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'PhysicalMemory')</property>
      <property name="Processors" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'ProcessorCount')</property>
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">@LogPath</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">@MasterPath</property>
      <property name="ErrorLogPath" type="nvarchar" size="512" access="Read">@ErrorLogPath</property>      
      <property name="RootDirectory" type="nvarchar" size='512' access="Read">@SmoRoot</property>
    </version>

    <property name="VersionMajor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x1000000) &amp; 0xff</property>
    <property name="VersionMinor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x10000) &amp; 0xff</property>
    <property name="BuildNumber" type="int" access="Read" expensive='true'>@@microsoftversion &amp; 0xffff</property>
    <property name="IsCaseSensitive" type="bit" access="Read" cast='true'>case when 'a' &lt;&gt; 'A' then 1 else 0 end</property>
    <property name="MaxPrecision" type="tinyint" access="Read">@@MAX_PRECISION</property>
    
    <version min_major='7' max_major='8'>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end</property>
    </version>

    <version min_major='8' cloud_min_major='10'>
      <property name="VersionString" type="sysname" access="Read">SERVERPROPERTY(N'ProductVersion')</property>
      <property name="Edition" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'Edition')</property>
      <property name="ProductLevel" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'ProductLevel')</property>
      <property name="IsSingleUser" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsSingleUser')</property>
      <property name="EngineEdition" type="int" access='Read' cast='true'>SERVERPROPERTY('EngineEdition')</property>
      <property name="Collation" type="sysname" access="Read">convert(sysname, serverproperty(N'collation'))</property>      
    </version>
    <version min_major='8'>
      <property name="IsClustered" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsClustered')</property>
      <property name="NetName" type="sysname" access="Read" cast = 'true'>SERVERPROPERTY(N'MachineName')</property>
    </version>

    <version min_major='8' max_major='9'>
      <property name="TapeLoadWaitTime" type="int">@SmoTapeLoadWaitTime</property>
    </version>

    <version min_major='9' cloud_min_major='10'>
      <property name="ResourceVersionString" type="sysname" access="Read">SERVERPROPERTY(N'ResourceVersion')</property>
      <property name="ResourceLastUpdateDateTime" type="datetime" access="Read">SERVERPROPERTY(N'ResourceLastUpdateDateTime')</property>
      <property name="CollationID" type="int" access="Read">SERVERPROPERTY(N'CollationID')</property>
      <property name="ComparisonStyle" type="int" access="Read">SERVERPROPERTY(N'ComparisonStyle')</property>
      <property name="SqlCharSet" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlCharSet')</property>
      <property name="SqlCharSetName" type="sysname" access="Read">SERVERPROPERTY(N'SqlCharSetName')</property>
      <property name="SqlSortOrder" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlSortOrder')</property>
      <property name="SqlSortOrderName" type="sysname" access="Read">SERVERPROPERTY(N'SqlSortOrderName')</property>
    </version>
    
    <version min_major='9' >
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
      <property name="BuildClrVersionString" type="sysname" access="Read">SERVERPROPERTY(N'BuildClrVersion')</property>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>null</property>      
      <!-- Setup Properties -->
      <property name="ServiceInstanceId" type="sysname" access="Read">ISNULL(@ServiceInstanceId,N'')</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode" access="Read">@ServiceStartMode</property>
      <property name="ServiceAccount" type="nvarchar" size="512" access="Read">ISNULL(@ServiceAccount,N'')</property>
      <property name="NamedPipesEnabled" type="bit" cast="true" access="Read">@NamedPipesEnabled</property>
      <property name="TcpEnabled" type="bit" cast="true" access="Read">@TcpEnabled</property>
      <property name="InstallSharedDirectory" type="nvarchar" size="512" access="Read">ISNULL(@InstallSharedDirectory,N'')</property>
      <property name="BrowserStartMode" type="int" report_type="ServiceStartMode" access="Read">@BrowserStartMode</property>
      <property name="BrowserServiceAccount" type="nvarchar" size="512" access="Read">ISNULL(@BrowserServiceAccount,N'')</property>
    </version>

    <version min_major = '7' max_major = '7'>
      <property name="Name" type="sysname" access="Read" cast="true">@@SERVERNAME</property>
    </version>

    <version min_major='8' max_major='9'>
      <property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
      <property name="InstanceName" type="sysname" access="Read" cast='true'>ISNULL(serverproperty(N'instancename'),N'')</property>
      <property name="ServerType" type="int" report_type2="Microsoft.SqlServer.Management.Common.DatabaseEngineType" access="Read" cast='true'>0x01</property>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>0x0010</property>
    </version>
    
    <version min_major = "10">
      <property name="ProcessorUsage" type="int" access="Read" expensive="true">case when OBJECT_ID(N'msdb.sys.sp_getProcessorUsage',  N'P') is not null then (select top 1 value from #tempproc)/(select Internal_Value from #SVer where Name = N'ProcessorCount') else -1 end</property>
    </version>
    
    <version min_major = '10'>
      <property name="SqlDomainGroup" type="nvarchar" size="128" access="Read">ISNULL(suser_sname(sid_binary(ISNULL(@SqlGroup,N''))),N'')</property>
      <property name="TapeLoadWaitTime" type="int" access="Read">-1</property>
      <property name="FilestreamLevel" type="int" access="Read" report_type="FileStreamEffectiveLevel">@FilestreamLevel</property>
      <property name="FilestreamShareName" type="nvarchar" size="512" access="Read">ISNULL(@FilestreamShareName,N'')</property>
      <property name="PhysicalMemoryUsageInKB" type="bigint" access="Read" expensive="true">(select physical_memory_in_use_kb from sys.dm_os_process_memory)</property>	  
      <property name="PolicyHealthState" type="int" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='1' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state  where target_query_expression_with_id like '{0}%' ) then 1 else 0 end">
          <link_field field="NType"/>
        </link_multiple>
      </property>
    </version>
    
    <version min_major = '10' cloud_min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='1' expression="'{0}'">
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="RuleDefault" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects obj">
				<link_multiple no = '1' expression="obj.xtype={0} and obj.name not like N'#%%' and 0=(obj.category &amp; 0x0800)">
					<link_field type='local' field="XType" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include alias='obj' file='inc_object.xml' />
		<!-- TypeSelection is used for inc_sql_module_main -->
		<property name="TypeSelection" type="sysname" hidden='true'>
			<link_multiple no = '1' expression="obj.type = {0} and not(obj.parent_object_id > 0)">
				<link_field type='local' field="XType" />
			</link_multiple>
		</property>
		<include file='inc_sql_module_main.xml' />
		<include file='inc_sql_module_JustText.xml' />
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject min_major='7' cloud_min_major='10'>
	<settings/>
	<properties>
    <version min_major='8' cloud_min_major='10'>
      <property name="HasAfterTrigger" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasAfterTrigger')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="HasInsertTrigger" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasInsertTrigger')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="HasDeleteTrigger" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasDeleteTrigger')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="HasInsteadOfTrigger" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasInsteadOfTrigger')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="HasUpdateTrigger" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasUpdateTrigger')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="HasIndex" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'IsIndexed')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="IsIndexable" type="bit" access="Read" cast='true'>
        <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'IsIndexable')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
    </version>
        
		<version min_major='9' cloud_min_major='10'>
			<!-- fragmentation info support -->
			<property name="TableNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='2' expression="quotename({1}) + N'.' + quotename({0})">
					<link_field type='filter' field="Name" default_value="null"/>
					<link_field type='filter' field="Schema" default_value="null"/>
				</link_multiple>
			</property>
		</version>
	</properties>
</EnumObject>
B<?xml version="1.0" ?>
<EnumObject type="DefaultConstrain" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link local='ID' parent='ColumnDefaultID' />
		</parent_link>
	
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.xtype='D' and cstr.name not like N'#%%' and 0!=convert(bit,cstr.category &amp; 0x0800)</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link join="sys.default_constraints AS cstr"/>
		</version>
	</settings>
	<properties>
		<include file='inc_constraint.xml' for='#Urn#Name#ID#CreateDate#IsSystemNamed#' />
		<include file='inc_fulltext.xml' alias='cstr' />
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>		

		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'CONSTRAINT'</property>		
			<property name="ParentObjName" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjName" />
				</link_multiple>
			</property>
			<property name="ParentOwner" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentOwner" />
				</link_multiple>
			</property>
			<property name="ParentObjectSchemaFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
				</link_multiple>
			</property>
			<property name="ParentObjectTypeName" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectTypeName" />
				</link_multiple>
			</property>
			<property name="ParentObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectNameFromFilter" />
				</link_multiple>
			</property>
		</version>			
	</properties>
</EnumObject>
`<?xml version="1.0" ?>
<EnumObject type="Text" impl_type="SqlObject" min_major='7' >
	<settings main_table="dbo.syscomments c">
		<parent_link>
			<link parent="ID" local="ParentID" />
			<link local="Number" parent="ParentNumber" />
		</parent_link>
	</settings>
	<properties>
		<property name="ID" type="smallint">c.colid</property>
		<property name="Number" type="int">case when c.number > 1 then c.number else 0 end</property>
		<property name="Text" type="varchar" size='8000' access="Read">c.text</property>
		<property name="ObjectIdentifier" type="nvarchar" size='300' 
			access="Read">cast(c.id as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_' + cast(case when c.number > 1 then c.number else 0 end as nvarchar(20))</property>
		<property name="ParentID" type="int" hidden='true'>c.id</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysindexes st">
				(st.indid &lt;&gt; 0 and st.indid &lt;&gt; 255) and 0 = OBJECTPROPERTY(st.id,N'IsMSShipped')
			</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.stats st" />
			
			<post_process fields='#Stream#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessStatisticStream'
				triggered_fields='#StatisticName#ParentFullName#'/>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">st.name</property>
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>st.indid</property>
			<property name="NoAutomaticRecomputation" type="bit" cast='true'>case when (st.status &amp; 16777216) &lt;&gt; 0 then 1 else 0 end</property>
			<property name="LastUpdated" type="datetime" access='Read'>STATS_DATE(st.id, st.indid)</property>		
			<property name="IsFromIndexCreation" type="bit" access='Read' cast='true'>1 - INDEXPROPERTY(st.id,st.name,N'IsStatistics')</property>
			<property name="IsAutoCreated" type="bit" access='Read' cast='true'>INDEXPROPERTY(st.id,st.name,N'IsAutoStatistics')</property>
			<property name="FileGroup" type="sysname">''</property>
			<property name="ParentID" type="int" hidden = 'true'>st.id</property>			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>6</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="ID" type="int">st.stats_id</property>
			<property name="NoAutomaticRecomputation" type="bit">st.no_recompute</property>
			<property name="LastUpdated" type="datetime" access='Read'>STATS_DATE(st.object_id, st.stats_id)</property>
			<property name="IsFromIndexCreation" type="bit" access='Read' cast='true'>1 - INDEXPROPERTY(st.object_id,st.name,N'IsStatistics')</property>
			<property name="IsAutoCreated" type="bit" access='Read'>st.auto_created</property>
			<property name="FileGroup" type="sysname">''</property>
			<property name="Stream" type="varbinary" expensive='true' access='Read'>null</property>
			
			<property name="ParentID" type="int" hidden='true'>st.object_id</property>
			
			<!-- DBCC SHOW_STATISTICS support -->
			<property name="ParentFullName" type="nvarchar" size='600' hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ThreePartName" />
				</link_multiple>
			</property>
      
			<property name="StatisticName" type="sysname" hidden='true'>st.name</property>
      <!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>7</property>
		</version>
   
    
		<version min_major='10' cloud_min_major='10'>
			<property name="HasFilter" type="bit" access='Read'>st.has_filter</property>
			<property name="FilterDefinition" type="nvarchar" size='max'>ISNULL(st.filter_definition ,N'')</property>
		</version>

      <!-- extended properties support -->
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='local' field="ParentID" />
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
    
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Collation" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table = '::fn_helpcollations() cl'/>
		</version>
		<version min_major='9' >
			<property_link table = 'sys.fn_helpcollations() cl'/>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">cl.name</property>
		<property name="CodePage" type="int" cast='true'>COLLATIONPROPERTY(name, 'CodePage')</property>
		<property name="LocaleID" type="int" cast='true'>COLLATIONPROPERTY(name, 'LCID')</property>
		<property name="ComparisonStyle" type="int" cast='true'>COLLATIONPROPERTY(name, 'ComparisonStyle')</property>
		<property name="Description" type="nvarchar" size='1000'>cl.description</property>

		<version min_major='9' >
				  <property name="CollationVersion" type="int" report_type="CollationVersion" cast='true'>COLLATIONPROPERTY(name, 'Version')</property>
		</version>
	</properties>
</EnumObject>
 
<?xml version="1.0" ?>
<EnumObject type="Lock" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table = 'master.dbo.syslockinfo l, master..spt_values v'>
			l.req_mode = v.number and v.type = N'L' and db_id() = l.rsc_dbid
		</property_link>
	</settings>
	<properties>
		<property name="RequestorSpid" type="int">l.req_spid</property>
		<property name="LockType" type="nvarchar" size='36'>v.name</property>
		<property name="Database" type="sysname">db_name(l.rsc_dbid)</property>
		<property name="Table" type="sysname">object_name(l.rsc_objid)</property>
		<property name="Index" type="sysname">object_name(l.rsc_indid)</property>
		<property name="Status" type="tinyint" report_type='LockRequestStatus'>l.req_status</property>
	</properties>
</EnumObject>
 4<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table="#err_log_tmp er" />
		<version min_major='7' max_major='7'>
			<prefix>
				create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24))
			</prefix>
		</version>
		<version min_major='8' >
			<prefix>
                create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int)
            </prefix>
		</version>
		<prefix>
			insert #err_log_tmp exec master.dbo.sp_enumerrorlogs
		</prefix>
		<postfix>
			drop table #err_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name="Name" type="sysname" cast='true'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int">er.ArchiveNo</property>
		<property name="CreateDate" type="datetime">CONVERT(datetime, er.CreateDate, 101)</property>
		<version min_major='8' >
			<property name="Size" type="int">er.Size</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
		</parent_link>
		<request_parent_select>
			<field name='ArchiveNo' />
		</request_parent_select>
		<property_link table="#err_log_text_tmp_final ert" />
        <prefix>
            create table #err_log_text_tmp_final(Text nvarchar(4000), ArchiveNo int null, LogDate datetime null, ProcessInfo nvarchar(100) null)
        </prefix>
        <version min_major="7" max_major="8">
            <prefix>
                declare @text_offset int
                declare @process_info_length int

                set @text_offset = 34
                set @process_info_length = 10
            </prefix>
            <prefix>
                <link_multiple no='1' expression="
create table #err_log_text_tmp(id int IDENTITY(0, 1) primary key clustered, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)

declare @ArchiveNo int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo
while @@fetch_status &gt;= 0 
begin 
		if( @ArchiveNo &gt; 0 )
			insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog @ArchiveNo
		else
			insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog
		update #err_log_text_tmp set ArchiveNo = @ArchiveNo where ArchiveNo is null
		fetch crs into @ArchiveNo
end 
close crs
deallocate crs

declare @off int
select @off = 1

while exists ( select ContinuationRow from #err_log_text_tmp where ContinuationRow = 1 )
begin
	update t1
	set t1.Text = t1.Text + t2.Text
	from #err_log_text_tmp as t1
		inner join #err_log_text_tmp as t2 on t1.id + @off = t2.id
	where t1.ContinuationRow = 0
	and t2.ContinuationRow = 1
	
	delete t2
	from #err_log_text_tmp as t2
		inner join #err_log_text_tmp as t1 on t1.id + @off = t2.id
	where t2.ContinuationRow = 1

	set @off = @off + 1
end

insert #err_log_text_tmp_final
	select 
		Text = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: remove date/spid part */ SUBSTRING(Text, @text_offset, 4000) else /*non structured row*/ Text end,
		ArchiveNo, 
		LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get date part */ CONVERT(datetime, LEFT(Text, 23), 121) else /*non structured row*/ null end,
		ProcessInfo = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get spid part */ rtrim(SUBSTRING(Text, 24, @process_info_length)) else /*non structured row*/ null end
	from #err_log_text_tmp

drop table #err_log_text_tmp
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major="9">
            <prefix>
                <link_multiple no='1' expression="
declare @ArchiveNo int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo
while @@fetch_status &gt;= 0 
begin 
		if( @ArchiveNo &gt; 0 )
			insert #err_log_text_tmp_final (LogDate, ProcessInfo, Text) exec master.dbo.sp_readerrorlog @ArchiveNo
		else
			insert #err_log_text_tmp_final (LogDate, ProcessInfo, Text) exec master.dbo.sp_readerrorlog
		update #err_log_text_tmp_final set ArchiveNo = @ArchiveNo where ArchiveNo is null
		fetch crs into @ArchiveNo
end 
close crs
deallocate crs
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
		<postfix>
			drop table #err_log_text_tmp_final
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ProcessInfo" type="nvarchar" size = '100'>ert.ProcessInfo</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Process" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.sysprocesses p'/>
		</version>
		<version min_major='9' >
			<property_link table = 'sys.dm_exec_sessions p'/>
			<property_link fields ="#Status#Command#Database#BlockingSpid#" left_join = 'sys.dm_exec_requests r'>r.session_id = p.session_id</property_link>
			<property_link fields ="#ExecutionContextID#Database#" join = 'sys.sysprocesses pr'>pr.spid = p.session_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Spid=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Spid" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" cast='true'>p.spid</property>
			<property name="Spid" type="smallint">p.spid</property>
			<property name="Login" type="sysname">suser_sname(p.sid)</property>
			<property name="Host" type="nchar" size='129'>p.hostname</property>
			<property name="Status" type="nchar" size='31'>p.status</property>
			<property name="Command" type="nchar" size='31'>p.cmd</property>
			<property name="Database" type="sysname">db_name(p.dbid)</property>
			<property name="Cpu" type="int">p.cpu</property>
			<property name="MemUsage" type="int">p.memusage</property>
			<property name="BlockingSpid" type="smallint">p.blocked</property>
			<property name="IsSystem" type="bit" cast='true'>case when p.spid &lt; 51 then 1 else 0 end</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname" cast='true'>p.session_id</property>
			<property name="Spid" type="smallint">p.session_id</property>
			<property name="Login" type="sysname">p.login_name</property>
			<property name="Host" type="nchar" size='129'>p.host_name</property>
			<property name="Status" type="nchar" size='31'>ISNULL(r.status, N'')</property>
			<property name="Command" type="nchar" size='31'>ISNULL(r.command, N'')</property>
			<property name="Database" type="sysname">ISNULL(db_name(r.database_id), ISNULL(db_name(pr.dbid), N''))</property>
			<property name="Cpu" type="int">p.cpu_time</property>
			<property name="MemUsage" type="int">p.memory_usage</property>
			<property name="BlockingSpid" type="smallint">ISNULL(r.blocking_session_id, 0)</property>
			<property name="IsSystem" type="bit" cast='true'>~p.is_user_process</property>
		</version>
		
		<property name="Program" type="nchar" size='129'>p.program_name</property>
		
		<version min_major='7' max_major='7' comment='kept for compatibility with dmo'>
			<property name="ExecutionContextID" type="smallint" cast='true'>0</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="ExecutionContextID" type="smallint">p.ecid</property>
		</version>
		<version min_major='9' >
			<property name="ExecutionContextID" type="smallint">pr.ecid</property>
		</version>

	</properties>
</EnumObject>
 <?xml version="1.0" ?>
<EnumObject type="Lock" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table='#t AS l' />
		<property_link fields='#LockType#' join='master.dbo.spt_values AS v'>v.number = l.mode AND v.type = N'L'</property_link>
		<property_link fields='#ResourceType#' join='master.dbo.spt_values AS v2'>v2.number = l.ltype AND v2.type = N'LR'</property_link>
		<version min_major='7' max_major='8'>
		<prefix>
CREATE TABLE #t(spid int, mode int, dbid int NULL, objid int, objid2 int, indid int, status tinyint, ltype tinyint, objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL)

INSERT #t SELECT spid = req_spid, mode = req_mode, dbid=rsc_dbid, objid=l.rsc_objid, objid2=l.rsc_objid, indid=l.rsc_indid, status = l.req_status, ltype = l.rsc_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL
		FROM master.dbo.syslockinfo l WHERE rsc_dbid != db_id('tempdb') OR rsc_objid != object_id('#t') 
		</prefix>
		</version>
		<version min_major='9'>
			<prefix>
				CREATE TABLE #t(spid int, mode int, dbid int NULL, objid bigint, objid2 bigint, indid int, status tinyint, ltype nvarchar(120), objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL)

				INSERT #t SELECT spid = request_session_id,
				mode = case request_mode when N'NL' then 0
				when N'SCH_S'		then 1
				when N'SCH_M'		then 2
				when N'S'			then 3
				when N'U'			then 4
				when N'X'			then 5
				when N'IS'			then 6
				when N'IU'			then 7
				when N'IX'			then 8
				when N'SIU'			then 9
				when N'SIX'			then 10
				when N'UIX'			then 11
				when N'BU'			then 12
				when N'RS_S'		then 13
				when N'RS_U'		then 14
				when N'RI_NL'		then 15
				when N'RI_S'		then 16
				when N'RI_U'		then 17
				when N'RI_X'		then 18
				when N'RX_S'		then 19
				when N'RX_U'		then 20
				when N'RX_X'		then 21
				when N'LAST_MODE'	then 22
				end,
				dbid=resource_database_id, objid=l.resource_associated_entity_id, objid2=l.resource_associated_entity_id, indid=NULL,
				status = case l.request_status when N'GRANT' then 1
				when N'CONVERT' then 2
				when N'WAIT' then 3
				end,
				ltype = l.resource_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL
				FROM master.sys.dm_tran_locks l WHERE resource_database_id != db_id('tempdb') OR resource_associated_entity_id != object_id('#t')
			</prefix>		  
			  </version>
		<version min_major='7' max_major='8'>
			<prefix fields='#Database#Schema#Table#Index#'>
update #t set dbname = d.name FROM #t t LEFT OUTER JOIN master.dbo.sysdatabases d ON d.dbid = t.dbid
			</prefix>
		</version>
		<version min_major='9' >
			<prefix fields='#Database#Schema#Table#Index#'>
update #t set dbname = d.name FROM #t t LEFT OUTER JOIN sys.databases d ON d.database_id = t.dbid
update #t set objid2 = -objid2 where dbname is null
			</prefix>
		</version>
		<prefix fields='#Database#Schema#Table#Index#'>
DECLARE name_cursor CURSOR 
	FOR select t.dbid, t.dbname FROM #t t GROUP BY t.dbid, t.dbname
OPEN name_cursor 
DECLARE @dbid int
DECLARE @dbname sysname 
DECLARE @sql nvarchar(1000)
FETCH NEXT FROM name_cursor INTO @dbid, @dbname
WHILE (@@FETCH_STATUS &lt;&gt; -1) 
BEGIN 
	IF (@@FETCH_STATUS &lt;&gt; -2) 
	BEGIN 
		</prefix>
		<version min_major='7' max_major='8'>
			<prefix fields='#Database#Schema#Table#Index#'>
		SELECT @sql = 'use ' + quotename(@dbname) + ' update #t set objname = o.name, indname = i.name, sch=user_name(o.uid) FROM #t AS t '+
				'LEFT JOIN dbo.sysobjects AS o ON o.id = t.objid LEFT OUTER JOIN dbo.sysindexes AS i ON i.id = t.objid AND i.indid = t.indid '+
				'WHERE t.ltype in (4,5) AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20))
			</prefix>
		</version>
		<version min_major='9' >
			<prefix fields='#Database#Schema#Table#Index#'>
				IF( NOT @dbname	IS NULL )--resource database
				SELECT @sql = 'use ' + quotename(@dbname)
				ELSE
				SELECT @sql = ''
				SELECT @sql = @sql + ' update #t set objname = o.name, indname = i.name, sch=schema_name(o.schema_id) FROM #t AS t '+
				'LEFT JOIN sys.all_objects AS o ON o.object_id = t.objid2 LEFT OUTER JOIN sys.indexes AS i ON i.object_id = t.objid2 AND i.index_id = t.indid '+
				'WHERE t.ltype in (''UNUSED1'',''OBJECT'') AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20))
			</prefix>
		</version>
		<prefix fields='#Database#Schema#Table#Index#'>
		EXEC(@sql)
	END 
	FETCH NEXT FROM name_cursor INTO @dbid, @dbname
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
		</prefix>
		<postfix>
			drop table #t
		</postfix>
	</settings>
	<properties>
		<property name="RequestorSpid" type="int">l.spid</property>
		<property name="LockType" type="nvarchar" size='36'>v.name</property>
		<!--<property name="ResourceType" type="nvarchar" size='36'>v2.name</property> not in dmo, we also probably want enums here-->
		<property name="Database" type="sysname">ISNULL(l.dbname,N'')</property>
		<property name="Schema" type="sysname">ISNULL(l.sch,N'')</property>
		<property name="Table" type="sysname">ISNULL(l.objname,N'')</property>
		<property name="Index" type="sysname">ISNULL(l.indname,N'')</property>
		<property name="Status" type="tinyint" report_type='LockRequestStatus'>l.status</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="TapeDevice" impl_type="SqlObject" min_major='7' >
	<settings main_table="#tpdv">
		<prefix>create table #tpdv ( Name nvarchar(512) NOT NULL) 
			insert #tpdv (Name) EXECUTE master.dbo.xp_get_tape_devices
		</prefix>
		<postfix> drop table #tpdv</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='512' access="Read">Name</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="inc_text" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<!--TableVariableName is need in udf - we need to parse the text to get the name of the retun table, 
		it is not present in the metadata-->
		<post_process fields='#Text#BodyStartIndex#HasColumnSpecification#TableVariableName#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessBodyText'
					triggered_fields='#Definition#'/>
	</settings>
	<properties>
		<!-- Definition must be already there-->
		<version min_major = '9' cloud_min_major='10'>
			<property name="Text" type="nvarchar" size='max' expensive='true' access="Read">NULL</property>		
		</version>
		<version min_major = '7' max_major = '8'>
			<property name="Text" type="nvarchar" size='4000' expensive='true' access="Read">NULL</property>		
		</version>
		<property name="BodyStartIndex" type="int" expensive='true' access="Read">NULL</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="DbFile" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysfiles AS s"/>
			<prefix fields="#AvailableSpace#Size#MaxSize#Growth#">
DECLARE @PageSize float 
SELECT @PageSize=v.low/1024.0 FROM master..spt_values v WHERE v.number=1 AND v.type='E'
			</prefix>
		</version>    
	</settings>
	<version min_major="10" min_minor='50'>
		<post_process fields='#VolumeFreeSpace#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessFileProperties'
				triggered_fields='#DatabaseName2#FileId2#'/>
	</version>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Name" type="nvarchar" size="256">rtrim(s.name)</property>
			<property name="ID" type="int" cast='true'>s.fileid</property>
			<property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">rtrim(s.filename)</property>
			<property name="Size" type="float">(s.size * @PageSize)</property>
			<property name="MaxSize" type="float">case when s.maxsize=-1 then -1 else s.maxsize * @PageSize end</property>
			<property name="Growth" type="float" 
				cast = 'true'>CASE WHEN (0 &lt;&gt;(s.status &amp; 0x100000)) THEN s.growth ELSE s.growth * @PageSize END</property>
			<property name="GrowthType" type="int" 
				report_type='FileGrowthType'>CASE WHEN s.growth=0 THEN 99 WHEN (0 &lt;&gt;(s.status &amp; 0x100000)) THEN 1 ELSE 0 END</property>
			<property name="GroupID" type="int" access='Read' hidden = 'true'>s.groupid</property>
		</version>

        <version min_major='9' max_major='9'>
            <property name="GrowthType" type="int" report_type='FileGrowthType' cast='true'>CASE when s.growth=0 THEN 99 ELSE s.is_percent_growth END</property>
        </version>

        <version min_major='10' >
            <property name="GrowthType" type="int" report_type='FileGrowthType' cast='true'>CASE when s.growth=0 THEN (CASE WHEN s.type = 2 THEN 0 ELSE 99 END) ELSE s.is_percent_growth END</property>
        </version>
        <version min_major='10' min_minor='50'>
          <property name ="VolumeFreeSpace" type ="bigint" access="Read" expensive='true'>null</property>
          <property name="DatabaseName2" type="nvarchar" size="520" hidden="true">db_name(s.database_id)</property>
          <property name="FileId2" type="int" hidden="true">s.file_id</property>
        </version>
    <version min_major='9' >
            <property name="Name" type="nvarchar" size="256">s.name</property>
            <property name="ID" type="int">s.file_id</property>
            <property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">s.physical_name</property>
			      <property name="Size" type="float">s.size * CONVERT(float,8)</property>
            <property name="MaxSize" type="float">CASE when s.max_size=-1 then -1 else s.max_size * CONVERT(float,8) END</property>
            <property name="Growth" type="float" cast='true'>CASE s.is_percent_growth WHEN 1 THEN s.growth ELSE s.growth*8 END</property>
            <property name="IsReadOnlyMedia" type="bit" access = 'Read'>s.is_media_read_only</property>
            <property name="IsReadOnly" type="bit" access = 'Read'>s.is_read_only</property>
            <property name="IsOffline" type="bit" access = 'Read' cast = 'true'>case s.state when 6 then 1 else 0 end</property>
            <property name="IsSparse" type="bit" access = 'Read'>s.is_sparse</property>

            <property name="GroupID" type="int" access='Read' hidden = 'true'>s.data_space_id</property>
            <property name="NumberOfDiskReads" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_reads, 0)</property>
            <property name="NumberOfDiskWrites" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_writes, 0)</property>
            <property name="BytesReadFromDisk" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_bytes_read, 0)</property>
            <property name="BytesWrittenToDisk" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_bytes_written, 0)</property>
        </version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='msdb.dbo.backupset bkps' />
	</settings>
	<properties>
		<property name='Name' type='nvarchar' size='128'>bkps.name</property>
		<property name='ID' type='int'>bkps.backup_set_id</property>
		<property name='BackupSetUuid' type='uniqueidentifier'>bkps.backup_set_uuid</property>
		<property name='MediaSetId' type='int'>bkps.media_set_id</property>
		<property name='FirstFamilyNumber' type='tinyint'>bkps.first_family_number</property>
		<property name='FirstMediaNumber' type='smallint'>bkps.first_media_number</property>
		<property name='LastFamilyNumber' type='tinyint'>bkps.last_family_number</property>
		<property name='LastMediaNumber' type='smallint'>bkps.last_media_number</property>
		<property name='CatalogFamilyNumber' type='tinyint'>bkps.catalog_family_number</property>
		<property name='CatalogMediaNumber' type='smallint'>bkps.catalog_media_number</property>
		<property name='Position' type='int'>bkps.position</property>
		<property name='ExpirationDate' type='datetime'>bkps.expiration_date</property>
		<property name='SoftwareVendorId' type='int'>bkps.software_vendor_id</property>
		<property name='Description' type='nvarchar' size='255'>bkps.description</property>
		<property name='UserName' type='nvarchar' size='128'>bkps.user_name</property>
		<property name='SoftwareMajorVersion' type='tinyint'>bkps.software_major_version</property>
		<property name='SoftwareMinorVersion' type='tinyint'>bkps.software_minor_version</property>
		<property name='SoftwareBuildVersion' type='smallint'>bkps.software_build_version</property>
		<property name='TimeZone' type='smallint'>bkps.time_zone</property>
		<property name='MtfMinorVersion' type='tinyint'>bkps.mtf_minor_version</property>
		<property name='FirstLsn' type='numeric' size='13'>bkps.first_lsn</property>
		<property name='LastLsn' type='numeric' size='13'>bkps.last_lsn</property>
		<property name='CheckpointLsn' type='numeric' size='13'>bkps.checkpoint_lsn</property>
		<property name='DatabaseBackupLsn' type='numeric' size='13'>bkps.database_backup_lsn</property>
		<property name='DatabaseCreationDate' type='datetime'>bkps.database_creation_date</property>
		<property name='BackupStartDate' type='datetime'>bkps.backup_start_date</property>
		<property name='BackupFinishDate' type='datetime'>bkps.backup_finish_date</property>
		<property name='BackupSetType' type='int' report_type = 'BackupSetType'>CASE bkps.type WHEN 'D' THEN 1 WHEN 'I' THEN 2 WHEN 'L' THEN 3 WHEN 'F' THEN 4 END</property>
		<property name='SortOrder' type='smallint'>bkps.sort_order</property>
		<property name='CodePage' type='smallint'>bkps.code_page</property>
		<property name='CompatibilityLevel' type='tinyint' report_type = 'CompatibilityLevel'>bkps.compatibility_level</property>
		<property name='DatabaseVersion' type='int'>bkps.database_version</property>
		<property name='BackupSize' type='numeric' size='13'>bkps.backup_size</property>
		<property name='DatabaseName' type='nvarchar' size='128'>bkps.database_name</property>
		<property name='ServerName' type='nvarchar' size='128'>bkps.server_name</property>
		<property name='MachineName' type='nvarchar' size='128'>bkps.machine_name</property>
		<version min_major='8' >		
			<property name='BackupSetFlags' type='int'>bkps.flags</property>
			<property name='UnicodeLocale' type='int'>bkps.unicode_locale</property>			
			<property name='UnicodeCompareStyle' type='int'>bkps.unicode_compare_style</property>
			<property name='CollationName' type='nvarchar' size='128'>bkps.collation_name</property>
		</version>
		<version min_major='9' >		
			<property name='IsPasswordProtected' type='bit'>bkps.is_password_protected</property>
		</version>
		<version min_major='10'>
			<property name='CompressedBackupSize' type='numeric' size='20'>bkps.compressed_backup_size</property>
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='restorehistory' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='msdb.dbo.restorehistory rthist' />
	</settings>
	<properties>
		<property name='ID' type='int'>rthist.restore_history_id</property>
		<property name='RestoreDate' type='datetime'>rthist.restore_date</property>
		<property name='DestinationDatabaseName' type='nvarchar' size='128'>rthist.destination_database_name</property>
		<property name='UserName' type='nvarchar' size='128'>rthist.user_name</property>
		<property name='BackupSetId' type='int'>rthist.backup_set_id</property>
		<property name='RestoreType' type='int' report_type = 'RestoreType'>CASE rthist.restore_type WHEN 'D' THEN 1 WHEN 'F' THEN 2 WHEN 'L' THEN 3 WHEN 'V' THEN 4 END</property>
		<property name='ReplaceExistingData' type='bit'>rthist.replace</property>
		<property name='IsWithRecovery' type='bit'>rthist.recovery</property>
		<property name='IsRestartSpecified' type='bit'>rthist.restart</property>
		<property name='StopAt' type='datetime'>rthist.stop_at</property>
		<property name='DeviceCount' type='tinyint'>rthist.device_count</property>
		<version min_major='8' >		
			<property name='StopAtMarkName' type='nvarchar' size='128'>rthist.stop_at_mark_name</property>
			<property name='IncludesMarkedTransaction' type='bit'>rthist.stop_before</property>			
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='restorefile' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent='ID' local = 'RestoreHistoryId'/>
		</parent_link>
		<property_link table='msdb.dbo.restorefile rtsf'/>
	</settings>
	<properties>
		<property name='RestoreHistoryId' type='int' hidden = 'true'>rtsf.restore_history_id</property>
		<property name='FileNumber' type='numeric' size='9'>rtsf.file_number</property>
		<property name='DestinationPhysDrive' type='varchar' size='260'>rtsf.destination_phys_drive</property>
		<property name='DestinationPhysName' type='varchar' size='260'>rtsf.destination_phys_name</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='restorefilegroup' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent='ID' local = 'RestoreHistoryId'/>
		</parent_link>
		<property_link table='msdb.dbo.restorefilegroup rtsfg'/>
	</settings>
	<properties>
		<property name='RestoreHistoryId' type='int' hidden = 'true'>rtsfg.restore_history_id</property>
		<property name='Name' type='nvarchar' size='128'>rtsfg.filegroup_name</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupfile' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent='ID' local='BackupSetId'/>
		</parent_link>
		<property_link table='msdb.dbo.backupfile bkpf'/>
	</settings>
	<properties>
		<property name='BackupSetId' type='int' hidden='true'>bkpf.backup_set_id</property>
		<property name='FirstFamilyNumber' type='tinyint'>bkpf.first_family_number</property>
		<property name='FirstMediaNumber' type='smallint'>bkpf.first_media_number</property>
		<property name='FileGroupName' type='nvarchar' size='128'>bkpf.filegroup_name</property>
		<property name='PageSize' type='int'>bkpf.page_size</property>
		<property name='FileNumber' type='numeric' size='9'>bkpf.file_number</property>
		<property name='BackedUpPageCount' type='numeric' size='9'>bkpf.backed_up_page_count</property>
		<property name='FileType' type='char' size='1'>bkpf.file_type</property>
		<property name='SourceFileBlockSize' type='numeric' size='9'>bkpf.source_file_block_size</property>
		<property name='FileSize' type='numeric' size='13'>bkpf.file_size</property>
		<property name='LogicalName' type='nvarchar' size='128'>bkpf.logical_name</property>
		<property name='PhysicalDrive' type='varchar' size='260'>bkpf.physical_drive</property>
		<property name='PhysicalName' type='varchar' size='260'>bkpf.physical_name</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupmediafamily' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent='ID' local='MediaSetId'/>
		</parent_link>
		<property_link table='msdb.dbo.backupmediafamily bkpmf'/>
	</settings>
	<properties>
		<property name='MediaSetId' type='int' hidden='true'>bkpmf.media_set_id</property>
		<property name='ID' type='uniqueidentifier'>bkpmf.media_family_id</property>		
		<property name='FamilySequenceNumber' type='tinyint'>bkpmf.family_sequence_number</property>
		<property name='MediaCount' type='int'>bkpmf.media_count</property>
		<property name='LogicalDeviceName' type='nvarchar' size='128'>bkpmf.logical_device_name</property>
		<property name='PhysicalDeviceName' type='nvarchar' size='260'>bkpmf.physical_device_name</property>
		<property name='BackupDeviceType' type='int' report_type = 'BackupDeviceType'>CASE WHEN bkpmf.device_type &gt; 100 THEN bkpmf.device_type - 100 ELSE bkpmf.device_type END</property>
		<property name='IsBackupDevicePermanent' type='bit' cast='true'>CASE WHEN bkpmf.device_type &gt; 100 THEN 1 ELSE 0 END</property>
		<property name='PhysicalBlockSize' type='int'>bkpmf.physical_block_size</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupmediaset' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='msdb.dbo.backupmediaset bkpms'/>
	</settings>
	<properties>
		<property name='ID' type='int'>bkpms.media_set_id</property>
		<property name='MediaUuid' type='uniqueidentifier'>bkpms.media_uuid</property>
		<property name='MediaFamilyCount' type='tinyint'>bkpms.media_family_count</property>
		<property name='Name' type='nvarchar' size='128'>bkpms.name</property>
		<property name='Description' type='nvarchar' size='255'>bkpms.description</property>
		<property name='SoftwareName' type='nvarchar' size='128'>bkpms.software_name</property>
		<property name='SoftwareVendorId' type='int'>bkpms.software_vendor_id</property>
		<property name='MTFMajorVersion' type='tinyint'>bkpms.MTF_major_version</property>
		<version min_major='10'>
			<property name='IsCompressed' type='bit' cast='true'>bkpms.is_compressed</property>
		</version>
	</properties>
</EnumObject>E<?xml version='1.0' ?>
<EnumObject type='SPHelpAlert' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_alert' alias='tsha' />
		<version min_major='7' max_major='8'>
			<prefix>
create table #tmp_sp_help_alert
(id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, type int null)
insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert
			</prefix>
		</version>
		<version min_major='9' >
			<prefix>
create table #tmp_sp_help_alert
(id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, wmi_namespace nvarchar(max) null, wmi_query nvarchar(max) null, type int null)
insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert
			</prefix>
		</version>
		<postfix>
drop table #tmp_sp_help_alert
		</postfix>
		
		<post_process fields='#CountResetDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#CountResetDateInt#CountResetTimeInt#' />
		<post_process fields='#LastOccurrenceDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastOccurrenceDateInt#LastOccurrenceTimeInt#' />
		<post_process fields='#LastResponseDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastResponseDateInt#LastResponseTimeInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		
		<property name='ID' type='int'>tsha.id</property>
		<property name='Name' type='nvarchar' size='128'>tsha.name</property>
		<property name='EventSource' type='nvarchar' size='100' access='Read'>ISNULL(tsha.event_source,N'')</property>
		<property name='MessageID' type='int'>tsha.message_id</property>
		<property name='Severity' type='int'>tsha.severity</property>
		<property name='IsEnabled' type='bit' cast='true'>tsha.enabled</property>
		<property name='DelayBetweenResponses' type='int'>tsha.delay_between_responses</property>
		<property name='LastOccurrenceDate' type='datetime'>null</property>
		<property name='LastOccurrenceDateInt' type='int' hidden='true'>tsha.last_occurrence_date</property>
		<property name='LastOccurrenceTimeInt' type='int' hidden='true'>tsha.last_occurrence_time</property>
		<property name='LastResponseDate' type='datetime'>null</property>
		<property name='LastResponseDateInt' type='int' hidden='true'>tsha.last_response_date</property>
		<property name='LastResponseTimeInt' type='int' hidden='true'>tsha.last_response_time</property>
		<property name='NotificationMessage' type='nvarchar' size='512'>ISNULL(tsha.notification_message,N'')</property>
		<property name='IncludeEventDescription' type='tinyint' report_type='Agent.NotifyMethods'>tsha.include_event_description</property>
		<property name='DatabaseName' type='nvarchar' size='128'>ISNULL(tsha.database_name,N'')</property>
		<property name='EventDescriptionKeyword' type='nvarchar' size='100'>ISNULL(tsha.event_description_keyword,N'')</property>
		<property name='OccurrenceCount' type='int' access='Read'>tsha.occurrence_count</property>
		<property name='CountResetDate' type='datetime' access='Read'>null</property>
		<property name='CountResetDateInt' type='int' hidden='true'>tsha.count_reset_date</property>
		<property name='CountResetTimeInt' type='int' hidden='true'>tsha.count_reset_time</property>
		<property name='JobID' type='uniqueidentifier'>ISNULL(tsha.job_id, convert(uniqueidentifier, N'00000000-0000-0000-0000-000000000000'))</property>
		<property name='JobName' type='nvarchar' size='128' access='Read'>ISNULL(tsha.job_name,N'')</property>
		<property name='HasNotification' type='int' access='Read'>tsha.has_notification</property>
		<property name='PerformanceCondition' type='nvarchar' size='512'>ISNULL(tsha.performance_condition,N'')</property>
		<property name='CategoryName' type='nvarchar' size='128'>ISNULL(tsha.category_name,N'')</property>
		
		<version min_major='9' >
			<property name='WmiEventNamespace' type='nvarchar' size='max'>ISNULL(tsha.wmi_namespace,N'')</property>
			<property name='WmiEventQuery' type='nvarchar' size='max'>ISNULL(tsha.wmi_query,N'')</property>
		</version>
		
		<property name='AlertType' type='int' report_type='Agent.AlertType' access='Read'>tsha.type</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpOperator' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_operator' alias='tsho' />
		<prefix>
create table #tmp_sp_help_operator
(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)
insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
		</prefix>
		<postfix>
drop table #tmp_sp_help_operator
		</postfix>
		<post_process fields='#LastEmailDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastEmailDateInt#LastEmailTimeInt#' />
		<post_process fields='#LastPagerDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastPagerDateInt#LastPagerTimeInt#' />
		<post_process fields='#LastNetSendDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastNetsendDateInt#LastNetsendTimeInt#' />
		<post_process fields='#WeekdayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#WeekdayPagerStartTimeInt#' />
		<post_process fields='#WeekdayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#WeekdayPagerEndTimeInt#' />
		<post_process fields='#SaturdayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SaturdayPagerStartTimeInt#' />
		<post_process fields='#SaturdayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SaturdayPagerEndTimeInt#' />
		<post_process fields='#SundayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SundayPagerStartTimeInt#' />
		<post_process fields='#SundayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SundayPagerEndTimeInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size='128'>tsho.name</property>
		<property name='ID' type='int'>tsho.id</property>
		<property name='Enabled' type='bit' cast='true'>tsho.enabled</property>
		<property name='EmailAddress' type='nvarchar' size='100'>ISNULL(tsho.email_address,N'')</property>
		<property name='LastEmailDate' type='datetime' access='Read'>null</property>
		<property name='LastEmailDateInt' type='int' hidden='true'>tsho.last_email_date</property>
		<property name='LastEmailTimeInt' type='int' hidden='true'>tsho.last_email_time</property>
		<property name='PagerAddress' type='nvarchar' size='100'>ISNULL(tsho.pager_address,N'')</property>
		<property name='LastPagerDate' type='datetime' access='Read'>null</property>
		<property name='LastPagerDateInt' type='int' hidden='true'>tsho.last_pager_date</property>
		<property name='LastPagerTimeInt' type='int' hidden='true'>tsho.last_pager_time</property>
		<property name="WeekdayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='WeekdayPagerStartTimeInt' type='int' hidden='true'>tsho.weekday_pager_start_time</property>
		<property name="WeekdayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='WeekdayPagerEndTimeInt' type='int' hidden='true'>tsho.weekday_pager_end_time</property>
		<property name="SaturdayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='SaturdayPagerStartTimeInt' type='int' hidden='true'>tsho.saturday_pager_start_time</property>
		<property name="SaturdayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SaturdayPagerEndTimeInt' type='int' hidden='true'>tsho.saturday_pager_end_time</property>
		<property name="SundayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SundayPagerStartTimeInt' type='int' hidden='true'>tsho.sunday_pager_start_time</property>
		<property name="SundayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SundayPagerEndTimeInt' type='int' hidden='true'>tsho.sunday_pager_end_time</property>
		<property name='PagerDays' type='tinyint' report_type="Agent.WeekDays">tsho.pager_days</property>
		<property name='NetSendAddress' type='nvarchar' size='100'>ISNULL(tsho.netsend_address,N'')</property>
		<property name='LastNetSendDate' type='datetime' access='Read'>null</property>
		<property name='LastNetsendDateInt' type='int' hidden='true'>tsho.last_netsend_date</property>
		<property name='LastNetsendTimeInt' type='int' hidden='true'>tsho.last_netsend_time</property>
		<property name='CategoryName' type='nvarchar' size='128'>ISNULL(tsho.category_name,N'')</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpTargetserver' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_targetserver' alias='tsht'/>
		<prefix>
create table #tmp_sp_help_targetserver
(server_id int null, server_name sysname null, location nvarchar(200) null, time_zone_adjustment int null, enlist_date datetime null, last_poll_date datetime null, status int null, unread_instructions int null, local_time datetime null, enlisted_by_nt_user nvarchar(200) null, poll_interval int null)
insert into #tmp_sp_help_targetserver exec msdb.dbo.sp_help_targetserver
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetserver
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>tsht.server_name</property>
		<property name='ID' type='int'>tsht.server_id</property>
		<property name='Location' type='nvarchar' size = '200' access='Read'>tsht.location</property>
		<property name='TimeZoneAdjustment' type='int' access='Read'>tsht.time_zone_adjustment</property>
		<property name='EnlistDate' type='datetime' access='Read'>tsht.enlist_date</property>
		<property name='LastPollDate' type='datetime' access='Read'>tsht.last_poll_date</property>
		<property name='Status' type='int' access='Read' report_type='Agent.TargetServerStatus'>tsht.status</property>
		<property name='PollingInterval' type='int' access='Read'>tsht.poll_interval</property>
		<property name='PendingInstructions' type='int' access='Read'>tsht.unread_instructions</property>
		<property name='LocalTime' type='datetime' access='Read'>tsht.local_time</property>
	</properties>
</EnumObject>
#<?xml version='1.0' ?>
<EnumObject type='AlertSystem' impl_type='SqlObject' min_major='7' >
	<settings>
		<version min_major = '8' >
			<prefix fields = '#FailSafeOperator#'>
				declare @FailSafeOperator nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#NotificationMethod#'>
				declare @NotificationMethod int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingServer#'>
				declare @ForwardingServer nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingSeverity#'>
				declare @ForwardingSeverity int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#IsForwardedAlways#'>
				declare @ForwardAlways int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerToTemplate#'>
				declare @PagerToTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerCCTemplate#'>
				declare @PagerCCTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSubjectTemplate#'>
				declare @PagerSubjectTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSendSubjectOnly#'>
				declare @PagerSendSubjectOnly int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeEmailAddress#'>
				declare @FailSafeEmailAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafePagerAddress#'>
				declare @FailSafePagerAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeNetSendAddress#'>
				declare @FailSafeNetSendAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output'
			</prefix>
		</version>
		<version min_major = '7' max_major = '7'>
			<prefix fields = '#FailSafeOperator#'>
				declare @FailSafeOperator nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#NotificationMethod#'>
				declare @NotificationMethod int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingServer#'>
				declare @ForwardingServer nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingSeverity#'>
				declare @ForwardingSeverity int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#IsForwardedAlways#'>
				declare @ForwardAlways int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerToTemplate#'>
				declare @PagerToTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerCCTemplate#'>
				declare @PagerCCTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSubjectTemplate#'>
				declare @PagerSubjectTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSendSubjectOnly#'>
				declare @PagerSendSubjectOnly int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeEmailAddress#'>
				declare @FailSafeEmailAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafePagerAddress#'>
				declare @FailSafePagerAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeNetSendAddress#'>
				declare @FailSafeNetSendAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output'
			</prefix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='1' expression="{0} + '/AlertSystem'">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		<property name='Name' type='sysname'>N'AlertSystem'</property>
		<property name='FailSafeOperator' type='nvarchar' size='255'>ISNULL(@FailSafeOperator,N'')</property>
		<property name='NotificationMethod' type='int' report_type='Agent.NotifyMethods'>@NotificationMethod</property>
		<property name='ForwardingServer' type='nvarchar' size='255'>ISNULL(@ForwardingServer,N'')</property>
		<property name='ForwardingSeverity' type='int'>@ForwardingSeverity</property>
		<property name='IsForwardedAlways' type='bit' cast='true'>ISNULL(@ForwardAlways, 0)</property>
		<property name='PagerToTemplate' type='nvarchar' size='255'>ISNULL(@PagerToTemplate,N'')</property>
		<property name='PagerCCTemplate' type='nvarchar' size='255'>ISNULL(@PagerCCTemplate,N'')</property>
		<property name='PagerSubjectTemplate' type='nvarchar' size='255'>ISNULL(@PagerSubjectTemplate,N'')</property>
		<property name='PagerSendSubjectOnly' type='bit' cast='true'>@PagerSendSubjectOnly</property>
		<property name='FailSafeEmailAddress' type='nvarchar' size='255'>ISNULL(@FailSafeEmailAddress,N'')</property>
		<property name='FailSafePagerAddress' type='nvarchar' size='255'>ISNULL(@FailSafePagerAddress,N'')</property>
		<property name='FailSafeNetSendAddress' type='nvarchar' size='255'>ISNULL(@FailSafeNetSendAddress,N'')</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='SPHelpTargetservergroup' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_targetservergroup' alias='tsht'/>
		<prefix>
create table #tmp_sp_help_targetservergroup
(servergroup_id int null, name nvarchar(128) null)
insert into #tmp_sp_help_targetservergroup exec msdb..sp_help_targetservergroup
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetservergroup
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tsht.name</property>		
		<property name='ID' type='int'>tsht.servergroup_id</property>
		
		<property name="ParentUrn" type="nvarchar" size="600" hidden='true'>
			<link_multiple no='1' expression="{0}" hidden = 'true'>
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpTargetservergroupMember' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link local='GroupName' parent='Name'/>
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>

		<property_link table='#tmp_sp_help_targetservergroup_member' alias='tshtm'/>
		<prefix>
			<link_multiple no='1' expression="
create table #tmp_sp_help_targetservergroup_member
(server_id int null, server_name sysname null, servergroup_name sysname null)

declare @servergroup_name sysname
declare crs cursor local fast_forward
for ( {0} )
open crs
fetch crs into @servergroup_name
while @@fetch_status &gt;= 0
begin
insert into #tmp_sp_help_targetservergroup_member(server_id, server_name)
		exec msdb.dbo.sp_help_targetservergroup @name=@servergroup_name
	update #tmp_sp_help_targetservergroup_member set servergroup_name = @servergroup_name where servergroup_name is null
	fetch crs into @servergroup_name
end
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetservergroup_member
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='2' expression="{0} + '/TargetServer[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="ParentUrn" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>

		<property name='Name' type='sysname'>tshtm.server_name</property>
		<property name='ID' type='int'>tshtm.server_id</property>

		<property name='GroupName' type='sysname' hidden='true'>tshtm.servergroup_name</property>
	</properties>
</EnumObject>
R<?xml version="1.0" ?>
<EnumObject type="inc_text" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<post_process fields='#Text#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessText'/>
		</version>			
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Text" type="varchar" size='300' expensive='true' mode="design">
				<link_multiple no='1' expression="cast({{0}} as varchar(20)) + '_' + cast(db_id() as varchar(20)) + '_0'">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>		
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="Text" type="nvarchar" size='max' expensive='true' mode="design">{0}.definition</property>
		</version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='sysalerts' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link local='JobID' parent='JobID'/>
		</parent_link>
	</settings>
	<properties>
		<include file='agent_alert.xml' />
	</properties>
</EnumObject>)	<?xml version='1.0' ?>
<EnumObject type='SPHelpJobhistory' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>

		<property_link table='#tmp_sp_help_jobhistory' alias='tshj' />
		<prefix>
create table #tmp_sp_help_jobhistory
(instance_id int null, job_id uniqueidentifier null, job_name sysname null, step_id int null, step_name sysname null, sql_message_id int null, sql_severity int null, message nvarchar(4000) null, run_status int null, run_date int null, run_time int null, run_duration int null, operator_emailed sysname null, operator_netsent sysname null, operator_paged sysname null, retries_attempted int null, server sysname null)
insert into #tmp_sp_help_jobhistory exec msdb.dbo.sp_help_jobhistory @mode='FULL'
		</prefix>
		<postfix>
drop table #tmp_sp_help_jobhistory
		</postfix>
	</settings>
	<properties>
		<property name='InstanceID' type='int'>tshj.instance_id</property>
		<property name='SqlMessageID' type='int'>tshj.sql_message_id</property>
		<property name='Message' type='nvarchar' size = '4000'>tshj.message</property>
		<property name='StepID' type='int'>tshj.step_id</property>
		<property name='StepName' type='sysname'>tshj.step_name</property>
		<property name='SqlSeverity' type='int'>tshj.sql_severity</property>

		<property name='JobID' type='uniqueidentifier'>tshj.job_id</property>
		<property name='JobName' type='sysname'>tshj.job_name</property>
		<property name='RunStatus' type='int' report_type='Agent.CompletionResult'>tshj.run_status</property>

		<property name='RunDate' type='datetime'>convert(datetime, stuff(stuff(cast(tshj.run_date as nchar(8)), 7, 0, '-'), 5, 0, '-') + N' ' + stuff(stuff(substring(cast(1000000 + tshj.run_time as nchar(7)), 2, 6), 5, 0, ':'), 3, 0, ':'), 120)</property>

		<property name='RunDuration' type='int'>tshj.run_duration</property>
		<property name='OperatorEmailed' type='sysname'>tshj.operator_emailed</property>
		<property name='OperatorNetsent' type='sysname'>tshj.operator_netsent</property>
		<property name='OperatorPaged' type='sysname'>tshj.operator_paged</property>
		<property name='RetriesAttempted' type='int'>tshj.retries_attempted</property>
		<property name='Server' type='sysname'>tshj.server</property>
	</properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SPHelpJobserver' impl_type='SqlObject' min_major='7' >
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>

		<property_link table='#tmp_sp_help_jobserver' alias='tshj'/>
		<prefix>
			<link_multiple no='1' expression="
create table #tmp_sp_help_jobserver
(server_id int null, server_name sysname null, enlist_date datetime null, last_poll_date datetime null, last_run_date int null, last_run_time int null, last_run_duration int null, last_run_outcome tinyint null, last_outcome_message nvarchar(4000) null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} )
open crs
fetch crs into @job_id
while @@fetch_status &gt;= 0
begin
insert into #tmp_sp_help_jobserver(server_id, server_name, enlist_date, last_poll_date, last_run_date, last_run_time, last_run_duration, last_run_outcome, last_outcome_message)
		exec msdb.dbo.sp_help_jobserver @job_id = @job_id, @show_last_run_details = 1
	update #tmp_sp_help_jobserver set job_id = @job_id where job_id is null
	fetch crs into @job_id
end
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #tmp_sp_help_jobserver
		</postfix>
		<post_process fields = '#LastRunDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
					triggered_fields='#LastRunDateInt#LastRunTimeInt#'/>
	</settings>
	<properties>
		<property name='ServerName' type='sysname'>tshj.server_name</property>
		<property name='ID' type='int'>tshj.server_id</property>
		<property name='EnlistDate' type='datetime'>tshj.enlist_date</property>
		<property name='LastPollDate' type='datetime'>tshj.last_poll_date</property>

		<property name='LastRunDate' type='datetime'>null</property>
		<property name='LastRunDateInt' type='int' hidden='true'>tshj.last_run_date</property>
		<property name='LastRunTimeInt' type='int' hidden='true'>tshj.last_run_time</property>

		<property name='LastRunDuration' type='int'>tshj.last_run_duration</property>
		<property name='LastRunOutcome' type='tinyint' report_type = 'Agent.JobOutcome'>tshj.last_run_outcome</property>
		<property name='LastOutcomeMessage' type='nvarchar' size = '4000'>tshj.last_outcome_message</property>

		<property name='JobID' type='uniqueidentifier' hidden='true'>tshj.job_id</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table="#err_log_tmp er" />
		<version min_major='9' >
			<prefix>
				create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int)
				insert #err_log_tmp exec master.dbo.sp_enumerrorlogs 2
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix>
create table #err_log_tmp(ArchiveNo int, CreateDate datetime, Size int, ErrorLog NVARCHAR(255))
				
DECLARE @errorlog_path NVARCHAR(255)
DECLARE @errorlog_dir NVARCHAR(255)
DECLARE @errorlog_partfile NVARCHAR(255)
DECLARE @errorlog NVARCHAR(255)
DECLARE @dotIdx INT
DECLARE @slashIdx INT
DECLARE @logexists INT
DECLARE @ArchiveNo INT
			</prefix>
		</version>	
				
		<version min_major='7' max_major='7'>
			<prefix>
				EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE',
														N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
														N'ErrorLogFile',
														@errorlog_path OUTPUT,
														N'no_output'
			</prefix>
		</version>
		
		<version min_major='8' max_major='8'>
			<prefix>
				EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
														N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
														N'ErrorLogFile',
														@errorlog_path OUTPUT,
														N'no_output'
			</prefix>
		</version>
		
		<version min_major='7' max_major='8'>
			<!-- take special care on how we convert the LastWriteTime from xp_getfiledetails
			sometimes we get only minutes and seconds and sometimes only secconds.
			Also the hour can have only one digit
			In all this cases replace the missing digits with 0-->
			-->
			<prefix>
EXECUTE master.dbo.xp_fileexist @errorlog_path, @logexists OUTPUT

IF(@logexists = 1)
BEGIN
	create table #err_logs_dir_tmp(ErrorLog NVARCHAR(255), d int, f int)
	create table #file_details_tmp(AltName NVARCHAR(32) NULL, Size int, CDate INT, CTime INT, LWDate INT, LWTime INT,  LADate INT, LATime INT, Attributes INT)

	INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog_path

	SET @errorlog_path = REVERSE(@errorlog_path)

	SET @dotIdx = CHARINDEX(N'.', @errorlog_path);
	SET @slashIdx = CHARINDEX(N'\', @errorlog_path);
	SET @errorlog_path = REVERSE(@errorlog_path)
	SET @errorlog_dir = @errorlog_path 

	if(@slashIdx &lt;&gt; 0)
	BEGIN
		SET @errorlog_dir = SUBSTRING(@errorlog_path, 1, LEN(@errorlog_path) - @slashIdx)
		SET @errorlog_partfile= SUBSTRING(@errorlog_path, LEN(@errorlog_path) - @slashIdx + 2, 255)
	END

	if(@dotIdx &lt;&gt; 0)
	BEGIN
		SET @errorlog_partfile = SUBSTRING(@errorlog_partfile, 1, LEN(@errorlog_partfile) - @dotIdx + 1)
	END

	INSERT #err_logs_dir_tmp EXECUTE master.dbo.xp_dirtree @errorlog_dir, 1, 1
				
	INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog) 
	SELECT 
		0,
		-- convert the 2 int's (20020912  152026) to yyyy-mm-dd hh:mi:ss
		CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' +
			STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':')
			, 120),
		Size,
		@errorlog_path
	FROM #file_details_tmp

	DELETE #file_details_tmp

	declare crslogs insensitive cursor 
		for ( SELECT ErrorLog FROM #err_logs_dir_tmp WHERE ErrorLog like @errorlog_partfile + '[1-9]' ) 
	for read only 
	open crslogs 
	fetch crslogs into @errorlog
	while @@fetch_status &gt;= 0 
	begin 
		SET @ArchiveNo = CONVERT(INT, SUBSTRING(@errorlog, LEN(@errorlog_partfile) + 1, 1))
		SET @errorlog = @errorlog_dir + '\' + @errorlog

		INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog

		INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog) 
		SELECT 
			@ArchiveNo, 
			-- convert the 2 int's (20020912  152026) to yyyy-mm-dd hh:mi:ss
			CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' +
				STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':')
				, 120),
			Size,
			@errorlog
		FROM #file_details_tmp

		DELETE #file_details_tmp

		fetch crslogs into @errorlog
	end 
	close crslogs
	deallocate crslogs

	DROP TABLE #file_details_tmp
	DROP TABLE #err_logs_dir_tmp
END
			</prefix>
		</version>
		<postfix>
			drop table #err_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="Name" type="sysname" cast='true'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int">er.ArchiveNo</property>
        <version min_major='7' max_major='8'>
            <property name="CreateDate" type="datetime">er.CreateDate</property>
        </version>
        <version min_major='9' >
            <property name="CreateDate" type="datetime">CONVERT(datetime, er.CreateDate, 101)</property>
        </version>
        <version min_major='8' >
			<property name="Size" type="int">er.Size</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
		</parent_link>
	
		<version min_major='7' max_major='8'>
			<request_parent_select>
				<field name='ArchiveNo' />							
			</request_parent_select>
		</version>
		<version min_major='9' >
			<request_parent_select>
				<field name='ArchiveNo' />
			</request_parent_select>
		</version>
		<property_link table="#err_log_text_tmp ert" />
		<version min_major='9' >
			<prefix>
				<link_multiple no='1' expression="
create table #err_log_text_tmp(LogDate datetime null, ErrorLevel int null, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)
declare @ArchiveNoChild int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNoChild
while @@fetch_status &gt;= 0 
begin 
		insert #err_log_text_tmp (LogDate, ErrorLevel, Text) exec master.dbo.sp_readerrorlog @ArchiveNoChild, 2
		update #err_log_text_tmp set ArchiveNo = @ArchiveNoChild where ArchiveNo is null
		fetch crs into @ArchiveNoChild
end 
close crs
deallocate crs
">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #err_log_text_tmp(LogDate datetime null, ErrorLevel int null, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)
declare @ErrorLogChild nvarchar(255)
declare @ArchiveNoChild int
				
declare crs insensitive cursor 
for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNoChild
while @@fetch_status &gt;= 0 
begin 
        set @ErrorLogChild = (select top 1 ErrorLog from #err_log_tmp where ArchiveNo = @ArchiveNoChild)
        insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog -1, @ErrorLogChild
		update #err_log_text_tmp set ArchiveNo  = @ArchiveNoChild where ArchiveNo is null

		fetch crs into @ArchiveNoChild
end 
close crs
deallocate crs

UPDATE #err_log_text_tmp
    SET LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]%'
    THEN CONVERT(datetime, LEFT(Text, 19), 120) ELSE NULL END,
    ErrorLevel = CASE SUBSTRING(Text, 21, 3) WHEN '- ?' THEN 3 WHEN '- +' THEN 2 ELSE 1 END,
    Text = SUBSTRING(Text, 25, 4000)
WHERE ContinuationRow = 0
">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
        <postfix>
			drop table #err_log_text_tmp
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ErrorLevel" type="int">ert.ErrorLevel</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="AvailableMedia" impl_type="SqlObject" min_major='7' >
	<settings main_table="#avmed am">
		<version min_major='8' >
			<property_link fields='#SharedDrive#'
				left_join='#tmpsrdDrive srddrv'>convert(nchar(1), am.name)= convert(nchar(1), srddrv.DriveName)</property_link>
		</version>

		<prefix>
create table #avmed (name nvarchar(512), low_free int, high_free int, type int)
insert #avmed exec master.dbo.xp_availablemedia
update #avmed set name = convert(nchar(2), name) where type != 4
		</prefix>
		<version min_major='8' max_major='8'>
			<prefix fields='#SharedDrive#' comment="make temp table to avoid collation conflict">
create table #tmpsrdDrive ( DriveName nvarchar(255) )
insert #tmpsrdDrive	select * from ::fn_servershareddrives()
			</prefix>
		</version>
		<version min_major='9' >
			<prefix fields='#SharedDrive#' comment="make temp table to avoid collation conflict">
create table #tmpsrdDrive ( DriveName nvarchar(255) )
insert #tmpsrdDrive	select * from sys.fn_servershareddrives()
			</prefix>
		</version>
		<postfix>
drop table #avmed
		</postfix>
		<version min_major='8' >
			<postfix fields='#SharedDrive#'>
drop table #tmpsrdDrive
			</postfix>
		</version>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='512'>am.name</property>
		<property name="LowFree" type="int">am.low_free</property>
		<property name="HighFree" type="int">am.high_free</property>
		<property name="FreeSpace" type="float" cast="true">case when am.low_free >= 0 then 0. + am.low_free else 4294967296. + am.low_free end + 4294967296. * am.high_free</property>
		<property name="MediaTypes" type="int" report_type='MediaTypes'>am.type</property>
		<version min_major='8' >
			<property name="SharedDrive" type="bit" cast='true'>case when srddrv.DriveName is null then 0 else 1 end</property>
		</version>
	</properties>
</EnumObject>
3<?xml version="1.0" ?>
<EnumObject type="StatisticColumn" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<version min_major='7' max_major='8'>		
			<property_link table="dbo.sysindexkeys c" />
			<property_link filed = '#Name#' table="dbo.syscolumns clmns">
				clmns.id = c.id and clmns.colid = c.colid
			</property_link>
		</version>		
		<version min_major='9' cloud_min_major='10'>
			<property_link table = "sys.stats_columns sic"/>		
		</version>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>		
			<property name="Name" type="nvarchar" size="256">clmns.name</property>		
			<property name="ID" type="int" cast='true'>c.keyno</property>
			<property name="TableID" type="int" hidden='true'>c.id</property>
			<property name="IndexID" type="int" hidden='true'>c.indid</property>
			<property name="ColumnID" type="int" hidden='true'>c.colid</property>
		</version>		
		<version min_major='9' cloud_min_major='10'>
			<property name="Name" type="sysname">COL_NAME(sic.object_id, sic.column_id)</property>
			<property name="ID" type="int">sic.stats_column_id</property>
			<property name="TableID" type="int" hidden='true'>sic.object_id</property>
			<property name="IndexID" type="int" hidden='true'>sic.stats_id</property>
			<property name="ColumnID" type="int" hidden='true'>sic.column_id</property>
		</version>		
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="UserOption" impl_type="UserOption" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<prefix>
				declare @UserOption int
				select @UserOption=c.value from master.dbo.sysconfigures c, master.dbo.spt_values v where v.type = 'C  ' and not c.status is null and v.number = c.config and v.name='user options'
			</prefix>
		</version>
		<version min_major='9' >
			<prefix>
        declare @UserOption int
        select @UserOption=convert(int, c.value) from sys.configurations c where c.name='user options'
      </prefix>				
		</version>
	</settings>
	<properties>
		<property name="DisableDefaultConstraintCheck" type="bit" cast='true' mode="deploy">@UserOption &amp; 1</property>
		<property name="ImplicitTransactions" type="bit" cast='true' mode="deploy">@UserOption &amp; 2</property>
		<property name="CursorCloseOnCommit" type="bit" cast='true' mode="deploy">@UserOption &amp; 4</property>
		<property name="AnsiWarnings" type="bit" cast='true' mode="deploy">@UserOption &amp; 8</property>
		<property name="AnsiPadding" type="bit" cast='true' mode="deploy">@UserOption &amp; 16</property>
		<property name="AnsiNulls" type="bit" cast='true' mode="deploy">@UserOption &amp; 32</property>
		<property name="AbortOnArithmeticErrors" type="bit" cast='true' mode="deploy">@UserOption &amp; 64</property>
		<property name="IgnoreArithmeticErrors" type="bit" cast='true' mode="deploy">@UserOption &amp; 128</property>
		<property name="QuotedIdentifier" type="bit" cast='true' mode="deploy">@UserOption &amp; 256</property>
		<property name="NoCount" type="bit" cast='true' mode="deploy">@UserOption &amp; 512</property>
		<property name="AnsiNullDefaultOn" type="bit" cast='true' mode="deploy">@UserOption &amp; 1024</property>
		<property name="AnsiNullDefaultOff" type="bit" cast='true' mode="deploy">@UserOption &amp; 2048</property>
		<property name="ConcatenateNullYieldsNull" type="bit" cast='true' mode="deploy">@UserOption &amp; 4096</property>
		<property name="NumericRoundAbort" type="bit" cast='true' mode="deploy">@UserOption &amp; 8192</property>
		<property name="AbortTransactionOnError" type="bit" cast='true' mode="deploy">@UserOption &amp; 16384</property>
	</properties>
</EnumObject>
{%<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='7'>
			<prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#VersionString#OSVersion#Language#">
				create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
				insert #SVer exec master.dbo.xp_msver
			</prefix>
			<prefix fields="#NetName#">
				declare @NetName sysname
				exec master.dbo.xp_getnetname @NetName OUTPUT
			</prefix>
 			<prefix fields="#RootDirectory#">
				declare @SmoRoot nvarchar(512)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT
			</prefix>
  			<prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#"> 
				declare @RegPathParams sysname
				declare @Arg sysname
				declare @Param sysname
				declare @MasterPath nvarchar(512)
				declare @LogPath nvarchar(512)
				declare @ErrorLogPath nvarchar(512)
				declare @n int

				select @n=0
				select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters'
				select @Param='dummy'
				while(not @Param is null)
				begin
					select @Param=null
					select @Arg='SqlArg'+convert(nvarchar,@n)

					exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT
					if(@Param like '-d%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					else if(@Param like '-l%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					else if(@Param like '-e%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					
					select @n=@n+1
				end
				</prefix>
			<postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#VersionString#OSVersion#Language#">
				drop table #SVer
			</postfix>
		</version>

		<version min_major='8' >
			<prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#">
				create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
				insert #SVer exec master.dbo.xp_msver
			</prefix>
 			<prefix fields="#RootDirectory#">
				declare @SmoRoot nvarchar(512)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT
			</prefix>
  			<prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#"> 
				declare @RegPathParams sysname
				declare @Arg sysname
				declare @Param sysname
				declare @MasterPath nvarchar(512)
				declare @LogPath nvarchar(512)
				declare @ErrorLogPath nvarchar(512)
				declare @n int

				select @n=0
				select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters'
				select @Param='dummy'
				while(not @Param is null)
				begin
					select @Param=null
					select @Arg='SqlArg'+convert(nvarchar,@n)

					exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT
					if(@Param like '-d%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					else if(@Param like '-l%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					else if(@Param like '-e%')
					begin
						select @Param=substring(@Param, 3, 255)
						select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
					end
					
					select @n=@n+1
				end
			</prefix>
			<postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#">
				drop table #SVer
			</postfix>
		</version>
	</settings>
	<properties>
    <version min_major="7">
      <property name="Product" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductName')</property>
      <property name="OSVersion" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'WindowsVersion')</property>
      <property name="Language" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'Language')</property>
      <property name="Platform" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'Platform')</property>
      <property name="PhysicalMemory" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'PhysicalMemory')</property>
      <property name="Processors" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'ProcessorCount')</property>
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">@LogPath</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">@MasterPath</property>
      <property name="ErrorLogPath" type="nvarchar" size="512" access="Read">@ErrorLogPath</property>
      <property name="RootDirectory" type="nvarchar" size='512' access="Read">@SmoRoot</property>
    </version>

    <property name="VersionMajor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x1000000) &amp; 0xff</property>
    <property name="VersionMinor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x10000) &amp; 0xff</property>
    <property name="BuildNumber" type="int" access="Read" expensive='true'>@@microsoftversion &amp; 0xffff</property>
    <property name="IsCaseSensitive" type="bit" access="Read" cast='true'>case when 'a' &lt;&gt; 'A' then 1 else 0 end</property>
    <property name="MaxPrecision" type="tinyint" access="Read">@@MAX_PRECISION</property>

    <version min_major='7' max_major='7'>
      <property name="VersionString" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductVersion')</property>
      <property name="NetName" type="sysname" access="Read" expensive='true'>@NetName</property>
      <property name="Edition" type="sysname" access="Read" cast='true'>SUBSTRING(@@version,PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2,PATINDEX(N'% on %',@@version)-(PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2))</property>
    </version>
		<version min_major='8' cloud_min_major='10'>
			<property name="VersionString" type="sysname" access="Read">SERVERPROPERTY(N'ProductVersion')</property>
			<property name="Edition" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'Edition')</property>
			<property name="ProductLevel" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'ProductLevel')</property>
			<property name="IsSingleUser" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsSingleUser')</property>
			<property name="EngineEdition" type="int" access='Read' cast='true'>SERVERPROPERTY('EngineEdition')</property>
      <property name="Collation" type="sysname" access="Read">convert(sysname, serverproperty(N'collation'))</property>
		</version>
    <version min_major='8'>
      <property name="IsClustered" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsClustered')</property>
      <property name="NetName" type="sysname" access="Read" cast = 'true'>SERVERPROPERTY(N'MachineName')</property>
    </version>
		<version min_major='7' max_major='8'>
			<property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end</property>
		</version>
    <version min_major='9' >
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>null</property>
      <property name="BuildClrVersionString" type="sysname" access="Read">SERVERPROPERTY(N'BuildClrVersion')</property>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <property name="ResourceVersionString" type="sysname" access="Read">SERVERPROPERTY(N'ResourceVersion')</property>
      <property name="ResourceLastUpdateDateTime" type="datetime" access="Read">SERVERPROPERTY(N'ResourceLastUpdateDateTime')</property>
      <property name="CollationID" type="int" access="Read">SERVERPROPERTY(N'CollationID')</property>
      <property name="ComparisonStyle" type="int" access="Read">SERVERPROPERTY(N'ComparisonStyle')</property>
      <property name="SqlCharSet" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlCharSet')</property>
      <property name="SqlCharSetName" type="sysname" access="Read">SERVERPROPERTY(N'SqlCharSetName')</property>
      <property name="SqlSortOrder" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlSortOrder')</property>
      <property name="SqlSortOrderName" type="sysname" access="Read">SERVERPROPERTY(N'SqlSortOrderName')</property>
    </version>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' >
    <!--
    this code will truncate paths longer than 512 unicode chars
    -->
	<settings>
		<version min_major='7' max_major='7'>
			<prefix fields="#NumberOfLogFiles#"> 
				declare @NumErrorLogs int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT
			</prefix>
			<prefix fields="#DefaultFile#">
				declare @SmoDefaultFile nvarchar(512)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT
			</prefix>
			<prefix fields="#DefaultLog#">
				declare @SmoDefaultLog nvarchar(512)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT
			</prefix>
			<prefix fields="#LoginMode#">
				declare @SmoLoginMode int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT
			</prefix>
			<prefix fields="#AuditLevel#">
				declare @SmoAuditLevel int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT
			</prefix>
			<prefix fields="#TapeLoadWaitTime#">
				declare @SmoTapeLoadWaitTime int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
			</prefix>
			<prefix fields="#BackupDirectory#">
				declare @BackupDirectory nvarchar(512)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT
			</prefix>
			<prefix fields="#MailProfile#">
				declare @SmoMailProfile nvarchar(512)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT
			</prefix>
			<prefix fields="#PerfMonMode#">
				declare @SmoPerfMonMode int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT

				if @SmoPerfMonMode is null
				begin 
					set @SmoPerfMonMode = 1000
				end
			</prefix>
		</version>
		<version min_major='8' >
			<prefix fields="#NumberOfLogFiles#"> 
				declare @NumErrorLogs int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT
			</prefix>
			<prefix fields="#DefaultFile#">
				declare @SmoDefaultFile nvarchar(512)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT
			</prefix>
			<prefix fields="#DefaultLog#">
				declare @SmoDefaultLog nvarchar(512)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT
			</prefix>
			<prefix fields="#LoginMode#">
				declare @SmoLoginMode int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT
			</prefix>
			<prefix fields="#AuditLevel#">
				declare @SmoAuditLevel int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT
			</prefix>
			<prefix fields="#BackupDirectory#">
				declare @BackupDirectory nvarchar(512)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT
			</prefix>
			<prefix fields="#MailProfile#">
				declare @SmoMailProfile nvarchar(512)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT
			</prefix>
			<prefix fields="#PerfMonMode#">
				declare @SmoPerfMonMode int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT

				if @SmoPerfMonMode is null
				begin 
					set @SmoPerfMonMode = 1000
				end
			</prefix>
		</version>
		<version min_major='8' max_major='9'>
			<prefix fields="#TapeLoadWaitTime#">
				declare @SmoTapeLoadWaitTime int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
			</prefix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='2' expression="{0} + '/{1}'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name="AuditLevel" type="int"  report_type='AuditLevel'>@SmoAuditLevel</property>
		<property name="DefaultFile" type="nvarchar" size="512">ISNULL(@SmoDefaultFile,N'')</property>			
		<property name="DefaultLog" type="nvarchar" size="512">ISNULL(@SmoDefaultLog,N'')</property>
		<property name="NumberOfLogFiles" type="int">ISNULL(@NumErrorLogs, -1)</property>
		<property name="LoginMode" type="int" report_type='ServerLoginMode'>(case when @SmoLoginMode &lt; 3 then @SmoLoginMode else 9 end)</property>		
		<version min_major='7' max_major='9'>
			<property name="TapeLoadWaitTime" type="int">@SmoTapeLoadWaitTime</property>
		</version>
		<version min_major='10'>
			<property name="TapeLoadWaitTime" type="int">-1</property>
		</version>
		<property name="MailProfile" type="nvarchar" size="512">ISNULL(@SmoMailProfile,N'')</property>		
		<property name="BackupDirectory" type="nvarchar" size="512" notusage='filter,order'>@BackupDirectory</property>
		<property name="PerfMonMode" type="int" report_type='PerfMonMode'>@SmoPerfMonMode</property>		
	</properties>
</EnumObject>
Q<?xml version="1.0" ?>
<EnumObject type="FKColumn" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local='FK_ID' />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysforeignkeys AS fk" />
			<property_link fields='#ID#Name#' 
				join="dbo.syscolumns AS cfk">cfk.colid=fk.fkey and cfk.id = fk.fkeyid</property_link>
			<property_link fields='#ReferencedColumn#' 
				join="dbo.syscolumns AS crk">crk.colid=fk.rkey and crk.id = fk.rkeyid</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table="sys.foreign_key_columns AS fk" />
			<property_link fields='#ID#Name#' 
				join="sys.columns AS cfk">fk.parent_column_id = cfk.column_id and fk.parent_object_id = cfk.object_id</property_link>
			<property_link fields='#ReferencedColumn#' 
				join="sys.columns AS crk">fk.referenced_column_id = crk.column_id and fk.referenced_object_id = crk.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">cfk.name</property>
			<property name="ID" type="int" cast='true'>fk.keyno</property>
			<property name="ReferencedColumn" type="sysname" mode="design">crk.name</property>
			<property name="FK_ID" type="int" hidden='true'>fk.constid</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">cfk.name</property>
			<property name="ID" type="int">fk.constraint_column_id</property>
			<property name="ReferencedColumn" type="sysname" mode="design">crk.name</property>
			<property name="FK_ID" type="int" hidden='true'>fk.constraint_object_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ComputedText" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="ColumnID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<property_link table='dbo.syscomments comt' />
	</settings>
	<properties>
		<property name="ID" type="int" access="Read" cast='true'>comt.colid</property>
		<property name="Text" type="varchar" size='8000' access="Read">comt.text</property>
		<property name="ObjectIdentifier" type="nvarchar" size='300' 
			access="Read">cast(comt.id as nvarchar(20)) + N'_' + cast(comt.number as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_0'</property>		
		<property name="TableID" type="int" access="Read" hidden='true'>comt.id</property>
		<property name="ColumnID" type="int" access="Read" hidden='true'>comt.number</property>
	</properties>
</EnumObject>
3<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields = '#Schema#' join='sysusers AS s{0}'>s{0}.uid = {0}.uid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include alias='{0}' file='inc_named_object.xml' />
		<version min_major='7' max_major='8'>
			<property name="Schema" type="sysname" mode="design">s{0}.name</property>
      <property name="Owner" type="sysname" mode="design">s{0}.name</property>
			<!-- extended properties support -->
			<property name="ObjectSchemaFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{{0}}">
					<link_field type='filter' field="Schema" default_value="null"/>
				</link_multiple>
			</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="Schema" type="sysname" mode="design">SCHEMA_NAME({0}.schema_id)</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="IsSystemObject" type="bit" access='Read' cast='true'>
                CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END
            </property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
                {0}.is_ms_shipped
           </property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="IsSystemObject" type="bit" access='Read' cast='true'>
                CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END
            </property>
		</version>
		<version min_major='9' >
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
 case 
    when {0}.is_ms_shipped = 1 then 1
    when (
        select 
            major_id 
        from 
            sys.extended_properties 
        where 
            major_id = {0}.object_id and 
            minor_id = 0 and 
            class = 1 and 
            name = N'microsoft_database_tools_support') 
        is not null then 1
    else 0
end          
            </property>
		</version>
    <version cloud_min_major='10'>
      <property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
        case
          when {0}.is_ms_shipped = 1 then 1
          else 0
        end
      </property>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings/>
	<properties>
		<include file='inc_urn.xml' />
		<include alias = 'cstr' file='inc_named_object.xml' for='#Name#ID#CreateDate#DateLastModified#'/>
		<version min_major='7' max_major='8'>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>cstr.status &amp; 4</property>
			<property name="IsChecked" type="bit" cast='true' read_only_after_creation="true" mode="design">1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotTrusted'),0)</property>
			<property name="IsEnabled" type="bit" cast='true' mode="design">1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsDisabled'),0)</property>
			<property name="NotForReplication"
			 type="bit" cast='true' read_only_after_creation="true" mode="deploy">ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotRepl'),0)</property>
		</version>

		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'CONSTRAINT'</property>
		</version>

		<version min_major='9' cloud_min_major='10'>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>cstr.is_system_named</property>
			<property name="IsChecked" type="bit" read_only_after_creation="true" mode="design">~cstr.is_not_trusted</property>
			<property name="IsEnabled" type="bit" mode="design">~cstr.is_disabled</property>
			<property name="NotForReplication" type="bit" read_only_after_creation="true" mode="deploy">cstr.is_not_for_replication</property>
		</version>
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>		
	</properties>
</EnumObject>
I<?xml version="1.0" ?>
<EnumObject min_major='9' >
	<settings>
		<parent_link>
			<link parent = 'IndexID' local = 'IndexID'/>
			<link parent = 'TableID' local = 'ObjectID'/>
		</parent_link>
		<property_link table='sys.index_columns ic'>ic.partition_ordinal &gt; 0</property_link>
		<property_link fields='#Name#' join='sys.columns c'>c.object_id = ic.object_id and c.column_id = ic.column_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">c.name</property>
		<property name="ID" type="int" cast="true">ic.partition_ordinal</property>
		
		<!-- used for parent link -->
		<property name="IndexID" type="int" hidden='true'>ic.index_id</property>
		<property name="ObjectID" type="int" hidden='true'>ic.object_id</property>
	</properties>
</EnumObject>
+<?xml version="1.0" ?>
<EnumObject type="PartitionFunction" impl_type="SqlObject" min_major='9' >
	<settings main_table="sys.partition_functions AS spf" />
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">spf.name</property>
		<property name="ID" type="int" access='Read'>spf.function_id</property>
		<property name="RangeType" type="int" report_type="RangeType" cast='true' read_only_after_creation="true">spf.boundary_value_on_right</property>
		<property name="CreateDate" type="datetime" access='Read'>spf.create_date</property>
		<property name="NumberOfPartitions" type="int" access='Read'>spf.fanout</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>21</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>spf.function_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="PartitionFunctionParameter" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.partition_parameters AS spp' />
		<property_link fields='#Name#' join='sys.types AS st'>st.system_type_id = st.user_type_id and spp.system_type_id = st.system_type_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="BaseTypeHidden" />
			</link_multiple>
		</property>
		<property name="ID" type="int" access='Read'>spp.parameter_id</property>
		<property name="ParentID" type="int" hidden="true">spp.function_id</property>
		<property name="Collation" type="sysname">ISNULL(spp.collation_name,N'')</property>
		<include file='inc_type.xml' for='#Length#NumericPrecision#NumericScale#' alias='spp'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="RangeValue" impl_type="SqlObject" min_major='9' >
	<settings main_table="sys.partition_range_values sprv" >
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="ID" type="int" access='Read'>sprv.boundary_id</property>
		<property name="ParentID" type="int" hidden="true">sprv.function_id</property>
		<property name="Value" type="sql_variant" access='Read'>sprv.value</property>
	</properties>
</EnumObject>

3<?xml version="1.0" ?>
<EnumObject type="PartitionFunction" impl_type="SqlObject" min_major='9' >
	<settings>
			<property_link table='sys.partition_schemes AS sps'/>
			<property_link fields='#PartitionFunction#NextUsedFileGroup#FunctionFunOut#' 
							join='sys.partition_functions AS spf'>sps.function_id = spf.function_id	</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">sps.name</property>
		<property name="ID" type="int" access='Read'>sps.data_space_id</property>
		<property name="FunctionFunOut" type="int" access='Read' hidden='true'>spf.fanout</property>
		<property name="PartitionFunction" type="sysname" read_only_after_creation="true">spf.name</property>
		<property name="NextUsedFileGroup" type="sysname">ISNULL((case when spf.fanout &lt; (select count(*) from sys.destination_data_spaces sdd where sps.data_space_id = sdd.partition_scheme_id) then (select sf.name from sys.filegroups sf, sys.destination_data_spaces sdd where sf.data_space_id = sdd.data_space_id and sps.data_space_id = sdd.partition_scheme_id and sdd.destination_id &gt; spf.fanout) else null end),N'')</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>20</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>sps.data_space_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="PartitionSchemeFileGroup" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link join='sys.destination_data_spaces AS sdd'>
			<link_multiple no='2' expression="sdd.partition_scheme_id = {0} and sdd.destination_id &lt;= {1}">
				<link_field type='parent' field="ID" />
				<link_field type='parent' field="FunctionFunOut" />
			</link_multiple>
		</property_link>
		<property_link fields='#Name#' 
				join='sys.filegroups AS sf'>sf.data_space_id = sdd.data_space_id</property_link>
	</settings>
	<properties>
		<property name="Name" type="sysname" access='Read'>sf.name</property>
		<property name="ID" type="int" access='Read'>sdd.destination_id</property>
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<!-- left join because sysfiles have groupid = 0 on their index -->
			<property_link fields='#FileGroup#' left_join='dbo.sysfilegroups AS fg{0}'>
				<link_multiple no='1' expression="fg{0}.groupid = {0}.groupid">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>
		</version>
		<version min_major='9' >
			<property_link fields='#FileGroup#PartitionScheme#IsPartitioned#' left_join='sys.data_spaces AS ds{0}'>
				<link_multiple no='1' expression="ds{0}.data_space_id = {0}.data_space_id">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>			
		</version>
		<version min_major='10' >
		<property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.tables AS t'>t.object_id = {0}.object_id</property_link>
			<property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.data_spaces AS dstbl'>
				<link_multiple no='1' expression="dstbl.data_space_id = t.Filestream_data_space_id and {0}.index_id &lt; 2">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="FileGroup" type="sysname" read_only_after_creation="true">fg{0}.groupname</property>
		</version>
		<version min_major='9' >
			<property name="FileGroup" type="sysname" read_only_after_creation="true">CASE WHEN 'FG'=ds{0}.type THEN ds{0}.name ELSE N'' END</property>
			<property name="PartitionScheme" type="sysname" read_only_after_creation="true">CASE WHEN 'PS'=ds{0}.type THEN ds{0}.name ELSE N'' END</property>
			<property name="IsPartitioned" type="bit" cast='true' access="Read">CASE WHEN 'PS'=ds{0}.type THEN 1 ELSE 0 END</property>
		</version>
		<version min_major='10' >
			<property name="FileStreamFileGroup" type="sysname">CASE WHEN 'FD'=dstbl.type THEN dstbl.name ELSE N'' END</property>
			<property name="FileStreamPartitionScheme" type="sysname">CASE WHEN 'PS'=dstbl.type THEN dstbl.name ELSE N'' END</property>		
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#DataType#DataTypeSchema#' 
					left_join='systypes AS usrt'>usrt.xusertype = {0}.xusertype</property_link>
			<property_link fields='#SystemType#Length#BaseTypeHidden#'
					left_join='systypes AS baset'>baset.xusertype = {0}.xtype and baset.xusertype = baset.xtype</property_link>
			<property_link fields='#DataTypeSchema#' 
					left_join='sysusers AS s{0}'>s{0}.uid = usrt.uid</property_link>
		</version>
        <!-- 
          For clr system types the system_type_id and user_type_id will be different in sys.types.		 	 
        -->
        <version min_major='9' max_major='9'>
            <property_link fields='#SystemType#Length#BaseTypeHidden#VariableLength#' 
                    left_join='sys.types AS baset'>(baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) </property_link>
        </version>
        <version min_major='10' cloud_min_major='10'>
            <property_link fields='#SystemType#Length#BaseTypeHidden#VariableLength#' 
                    left_join='sys.types AS baset'>(baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) or ((baset.system_type_id = {0}.system_type_id) and (baset.user_type_id = {0}.user_type_id) and (baset.is_user_defined = 0) and (baset.is_assembly_type = 1)) </property_link>
        </version>
		<version min_major='9' cloud_min_major='10'>
			<property_link fields='#DataType#DataTypeSchema#UserType#' 
					left_join='sys.types AS usrt'>usrt.user_type_id = {0}.user_type_id</property_link>
			<property_link fields = '#DataTypeSchema#' 
					left_join='sys.schemas AS s{0}'>s{0}.schema_id = usrt.schema_id</property_link>
			<property_link fields='#XmlSchemaNamespace#XmlSchemaNamespaceSchema#' 
					left_join='sys.xml_schema_collections AS xsc{0}'>xsc{0}.xml_collection_id = {0}.xml_collection_id</property_link>
			<property_link fields = '#XmlSchemaNamespaceSchema#' 
					left_join='sys.schemas AS s2{0}'>s2{0}.schema_id = xsc{0}.schema_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="DataType" type="sysname" mode="design">usrt.name</property>
		<property name="DataTypeSchema" type="sysname">s{0}.name</property>
		<property name="BaseTypeHidden" type="sysname" hidden='true'>baset.name</property>
		<property name="SystemType" type="sysname" access='Read'>ISNULL(baset.name, N'')</property>
		<version min_major='7' max_major='8'>
			<property name="Length" type="int"
				cast='true' mode="design">CASE WHEN baset.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN {0}.prec ELSE {0}.length END</property>
			<property name="NumericPrecision" type="int" cast='true' mode="design">{0}.xprec</property>
			<property name="NumericScale" type="int" cast='true' mode="design">{0}.xscale</property>
		</version>        
		<version min_major='9' cloud_min_major='10'>

			<property name="Length" type="int"
				cast='true' mode="design">CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND {0}.max_length &lt;&gt; -1 THEN {0}.max_length/2 ELSE {0}.max_length END</property>
			<property name="NumericPrecision" type="int" cast='true' mode="design">{0}.precision</property>
			<property name="NumericScale" type="int" cast='true' mode="design">{0}.scale</property>
			<property name='XmlSchemaNamespace' type='sysname'>ISNULL(xsc{0}.name, N'')</property>			
			<property name='XmlSchemaNamespaceSchema' type='sysname'>ISNULL(s2{0}.name, N'')</property>			
			<property name='XmlDocumentConstraint' type='int' report_type='XmlDocumentConstraint'>ISNULL( (case {0}.is_xml_document when 1 then 2 else 1 end), 0)</property>			
		</version>
        <version min_major='10' cloud_min_major='10'>
            <property name="UserType" type="sysname" access='Read'>CASE WHEN usrt.is_table_type = 1 THEN N'structured' ELSE N'' END</property>
        </version>
    </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<parent_link>
			<link parent="ExtPropMajorID" local="MajorID" />
			<link parent="ExtPropMinorID" local="MinorID" />
			<link parent="ExtPropClass" local="Class" />
		</parent_link>
		<version min_major='8' max_major='8'>
			<property_link table='dbo.sysproperties AS p' />
		</version>
		<version min_major='9' >
			<property_link table='sys.extended_properties AS p' />
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">p.name</property>
		<property name="Value" type='sql_variant' cast='true'>p.value</property>
		<version min_major='8' max_major='8'>
			<property name="MajorID" type="int" hidden='true'>p.id</property>
			<property name="MinorID" type="int" hidden='true'>p.smallid</property>
			<property name="Class" type="int" hidden='true'>p.type</property>
		</version>
		<version min_major='9' >
			<property name="MajorID" type="int" hidden='true'>p.major_id</property>
			<property name="MinorID" type="int" hidden='true'>p.minor_id</property>
			<property name="Class" type="int" hidden='true'>p.class</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='9' >
			<include file ="ExtendedProperty.xml"/>
		</version>
	</settings>
	<properties>
		<version min_major='8' max_major='8'>
			<include file='inc_urn.xml' />
			<property name="Name" type="sysname">p.name</property>
			<property name="Value" type='sql_variant'>p.value</property>
		</version>
	</properties>
</EnumObject>
w<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent="Name" local="ObjName" />
			</parent_link>
		
			<property_link expression_is_for_table_name='true' alias='p'>
				<link_multiple no='2' expression="::fn_listextendedproperty (NULL, {0}, {1}, default, default, default, default)">
					<link_field type='parent' field="ObjectTypeName"/>
					<link_field type='parent' field="ObjectNameFromFilter" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
;<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Schema' local='Owner' />
				<link parent='Name' local='ObjName' />
			</parent_link>
			<request_parent_select>
				<field name='Schema' />
				<field name='Name' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, objname sysname null, name sysname, value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='4' expression=
"if not ({0} is null )
begin
	insert #extprops (owner, objname, name, value) select null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, default, default)
	update #extprops set owner = {0}
end
else
begin
	declare @owner sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {3} ) 
	for read only 
	open crs 
	fetch crs into @owner, @name
	while @@fetch_status &gt;= 0 
	begin 
			insert #extprops (owner, objname, name, value) select null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @name, default, default)
			update #extprops set owner = @owner where owner is null
			fetch crs into @owner, @name
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ObjectSchemaFromFilter" />
					<link_field type='parent' field="ObjectTypeName"/>
					<link_field type='parent' field="ObjectNameFromFilter" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="Owner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
=
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='ObjName'/>
				<link parent='ParentObjName' local='ParentObjName' />
				<link parent='ParentOwner' local='ParentOwner' />
			</parent_link>
			<request_parent_select>
				<field name='ParentOwner' />
				<field name='ParentObjName' />
				<field name='Name' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, parentobjname sysname null, 
						objname sysname null, name sysname , value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='5' expression=
"if not ({0} is null or {2} is null)
begin
	insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, {3}, default)
	update #extprops set owner = {0}, parentobjname = {2}
end
else
begin
	declare @owner sysname
	declare @parentname sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {4} ) 
	for read only 
	open crs 
	fetch crs into @owner, @parentname, @name
	while @@fetch_status &gt;= 0 
	begin 
			insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, {3}, @name)
			update #extprops set owner = @owner, parentobjname = @parentname where owner is null
			fetch crs into @owner, @parentname, @name
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
					<link_field type='parent' field="ParentObjectTypeName"/>
					<link_field type='parent' field="ParentObjectNameFromFilter" />
					<link_field type='parent' field="ObjectTypeName" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ParentOwner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ParentObjName" type="sysname" hidden="true" cast='true'>cast(p.parentobjname as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='ObjName'/>
				<link parent='ParentObjName' local='ParentObjName' />
				<link parent='ParentOwner' local='ParentOwner' />
			</parent_link>
			<request_parent_select>
				<field name='ParentOwner' />
				<field name='ParentObjName' />
				<field name='Name' />
				<field name='IndexKeyType' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, parentobjname sysname  null, 
							objname sysname null, name sysname , value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='5' expression=
"
declare @idx_type sysname
select @idx_type = {3}

if not ({0} is null or {2} is null or @idx_type is null)
begin
	insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, @idx_type, default)
	update #extprops set owner = {0}, parentobjname = {2}
end
else
begin
	declare @owner sysname
	declare @parentname sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {4} ) 
	for read only 
	open crs 
	fetch crs into @owner, @parentname, @name, @idx_type
	while @@fetch_status &gt;= 0 
	begin 
			if 0 = @idx_type 
				insert #extprops (owner, parentobjname, objname, name, value) 
					select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, N'INDEX', @name)
			else
				insert #extprops (owner, parentobjname, objname, name, value) 
					select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, N'CONSTRAINT', @name)
		
			update #extprops set owner = @owner, parentobjname = @parentname where owner is null
			fetch crs into @owner, @parentname, @name, @idx_type
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
					<link_field type='parent' field="ParentObjectTypeName"/>
					<link_field type='parent' field="ParentObjectNameFromFilter" />
					<link_field type='parent' field="ObjectTypeName" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ParentOwner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ParentObjName" type="sysname" hidden="true" cast='true'>cast(p.parentobjname as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' max_major='8'>
	<settings>
	</settings>
	<properties>
		<property name="ParentObjName" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
		<property name="ParentOwner" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Schema" />
			</link_multiple>
		</property>
		<property name="ParentObjectSchemaFromFilter" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectSchemaFromFilter" />
			</link_multiple>
		</property>
		<property name="ParentObjectTypeName" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectTypeName" />
			</link_multiple>
		</property>
		<property name="ParentObjectNameFromFilter" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectNameFromFilter" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' >
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table='::fn_listextendedproperty (NULL, default, default, default, default, default, default) AS p'/>
		</version>
		<version min_major='9' >
			<property_link table='sys.extended_properties AS p'>p.major_id=0 AND p.minor_id=0 AND p.class=0</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">p.name</property>
		<property name="Value" type='sql_variant' cast='true'>p.value</property>
	</properties>
</EnumObject>
k<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#Schema#Owner#' 
					join='sysusers AS s{0}'>s{0}.uid = {0}.uid</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link fields = '#Schema#' 
					join='sys.schemas AS s{0}'>s{0}.schema_id = {0}.schema_id</property_link>
      <property_link fields = '#Owner#'
          left_join='sys.database_principals AS s1{0}'>s1{0}.principal_id = ISNULL({0}.principal_id, (TYPEPROPERTY(QUOTENAME(SCHEMA_NAME({0}.schema_id)) + '.' + QUOTENAME({0}.name), 'OwnerId')))</property_link>
		</version>
	</settings>
	<properties>
		<property name="Name" type="sysname" mode="design">{0}.name</property>
		<property name="Schema" type="sysname" mode="design">s{0}.name</property>
    <version min_major='7' max_major='8'>
      <property name="Owner" type="sysname" mode="design">s{0}.name</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <property name="Owner" type="sysname" mode="design">ISNULL(s1{0}.name, N'')</property>
      <property name="IsSchemaOwned" type="bit" access="Read" cast="true" mode="design">case when {0}.principal_id is null then 1 else 0 end</property>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#TableName#TableSchema#' 
				join = 'dbo.sysobjects AS tbl'>tbl.id = {0}.id</property_link>
		</version>
		<version min_major='9' >
			<property_link fields='#TableName#TableSchema#' 
				join = 'sys.tables AS tbl'>tbl.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="Name" type="sysname">{0}.name</property>
		<property name="TableName" type="sysname">tbl.name</property>
		<version min_major='7' max_major='8'>
			<property name="TableSchema" type="sysname">user_name(tbl.uid)</property>
		</version>
		<version min_major='9' >
			<property name="TableSchema" type="sysname">schema_name(tbl.schema_id)</property>
		</version>
	</properties>
</EnumObject>
n<?xml version="1.0" ?>
<EnumObject min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='9' cloud_min_major='10'>
            <!-- 
            here we have to fetch from both sys.sql_modules and sys.system_sql_modules
            because user objects are stored in the former, and system objects are 
            stored in the latter
            -->
			<property_link 
				fields = '#Recompile#IsEncrypted#Definition#SqlReturnsNullOnNullInput#SqlExecutionContext#SqlExecutionContextPrincipal#'
				left_join='sys.sql_modules AS sm{0}'>sm{0}.object_id = {0}.object_id</property_link>
            <property_link 
				fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.system_sql_modules AS ssm{0}'>ssm{0}.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8' >
			<include file='inc_sql_module.xml' alias='{0}'/>
		</version>
   <version min_major='9' cloud_min_major='10'>
			<property name="AnsiNullsStatus" type="bit" cast='true' mode="design">OBJECTPROPERTYEX({0}.object_id,N'ExecIsAnsiNullsOn')</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">OBJECTPROPERTYEX({0}.object_id,N'ExecIsQuotedIdentOn')</property>
			<property name="IsSchemaBound" type="bit" cast='true' mode="design">OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound')</property>
			<include file='inc_sql_module.xml' alias='sm{0}'/>
			
			<property name="SqlReturnsNullOnNullInput" type="bit" cast='true' hidden='true'>sm{0}.null_on_null_input</property>
			<property name="SqlExecutionContext" type="int" report_type="ExecutionContext" hidden='true'>case isnull(sm{0}.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end</property>
			<property name="SqlExecutionContextDdl" type="int" report_type="ExecutionContext" hidden='true'>case isnull(sm{0}.execute_as_principal_id, -1) when -1 then 1 else 2 end</property>
			<property name="SqlExecutionContextPrincipal" type="sysname" hidden='true'>ISNULL(user_name(sm{0}.execute_as_principal_id),N'')</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='9' >
			<property_link fields='#ClassName#MethodName#AssemblyName#ExecutionContext#ExecutionContextPrincipal#ReturnsNullOnNullInput#' 
						left_join='sys.assembly_modules' alias='am{0}'>am{0}.object_id = {0}.object_id</property_link>
			<property_link fields='#AssemblyName#' 
						left_join='sys.assemblies' alias='asmbl{0}'>asmbl{0}.assembly_id = am{0}.assembly_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='sql_module_link.xml' alias='{0}'/>

		<version min_major='9' >		
			<property name="AssemblyName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else asmbl{0}.name end</property>
			<property name="ClassName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else am{0}.assembly_class end</property>
			<property name="MethodName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else am{0}.assembly_method end</property>

			<property name="ReturnsNullOnNullInput" type="bit" cast='true' mode="design">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else am{0}.null_on_null_input end">
					<link_field type='local' field="SqlReturnsNullOnNullInput" />
				</link_multiple>
			</property>
			<property name="ExecutionContext" type="int" report_type="ExecutionContext" mode="deploy">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else case isnull(am{0}.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end end">
					<link_field type='local' field="SqlExecutionContext" />
				</link_multiple>
			</property>
			<property name="ExecutionContextPrincipal" type="sysname" mode="deploy">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
			<property name="ExecutionContextLogin" type="sysname">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
			<property name="ExecutionContextUser" type="sysname">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
		</version>

    <version cloud_min_major='10' >
      <property name="ReturnsNullOnNullInput" type="bit" cast='true'>
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlReturnsNullOnNullInput" />
        </link_multiple>
      </property>
      <property name="ExecutionContext" type="int" report_type="ExecutionContext">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContext" />
        </link_multiple>
      </property>
      <property name="ExecutionContextPrincipal" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
      <property name="ExecutionContextLogin" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
      <property name="ExecutionContextUser" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
    </version>
    
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#backupset AS btmp' />
		<property_link join='msdb.dbo.backupset AS bkps'>bkps.backup_set_id = btmp.backup_set_id</property_link>
		<version min_major='7' max_major='7'>
			<prefix>
declare @server_name nvarchar(512)
set @server_name = @@SERVERNAME
			</prefix>
		</version>
		<version min_major='8' >
			<prefix>
declare @server_name nvarchar(512)
set @server_name = cast(serverproperty(N'Servername') as nvarchar(512))
			</prefix>
		</version>
		
		<version min_major='7' max_major='8'>
		<prefix>
DECLARE 
  @first_full_backupset_id      INTEGER,
  @first_full_backup_startdate  DATETIME,
	@count_entries					INTEGER,
	@in_restore_plan				BIT,
	@last_backupset_type			CHAR(1),
	@last_backupset_id				INTEGER,
	@last_backupset_family_guid		UNIQUEIDENTIFIER,
	@last_backupset_diff_base_guid	UNIQUEIDENTIFIER,
	@last_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
	@full_backupset_id				INTEGER,
	@full_backupset_start_date		DATETIME,
	@full_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
	
	
	@loop_var						BIT,
	@loop_backup_set_id				INTEGER,
	@loop_start_date				DATETIME,
  @count_unique_fork_guid INTEGER,
	
	@t1_backup_set_id				INTEGER,
	@t1_type						CHAR(1),
	@t1_backup_start_date			DATETIME,
	@t1_first_recovery_fork_guid	UNIQUEIDENTIFIER,
	@t1_last_recovery_fork_guid		UNIQUEIDENTIFIER,
	@t1_first_lsn					NUMERIC(25, 0),
	@t1_last_lsn					NUMERIC(25, 0),
	@t1_checkpoint_lsn				NUMERIC(25, 0),
	@t1_database_backup_lsn			NUMERIC(25, 0),
	@t1_fork_point_lsn				NUMERIC(25, 0),
	@t1_backup_set_uuid				UNIQUEIDENTIFIER,
	@t1_database_guid				UNIQUEIDENTIFIER,
	@t1_diff_base_guid				UNIQUEIDENTIFIER,
	
	@t2_backup_set_id				INTEGER,
	@t2_type						CHAR(1),
	@t2_backup_start_date			DATETIME,
	@t2_first_recovery_fork_guid	UNIQUEIDENTIFIER,
	@t2_last_recovery_fork_guid		UNIQUEIDENTIFIER,
	@t2_first_lsn					NUMERIC(25, 0),
	@t2_last_lsn					NUMERIC(25, 0),
	@t2_checkpoint_lsn				NUMERIC(25, 0),
	@t2_database_backup_lsn			NUMERIC(25, 0),
	@t2_fork_point_lsn				NUMERIC(25, 0),
	@t2_backup_set_uuid				UNIQUEIDENTIFIER,
	@t2_database_guid				UNIQUEIDENTIFIER,
	@t2_diff_base_guid				UNIQUEIDENTIFIER
    

CREATE TABLE #backupset(
	backup_set_id					INTEGER				NOT NULL,
	is_in_restore_plan				BIT					NOT NULL,
	backup_start_date				DATETIME			NOT NULL,
	type						    CHAR(1)				NOT NULL,
	database_name				    NVARCHAR(256)		NOT NULL,
	database_guid				    UNIQUEIDENTIFIER	,
	family_guid						UNIQUEIDENTIFIER	,
	first_recovery_fork_guid		UNIQUEIDENTIFIER	,
	last_recovery_fork_guid			UNIQUEIDENTIFIER	,
	first_lsn					    NUMERIC(25, 0)		,
	last_lsn					    NUMERIC(25, 0)		,
	checkpoint_lsn					NUMERIC(25, 0)		,
	database_backup_lsn				NUMERIC(25, 0)		,
	fork_point_lsn					NUMERIC(25, 0)		,
	restore_till_lsn				NUMERIC(25, 0)		,
	backup_set_uuid					UNIQUEIDENTIFIER	,
	differential_base_guid			UNIQUEIDENTIFIER
)
/**********************************************************************/
/* Identify the first                                                 */
/**********************************************************************/
SELECT @first_full_backupset_id = backupset_outer.backup_set_id
      ,@first_full_backup_startdate = backupset_outer.backup_start_date
  FROM msdb.dbo.backupset backupset_outer
 WHERE backupset_outer.database_name = @db_name
   AND backupset_outer.server_name = @server_name
   AND backupset_outer.type = 'D' -- Full Database Backup   
   AND backupset_outer.backup_start_date = (  SELECT MAX(backupset_inner.backup_start_date)
                                                    FROM msdb.dbo.backupset backupset_inner
                                                   WHERE backupset_inner.database_name = backupset_outer.database_name
													 AND backupset_inner.server_name = @server_name
                                                     AND backupset_inner.type = backupset_outer.type AND 
                                                     backupset_inner.backup_start_date &lt;= @restore_to_datetime)
/*******************************************************************************************/
/* Find the first full database backup needed in the restore plan and store its attributes */
/* in #backupset work table                                                                */ 
/*******************************************************************************************/
INSERT #backupset(
   backup_set_id             
  ,is_in_restore_plan        
  ,backup_start_date         
  ,type                      
  ,database_name
)
SELECT backup_set_id             
      ,1                   --  The full database backup is always needed for the restore plan
      ,backup_start_date         
      ,type                      
      ,database_name
  FROM msdb.dbo.backupset
 WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id
 AND msdb.dbo.backupset.server_name = @server_name

/***************************************************************/
/* Find the log and differential backups that occurred after   */
/* the full backup and store them in #backupset work table     */ 
/***************************************************************/
INSERT #backupset(
   backup_set_id
  ,is_in_restore_plan 
  ,backup_start_date         
  ,type                      
  ,database_name
)
SELECT backup_set_id             
	  ,0
      ,backup_start_date         
      ,type                      
      ,database_name
  FROM msdb.dbo.backupset
 WHERE msdb.dbo.backupset.database_name = @db_name
   AND msdb.dbo.backupset.server_name = @server_name
   AND msdb.dbo.backupset.type IN ('I', 'L')  -- Differential, Log backups
   AND msdb.dbo.backupset.backup_start_date &gt;= @first_full_backup_startdate
   
/**********************************************************************************/
/* identify and mark the backup logs that need to be included in the restore plan */
/**********************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'I'
   AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date)
                                         FROM #backupset backupset_inner
                                        WHERE backupset_inner.type = #backupset.type
                                        AND backupset_inner.backup_start_date &lt;= @restore_to_datetime)
  
/**************************************************************************************/
/* Log backups that occurred after the different are always part of the restore plan. */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date &lt;= @restore_to_datetime
   AND #backupset.backup_start_date &gt;= (SELECT backupset_inner.backup_start_date
                                          FROM #backupset backupset_inner
                                         WHERE backupset_inner.type = 'I'
                                           AND backupset_inner.is_in_restore_plan = 1)
                                           
/**************************************************************************************/
/* If @restore_to_datetime is greater than the last startdate of the last log backup, */
/* include the next log backup in the restore plan                                    */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date)
                                         FROM #backupset backupset_inner
                                        WHERE backupset_inner.type = 'L'
                                          AND backupset_inner.backup_start_date > @restore_to_datetime
                                          AND backupset_inner.is_in_restore_plan = 0)
                                           
/**************************************************************************************/
/* If there are no differential backups, all log backups that occurred after the full */
/* backup are needed in the restore plan.                                             */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date &lt;= @restore_to_datetime
   AND NOT EXISTS(SELECT *
                    FROM #backupset backupset_inner
                   WHERE backupset_inner.type = 'I')
		</prefix>
		</version>

		<version min_major='9' >
		<prefix>
DECLARE 
  @first_full_backupset_id      INTEGER,
  @first_full_backup_startdate  DATETIME,
	@count_entries					INTEGER,
	@in_restore_plan				BIT,
	@last_backupset_type			CHAR(1),
	@last_backupset_id				INTEGER,
	@last_backupset_family_guid		UNIQUEIDENTIFIER,
	@last_backupset_diff_base_guid	UNIQUEIDENTIFIER,
	@last_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
	@full_backupset_id				INTEGER,
	@full_backupset_start_date		DATETIME,
	@full_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
	
	
	@loop_var						BIT,
	@loop_backup_set_id				INTEGER,
	@loop_start_date				DATETIME,
  @count_unique_fork_guid INTEGER,
	
	@t1_backup_set_id				INTEGER,
	@t1_type						CHAR(1),
	@t1_backup_start_date			DATETIME,
	@t1_first_recovery_fork_guid	UNIQUEIDENTIFIER,
	@t1_last_recovery_fork_guid		UNIQUEIDENTIFIER,
	@t1_first_lsn					NUMERIC(25, 0),
	@t1_last_lsn					NUMERIC(25, 0),
	@t1_checkpoint_lsn				NUMERIC(25, 0),
	@t1_database_backup_lsn			NUMERIC(25, 0),
	@t1_fork_point_lsn				NUMERIC(25, 0),
	@t1_backup_set_uuid				UNIQUEIDENTIFIER,
	@t1_database_guid				UNIQUEIDENTIFIER,
	@t1_diff_base_guid				UNIQUEIDENTIFIER,
	
	@t2_backup_set_id				INTEGER,
	@t2_type						CHAR(1),
	@t2_backup_start_date			DATETIME,
	@t2_first_recovery_fork_guid	UNIQUEIDENTIFIER,
	@t2_last_recovery_fork_guid		UNIQUEIDENTIFIER,
	@t2_first_lsn					NUMERIC(25, 0),
	@t2_last_lsn					NUMERIC(25, 0),
	@t2_checkpoint_lsn				NUMERIC(25, 0),
	@t2_database_backup_lsn			NUMERIC(25, 0),
	@t2_fork_point_lsn				NUMERIC(25, 0),
	@t2_backup_set_uuid				UNIQUEIDENTIFIER,
	@t2_database_guid				UNIQUEIDENTIFIER,
	@t2_diff_base_guid				UNIQUEIDENTIFIER
    

CREATE TABLE #backupset(
	backup_set_id					INTEGER				NOT NULL,
	is_in_restore_plan				BIT					NOT NULL,
	backup_start_date				DATETIME			NOT NULL,
	type						    CHAR(1)				NOT NULL,
	database_name				    NVARCHAR(256)		NOT NULL,
	database_guid				    UNIQUEIDENTIFIER	,
	family_guid						UNIQUEIDENTIFIER	,
	first_recovery_fork_guid		UNIQUEIDENTIFIER	,
	last_recovery_fork_guid			UNIQUEIDENTIFIER	,
	first_lsn					    NUMERIC(25, 0)		,
	last_lsn					    NUMERIC(25, 0)		,
	checkpoint_lsn					NUMERIC(25, 0)		,
	database_backup_lsn				NUMERIC(25, 0)		,
	fork_point_lsn					NUMERIC(25, 0)		,
	restore_till_lsn				NUMERIC(25, 0)		,
	backup_set_uuid					UNIQUEIDENTIFIER	,
	differential_base_guid			UNIQUEIDENTIFIER
)
/**********************************************************************/
/* Identify the first                                                 */
/**********************************************************************/
SELECT @first_full_backupset_id = backupset_outer.backup_set_id
      ,@first_full_backup_startdate = backupset_outer.backup_start_date
  FROM msdb.dbo.backupset backupset_outer
 WHERE backupset_outer.database_name = @db_name
   AND backupset_outer.server_name = @server_name
   AND backupset_outer.type = 'D' -- Full Database Backup   
   AND backupset_outer.backup_start_date = (  SELECT MAX(backupset_inner.backup_start_date)
                                                    FROM msdb.dbo.backupset backupset_inner
                                                   WHERE backupset_inner.database_name = backupset_outer.database_name
													 AND backupset_inner.server_name = @server_name
                                                     AND backupset_inner.type = backupset_outer.type 
                                                     AND backupset_inner.backup_start_date &lt;= @restore_to_datetime
                                                     AND backupset_inner.is_copy_only = 0 )
   AND backupset_outer.is_copy_only = 0
/*******************************************************************************************/
/* Find the first full database backup needed in the restore plan and store its attributes */
/* in #backupset work table                                                                */ 
/*******************************************************************************************/
INSERT #backupset(
   backup_set_id             
  ,is_in_restore_plan        
  ,backup_start_date         
  ,type                      
  ,database_name
  ,last_recovery_fork_guid
)
SELECT backup_set_id             
      ,1                   --  The full database backup is always needed for the restore plan
      ,backup_start_date         
      ,type                      
      ,database_name
      ,last_recovery_fork_guid
  FROM msdb.dbo.backupset
 WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id
 AND msdb.dbo.backupset.server_name = @server_name

/***************************************************************/
/* Find the log and differential backups that occurred after   */
/* the full backup and store them in #backupset work table     */ 
/***************************************************************/
INSERT #backupset(
   backup_set_id
  ,is_in_restore_plan 
  ,backup_start_date         
  ,type                      
  ,database_name
  ,last_recovery_fork_guid
)
SELECT backup_set_id             
	  ,0
      ,backup_start_date         
      ,type                      
      ,database_name
      ,last_recovery_fork_guid
  FROM msdb.dbo.backupset
 WHERE msdb.dbo.backupset.database_name = @db_name
   AND msdb.dbo.backupset.server_name = @server_name
   AND msdb.dbo.backupset.type IN ('I', 'L')  -- Differential, Log backups
   AND msdb.dbo.backupset.backup_start_date &gt;= @first_full_backup_startdate
   
/**********************************************************************************/
/* identify and mark the backup logs that need to be included in the restore plan */
/**********************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'I'
   AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date)
                                         FROM #backupset backupset_inner
                                        WHERE backupset_inner.type = #backupset.type
                                        AND backupset_inner.backup_start_date &lt;= @restore_to_datetime)
  
/**************************************************************************************/
/* Log backups that occurred after the different are always part of the restore plan. */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date &lt;= @restore_to_datetime
   AND #backupset.backup_start_date &gt;= (SELECT backupset_inner.backup_start_date
                                          FROM #backupset backupset_inner
                                         WHERE backupset_inner.type = 'I'
                                           AND backupset_inner.is_in_restore_plan = 1)
                                           
/**************************************************************************************/
/* If @restore_to_datetime is greater than the last startdate of the last log backup, */
/* include the next log backup in the restore plan                                    */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date)
                                         FROM #backupset backupset_inner
                                        WHERE backupset_inner.type = 'L'
                                          AND backupset_inner.backup_start_date > @restore_to_datetime
                                          AND backupset_inner.is_in_restore_plan = 0)
                                           
/**************************************************************************************/
/* If there are no differential backups, all log backups that occurred after the full */
/* backup are needed in the restore plan.                                             */
/**************************************************************************************/
UPDATE #backupset  
   SET is_in_restore_plan = 1
 WHERE #backupset.type = 'L'
   AND #backupset.backup_start_date &lt;= @restore_to_datetime
   AND NOT EXISTS(SELECT *
                    FROM #backupset backupset_inner
                   WHERE backupset_inner.type = 'I')
                   
    </prefix>
    </version>                   

  <version min_major='9' >
    <prefix>

/**************************************************************************************/
/* The above plan is based on backup_start_date which fails in case when the DB is    */
/* restored to a previous state i.e forked. In which case we need to base it on lsn   */
/* numbers. This forking condition can be checked by matching the                     */
/* last_recovery_fork_guid of the backupset if it doesn't match, we need to change    */
/* the plan.                                                                          */
/**************************************************************************************/

SELECT @count_unique_fork_guid = COUNT( DISTINCT last_recovery_fork_guid )
  FROM #backupset

IF @count_unique_fork_guid &gt; 1
BEGIN

DELETE 
FROM #backupset
/**************************************************************************************/
/* First we look for a T-Log backup taken after the given point-in-time to get the    */
/* tail log, that can be used to restore to the exact point-in-time.                  */
/**************************************************************************************/

INSERT #backupset(
	backup_set_id,
	is_in_restore_plan,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid
)
SELECT TOP(1)
	backup_set_id,
	1,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid
                 
  FROM msdb.dbo.backupset
 WHERE msdb.dbo.backupset.database_name = @db_name
   AND msdb.dbo.backupset.type IN ('D', 'L')
   AND msdb.dbo.backupset.backup_start_date &gt;= @restore_to_datetime
 ORDER BY msdb.dbo.backupset.backup_start_date ASC,
		  msdb.dbo.backupset.last_lsn ASC                                          
                                              
SELECT @last_backupset_type = bset.type
  FROM #backupset as bset
 
IF @last_backupset_type = 'D' --Full
BEGIN 
	DELETE FROM #backupset
END

/**********************************************************************/
/* If no T-Log backup exits for after the time T, get the last backup */
/**********************************************************************/                                          

SELECT @count_entries = COUNT(bset.backup_set_id)
  FROM #backupset as bset

IF @count_entries &lt; 1
BEGIN

	INSERT #backupset(
		backup_set_id,
		is_in_restore_plan,
		backup_start_date,
		type,
		database_name,
		database_guid,
		family_guid,
		first_recovery_fork_guid,
		last_recovery_fork_guid,
		first_lsn,
		last_lsn,
		checkpoint_lsn,
		database_backup_lsn,
		fork_point_lsn,
		backup_set_uuid,
		differential_base_guid
)
	SELECT TOP(1)
		backup_set_id,
		1,
		backup_start_date,
		type,
		database_name,
		database_guid,
		family_guid,
		first_recovery_fork_guid,
		last_recovery_fork_guid,
		first_lsn,
		last_lsn,
		checkpoint_lsn,
		database_backup_lsn,
		fork_point_lsn,
		backup_set_uuid,
		differential_base_guid

	 FROM msdb.dbo.backupset
	WHERE msdb.dbo.backupset.database_name = @db_name
	  AND msdb.dbo.backupset.backup_start_date &lt;= @restore_to_datetime
 ORDER BY msdb.dbo.backupset.backup_start_date DESC,
	      msdb.dbo.backupset.last_lsn DESC 
	      
END

SELECT @last_backupset_type = bset.type,
	   @last_backupset_id = bset.backup_set_id,
	   @last_backupset_family_guid = bset.family_guid,
	   @last_backupset_diff_base_guid = bset.differential_base_guid,
	   @last_backupset_recovery_fork_guid = bset.last_recovery_fork_guid	   
  FROM #backupset as bset
  
/**************************************************************************************/
/* If the selected backup is Full ('D') return.                                       */
/**************************************************************************************/

IF (@last_backupset_type = 'D')
BEGIN
	GOTO done
END 

/**************************************************************************************/
/* If the selected backup is Differential('I'),select the Diff-base backup(Full) also */
/**************************************************************************************/
IF (@last_backupset_type = 'I')
BEGIN
	
	INSERT #backupset(
			backup_set_id,
			is_in_restore_plan,
			backup_start_date,
			type,
			database_name,
			database_guid,
			family_guid,
			first_recovery_fork_guid,
			last_recovery_fork_guid,
			first_lsn,
			last_lsn,
			checkpoint_lsn,
			database_backup_lsn,
			fork_point_lsn,
			backup_set_uuid,
			differential_base_guid
		)
		SELECT TOP(1)
			backup_set_id,
			1,
			backup_start_date,
			type,
			database_name,
			database_guid,
			family_guid,
			first_recovery_fork_guid,
			last_recovery_fork_guid,
			first_lsn,
			last_lsn,
			checkpoint_lsn,
			database_backup_lsn,
			fork_point_lsn,
			backup_set_uuid,
			differential_base_guid

		 FROM msdb.dbo.backupset
		WHERE msdb.dbo.backupset.backup_set_uuid = @last_backupset_diff_base_guid
		  AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid
	
	GOTO done
END

SELECT @t1_type = bset.type,
	   @t1_backup_set_id = bset.backup_set_id,
	   @t1_backup_set_uuid = bset.backup_set_uuid,
	   @t1_backup_start_date = bset.backup_start_date,
	   @t1_diff_base_guid = bset.differential_base_guid,
	   @t1_last_recovery_fork_guid = bset.last_recovery_fork_guid,
	   @t1_first_recovery_fork_guid = bset.first_recovery_fork_guid,
	   @t1_database_guid = bset.database_guid,
	   @t1_first_lsn = bset.first_lsn,
	   @t1_last_lsn = bset.last_lsn,
	   @t1_checkpoint_lsn = bset.checkpoint_lsn,
	   @t1_database_backup_lsn = bset.database_backup_lsn,
	   @t1_fork_point_lsn = bset.fork_point_lsn	   
 FROM #backupset as bset

SET @loop_backup_set_id = @t1_backup_set_id
SET @loop_start_date = @t1_backup_start_date

/**************************************************************************************/
/* This Loop iterates thru the backup with the same family_guid in reverse order and  */
/* constructs the T-Log chain, until it finds the compatible Diff or Backup           */
/**************************************************************************************/
SET @loop_var = 1  
WHILE ( @loop_var = 1 )
BEGIN
	
	SELECT TOP(1)
		@t2_backup_set_id = backup_set_id,
		@t2_backup_set_uuid = backup_set_uuid,
		@t2_backup_start_date =	backup_start_date,
		@t2_type = type,
		@t2_first_recovery_fork_guid = first_recovery_fork_guid,
		@t2_last_recovery_fork_guid= last_recovery_fork_guid,
		@t2_database_guid = database_guid,
		@t2_first_lsn = first_lsn,
		@t2_last_lsn = last_lsn,
		@t2_checkpoint_lsn = checkpoint_lsn,
		@t2_database_backup_lsn = database_backup_lsn,
		@t2_fork_point_lsn= fork_point_lsn,
		@t2_diff_base_guid = differential_base_guid		

	 FROM msdb.dbo.backupset
	WHERE msdb.dbo.backupset.family_guid = @last_backupset_family_guid
	  AND msdb.dbo.backupset.backup_start_date &lt;= @loop_start_date
	  AND msdb.dbo.backupset.backup_set_id &lt; @loop_backup_set_id
 ORDER BY msdb.dbo.backupset.backup_start_date DESC,
	      msdb.dbo.backupset.last_lsn DESC, 
	      msdb.dbo.backupset.backup_set_id DESC 
	      
	IF( @t2_backup_set_id IS NULL OR @t2_backup_set_id = @loop_backup_set_id) 
	BEGIN
		GOTO done
	END 
	
	IF( @t1_fork_point_lsn IS NULL )
	BEGIN
	
		IF (@t2_type = 'D' AND @t2_database_guid = @t1_database_guid AND @t2_first_lsn = @t1_first_lsn AND  @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid )
		BEGIN
			GOTO AddFullBackup
		END
		
		IF (@t2_type = 'I' AND @t2_database_guid = @t1_database_guid AND  @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid )
		BEGIN 
			GOTO AddDiffBackup
		END		
		
		IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn)
		BEGIN
			INSERT #backupset(
				backup_set_id,
				is_in_restore_plan,
				backup_start_date,
				type,
				database_name,
				database_guid,
				family_guid,
				first_recovery_fork_guid,
				last_recovery_fork_guid,
				first_lsn,
				last_lsn,
				checkpoint_lsn,
				database_backup_lsn,
				fork_point_lsn,
				backup_set_uuid,
				differential_base_guid
			)
			SELECT TOP(1)
				backup_set_id,
				1,
				backup_start_date,
				type,
				database_name,
				database_guid,
				family_guid,
				first_recovery_fork_guid,
				last_recovery_fork_guid,
				first_lsn,
				last_lsn,
				checkpoint_lsn,
				database_backup_lsn,
				fork_point_lsn,
				backup_set_uuid,
				differential_base_guid

			 FROM msdb.dbo.backupset
			WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id	
			 
			SET	@t1_type = @t2_type
			SET	@t1_backup_set_id = @t2_backup_set_id
			SET	@t1_backup_set_uuid = @t2_backup_set_uuid
			SET	@t1_backup_start_date = @t2_backup_start_date
			SET	@t1_diff_base_guid = @t2_diff_base_guid
			SET	@t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid
			SET	@t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid
			SET	@t1_database_guid = @t2_database_guid
			SET	@t1_first_lsn = @t2_first_lsn
			SET	@t1_last_lsn = @t2_last_lsn
			SET	@t1_checkpoint_lsn = @t2_checkpoint_lsn
			SET	@t1_database_backup_lsn = @t2_database_backup_lsn
			SET	@t1_fork_point_lsn = @t2_fork_point_lsn	   
			
		END
	
	END
	ELSE
	BEGIN

		IF (@t2_type = 'D' AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn &lt;= @t1_fork_point_lsn) 
				 OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn &gt; @t1_fork_point_lsn AND @t2_last_lsn &lt; @t1_last_lsn))
		BEGIN
			GOTO AddFullBackup
		END
		
		IF (@t2_type = 'I' 
			AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn &lt;= @t1_fork_point_lsn) 
				 OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn &gt; @t1_fork_point_lsn AND @t2_last_lsn &lt; @t1_last_lsn))
		BEGIN
			GOTO AddDiffBackup
		END
		
		IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn)
		BEGIN
			INSERT #backupset(
				backup_set_id,
				is_in_restore_plan,
				backup_start_date,
				type,
				database_name,
				database_guid,
				family_guid,
				first_recovery_fork_guid,
				last_recovery_fork_guid,
				first_lsn,
				last_lsn,
				checkpoint_lsn,
				database_backup_lsn,
				fork_point_lsn,
				backup_set_uuid,
				differential_base_guid
			)
			SELECT TOP(1)
				backup_set_id,
				1,
				backup_start_date,
				type,
				database_name,
				database_guid,
				family_guid,
				first_recovery_fork_guid,
				last_recovery_fork_guid,
				first_lsn,
				last_lsn,
				checkpoint_lsn,
				database_backup_lsn,
				fork_point_lsn,
				backup_set_uuid,
				differential_base_guid

			 FROM msdb.dbo.backupset
			WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id	
			
			SET	@t1_type = @t2_type
			SET	@t1_backup_set_id = @t2_backup_set_id
			SET	@t1_backup_set_uuid = @t2_backup_set_uuid
			SET	@t1_backup_start_date = @t2_backup_start_date
			SET	@t1_diff_base_guid = @t2_diff_base_guid
			SET	@t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid
			SET	@t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid
			SET	@t1_database_guid = @t2_database_guid
			SET	@t1_first_lsn = @t2_first_lsn
			SET	@t1_last_lsn = @t2_last_lsn
			SET	@t1_checkpoint_lsn = @t2_checkpoint_lsn
			SET	@t1_database_backup_lsn = @t2_database_backup_lsn
			SET	@t1_fork_point_lsn = @t2_fork_point_lsn	   
			
		END
	END
	
	SET @loop_backup_set_id = @t2_backup_set_id
	SET @loop_start_date = @t2_backup_start_date
	
END

AddFullBackup:
INSERT #backupset(
	backup_set_id,
	is_in_restore_plan,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid
)
SELECT TOP(1)
	backup_set_id,
	1,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid

 FROM msdb.dbo.backupset
WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id	
GOTO done

AddDiffBackup:	
INSERT #backupset(
	backup_set_id,
	is_in_restore_plan,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid
)
SELECT TOP(1)
	backup_set_id,
	1,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid

 FROM msdb.dbo.backupset
WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id

INSERT #backupset(
	backup_set_id,
	is_in_restore_plan,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid
)
SELECT TOP(1)
	backup_set_id,
	1,
	backup_start_date,
	type,
	database_name,
	database_guid,
	family_guid,
	first_recovery_fork_guid,
	last_recovery_fork_guid,
	first_lsn,
	last_lsn,
	checkpoint_lsn,
	database_backup_lsn,
	fork_point_lsn,
	backup_set_uuid,
	differential_base_guid

 FROM msdb.dbo.backupset
WHERE msdb.dbo.backupset.backup_set_uuid = @t2_diff_base_guid
  AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid


done:

SELECT @count_entries = COUNT( bset.backup_set_id )
  FROM #backupset AS bset
 WHERE bset.type = 'D'

/**************************************************************************************/
/* If the backupset info in the msdb is incomplete then the restore_plan may be       */
/* broken. In those cases just don't return anything.                                 */
/**************************************************************************************/

IF @count_entries &lt; 1
BEGIN
  DELETE 
  FROM #backupset
END 


END           
            
    </prefix>
  </version>

		

		<postfix>
			drop table #backupset
		</postfix>
	</settings>
	<properties>
		<property name='Name' type='nvarchar' size='128'>bkps.name</property>
		<property name='ID' type='int'>bkps.backup_set_id</property>
		<property name='IsInRestorePlan' type='int'>btmp.is_in_restore_plan</property>
		<property name='BackupSetUuid' type='uniqueidentifier'>bkps.backup_set_uuid</property>
		<property name='MediaSetId' type='int'>bkps.media_set_id</property>
		<property name='FirstFamilyNumber' type='tinyint'>bkps.first_family_number</property>
		<property name='FirstMediaNumber' type='smallint'>bkps.first_media_number</property>
		<property name='LastFamilyNumber' type='tinyint'>bkps.last_family_number</property>
		<property name='LastMediaNumber' type='smallint'>bkps.last_media_number</property>
		<property name='CatalogFamilyNumber' type='tinyint'>bkps.catalog_family_number</property>
		<property name='CatalogMediaNumber' type='smallint'>bkps.catalog_media_number</property>
		<property name='Position' type='int'>bkps.position</property>
		<property name='ExpirationDate' type='datetime'>bkps.expiration_date</property>
		<property name='SoftwareVendorId' type='int'>bkps.software_vendor_id</property>
		<property name='Description' type='nvarchar' size='255'>bkps.description</property>
		<property name='UserName' type='nvarchar' size='128'>bkps.user_name</property>
		<property name='SoftwareMajorVersion' type='tinyint'>bkps.software_major_version</property>
		<property name='SoftwareMinorVersion' type='tinyint'>bkps.software_minor_version</property>
		<property name='SoftwareBuildVersion' type='smallint'>bkps.software_build_version</property>
		<property name='TimeZone' type='smallint'>bkps.time_zone</property>
		<property name='MtfMinorVersion' type='tinyint'>bkps.mtf_minor_version</property>
		<property name='FirstLsn' type='numeric' size='13'>bkps.first_lsn</property>
		<property name='LastLsn' type='numeric' size='13'>bkps.last_lsn</property>
		<property name='CheckpointLsn' type='numeric' size='13'>bkps.checkpoint_lsn</property>
		<property name='DatabaseBackupLsn' type='numeric' size='13'>bkps.database_backup_lsn</property>
		<property name='DatabaseCreationDate' type='datetime'>bkps.database_creation_date</property>
		<property name='BackupStartDate' type='datetime'>bkps.backup_start_date</property>
		<property name='BackupFinishDate' type='datetime'>bkps.backup_finish_date</property>
		<property name='Type' type='char' size='1'>bkps.type</property>
		<property name='SortOrder' type='smallint'>bkps.sort_order</property>
		<property name='CodePage' type='smallint'>bkps.code_page</property>
		<property name='CompatibilityLevel' type='tinyint'>bkps.compatibility_level</property>
		<property name='DatabaseVersion' type='int'>bkps.database_version</property>
		<property name='BackupSize' type='numeric' size='13'>bkps.backup_size</property>
		<property name='DatabaseName' type='nvarchar' size='128'>bkps.database_name</property>
		<property name='ServerName' type='nvarchar' size='128'>bkps.server_name</property>
		<property name='MachineName' type='nvarchar' size='128'>bkps.machine_name</property>
		<version min_major='8' >
			<property name='Flags' type='int'>bkps.flags</property>
			<property name='UnicodeLocale' type='int'>bkps.unicode_locale</property>
			<property name='UnicodeCompareStyle' type='int'>bkps.unicode_compare_style</property>
			<property name='CollationName' type='nvarchar' size='128'>bkps.collation_name</property>
		</version>
        <version min_major='9' >
            <property name='IsCopyOnly' type='bit'>bkps.is_copy_only</property>
        </version>        
	</properties>
</EnumObject>l<?xml version="1.0" ?>
<EnumObject type="AlertNotification" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='Name' local='AlertName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#alert_notification_tmp ant" />
		<prefix>
			<link_multiple no='1' expression="
create table #alert_notification_tmp(AlertName sysname default '', OperatorId int, OperatorName sysname, UseEmail bit, UsePager bit, UseNetSend bit, HasEmail bit, HasPager bit, HasNetSend bit)
declare @AlertName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @AlertName
while @@fetch_status &gt;= 0 
begin 
		insert #alert_notification_tmp (OperatorId,OperatorName,UseEmail,UsePager,UseNetSend,HasEmail,HasPager,HasNetSend) exec msdb.dbo.sp_help_notification 'OPERATORS', @AlertName, 'ACTUAL', 7
		update #alert_notification_tmp set AlertName=@AlertName where AlertName = ''
		fetch crs into @AlertName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #alert_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="OperatorId" type="int">ant.OperatorId</property>
		<property name="OperatorName" type="sysname">ant.OperatorName</property>
		<property name="UseEmail" type="bit">ant.UseEmail</property>
		<property name="UsePager" type="bit">ant.UsePager</property>
		<property name="UseNetSend" type="bit">ant.UseNetSend</property>				
		<property name="HasEmail" type="bit">ant.HasEmail</property>
		<property name="HasPager" type="bit">ant.HasPager</property>
		<property name="HasNetSend" type="bit">ant.HasNetSend</property>				
		<property name="AlertName" type="sysname" hidden='true'>ant.AlertName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OperatorNotification" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='Name' local='OperatorName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#operator_notification_tmp ont" />
		<prefix>
			<link_multiple no='1' expression="
create table #operator_notification_tmp(OperatorName sysname default '', AlertId int, AlertName sysname, UseEmail bit, UsePager bit, UseNetSend bit, HasEmail bit, HasPager bit, HasNetSend bit)
declare @OperatorName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @OperatorName
while @@fetch_status &gt;= 0 
begin 
		insert #operator_notification_tmp (AlertId,AlertName,UseEmail,UsePager,UseNetSend,HasEmail,HasPager,HasNetSend) exec msdb.dbo.sp_help_notification 'ALERTS', @OperatorName, 'ACTUAL', 7
		update #operator_notification_tmp set OperatorName=@OperatorName where OperatorName = ''
		fetch crs into @OperatorName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #operator_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="AlertId" type="int">ont.AlertId</property>
		<property name="AlertName" type="sysname">ont.AlertName</property>
		<property name="UseEmail" type="bit">ont.UseEmail</property>
		<property name="UsePager" type="bit">ont.UsePager</property>
		<property name="UseNetSend" type="bit">ont.UseNetSend</property>				
		<property name="HasEmail" type="bit">ont.HasEmail</property>
		<property name="HasPager" type="bit">ont.HasPager</property>
		<property name="HasNetSend" type="bit">ont.HasNetSend</property>				
		<property name="OperatorName" type="sysname" hidden='true'>ont.OperatorName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OperatorJobNotification" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='Name' local='OperatorName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#operator_job_notification_tmp ont" />
		<prefix>
			<link_multiple no='1' expression="
create table #operator_job_notification_tmp(OperatorName sysname default '', JobId uniqueidentifier, JobName sysname, NotifyLevelEmail int, NotifyLevelNetSend int, NotifyLevelPage int)
declare @OperatorName sysname

declare crs cursor local fast_forward
	for ( {0} ) 

open crs 
fetch crs into @OperatorName
while @@fetch_status &gt;= 0 
begin 
		insert #operator_job_notification_tmp (JobId,JobName,NotifyLevelEmail,NotifyLevelNetSend,NotifyLevelPage) exec msdb.dbo.sp_help_operator_jobs @operator_name = @OperatorName
		update #operator_job_notification_tmp set OperatorName=@OperatorName where OperatorName = ''
		fetch crs into @OperatorName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #operator_job_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="JobId" type="uniqueidentifier">ont.JobId</property>
		<property name="JobName" type="sysname">ont.JobName</property>
		<property name="NotifyLevelEmail" type="int">ont.NotifyLevelEmail</property>
		<property name="NotifyLevelNetSend" type="int">ont.NotifyLevelNetSend</property>
		<property name="NotifyLevelPage" type="int">ont.NotifyLevelPage</property>				
		<property name="OperatorName" type="sysname" hidden='true'>ont.OperatorName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SqlAssembly" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table='sys.assemblies AS asmbl' />
		<property_link fields='#Owner#' join='sys.database_principals AS princip'>princip.principal_id = asmbl.principal_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">asmbl.name</property>
		<property name="ID" type="int" access='Read'>asmbl.assembly_id</property>
		<property name="CreateDate" type="datetime" access='Read'>asmbl.create_date</property>
		<property name="Culture" type="nvarchar" size='30' access='Read' cast='true'>ISNULL(ASSEMBLYPROPERTY(asmbl.assembly_id, N'CultureInfo'), N'')</property>
		<property name="AssemblySecurityLevel" type="int" report_type="AssemblySecurityLevel">asmbl.permission_set</property>
		<property name="Owner" type="sysname">princip.name</property>
		<property name="IsVisible" type="bit">asmbl.is_visible</property>
		<property name="PublicKey" type="varbinary" size='8000' cast='true'>ISNULL(ASSEMBLYPROPERTY(asmbl.name, N'PublicKey'), CONVERT(varbinary(8000), N''))</property>
		<property name="VersionMajor" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionMajor')</property>
		<property name="VersionMinor" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionMinor')</property>
		<property name="VersionBuild" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionBuild')</property>
		<property name="VersionRevision" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionRevision')</property>
		<property name="IsSystemObject" type="bit" access="Read" cast='true'>case when asmbl.assembly_id &lt; 65536 then 1 else 0 end</property>
		<!-- extended properties support --> 
		<property name="ExtPropClass" type="int" hidden='true'>5</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SqlAssemblyFile" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.assembly_files AS afiles' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="ParentID" type="int" hidden="true">afiles.assembly_id</property>			
		<property name="Name" type="nvarchar" size='260'>afiles.name</property>
		<property name="ID" type="int" access='Read'>afiles.file_id</property>
		<property name="FileBytes" type="image" access='Read' expensive='true'>afiles.content</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedType" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table='sys.assembly_types AS atypes' />
		<property_link join='sys.assemblies AS asmbl'>(asmbl.assembly_id = atypes.assembly_id) and (atypes.is_user_defined = 1)</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include file='inc_type_reference.xml' alias='atypes' />

		<property name="ID" type="int" access='Read'>atypes.user_type_id</property>
		<property name="MaxLength" type="int" access='Read' cast='true'>atypes.max_length</property>
		<property name="Collation" type="sysname" access='Read'>ISNULL(atypes.collation_name,N'')</property>
		<property name="NumericPrecision" type="int" access='Read' cast='true'>atypes.precision</property>
		<property name="NumericScale" type="int" access='Read' cast='true'>atypes.scale</property>
		<property name="IsNullable" type="bit" cast = 'true' access='Read'>atypes.is_nullable</property>

		<property name="AssemblyName" type="sysname">asmbl.name</property>
		
		<property name="ClassName" type="sysname">ISNULL(atypes.assembly_class,N'')</property>
		<property name="IsBinaryOrdered" type="bit" access='Read'>atypes.is_binary_ordered</property>
		<property name="IsFixedLength" type="bit" access='Read'>atypes.is_fixed_length</property>
		<property name="IsComVisible" type="bit" cast = 'true' access='Read'>0</property>
		<property name="BinaryTypeIdentifier" type="varbinary" access='Read' cast='true'>0x0</property>
		<property name="UserDefinedTypeFormat" type="tinyint" access='Read' report_type="UserDefinedTypeFormat" cast='true'>0</property>

		<!-- extended properties support --> 
		<property name="ExtPropClass" type="int" hidden='true'>6</property>
	       <property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregate" impl_type="SqlObject" min_major='9'>
	<settings>
		<property_link table="sys.objects AS obj">obj.type=N'AF'</property_link>
		<property_link fields='#ClassName#AssemblyName#' table="sys.assembly_modules AS am">am.object_id = obj.object_id</property_link>
		<property_link fields='#AssemblyName#' left_join='sys.assemblies AS asmbl'>asmbl.assembly_id = am.assembly_id</property_link>
		<property_link fields='#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#XmlSchemaNamespaceSchema#XmlDocumentConstraint#UserType#'
				left_join='sys.all_parameters AS ret_param'>ret_param.object_id = obj.object_id and ret_param.is_output = 1</property_link>
	</settings>
	<properties>
        <include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#'/>
        <include file='inc_type.xml' alias='ret_param' />
    <version min_major='9'>
        <property name="AssemblyName" type="sysname">asmbl.name</property>
        <property name="ClassName" type="sysname">am.assembly_class</property>
    </version>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregateParameter" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.parameters AS par' >par.is_output = 0</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">par.name</property>
		<property name="ID" type="int" access='Read'>par.parameter_id</property>
		<property name="ParentID" type="int" hidden="true">par.object_id</property>
		<version min_major='10'>
			<property name="IsReadOnly" type="bit">par.is_readonly</property>
		</version>
		<include file='inc_type.xml' alias='par'/>
		
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>2</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>par.object_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>par.parameter_id</property>
	</properties>
</EnumObject>

<?xml version="1.0"?>
<EnumObject type="FullTextService" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major = '7' max_major = '9'>
			<prefix fields="#DefaultPath#"> 
				DECLARE @FullTextDefaultPath NVARCHAR(512)
				EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
													N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',
													N'FullTextDefaultPath',
													@FullTextDefaultPath OUTPUT
			</prefix>
		</version>
        <version min_major = '10' >
            <prefix fields="#DefaultPath#">
                DECLARE @FullTextDefaultPath NVARCHAR(512)
                EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
                                                    N'SOFTWARE\Microsoft\MSSQLServer\Setup',
                                                    N'FullTextDefaultPath',
                                                    @FullTextDefaultPath OUTPUT
            </prefix>
        </version>
	</settings>
	<properties>
		<include file='inc_urn.xml'/>
		<version min_major = '7' max_major = '7'>
			<property name="Name" type="sysname">@@SERVERNAME</property>
		</version>
		<version min_major = '8'>
			<property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
		</version>


		<version min_major='7' >
			<property name="ResourceUsage" type="int" report_type="ResourceUsage">ISNULL(FULLTEXTSERVICEPROPERTY('ResourceUsage'), 0)</property>
			<property name="DefaultPath" type="nvarchar" size="512" access="Read">ISNULL(@FullTextDefaultPath, N'')</property>
		</version>

		<version min_major='7' >
			<property name="ConnectTimeout" type="int" report_type2='System.TimeSpan'>ISNULL(FULLTEXTSERVICEPROPERTY('ConnectTimeout'),0) * 10000000</property>
		</version>
		
		<version min_major='8' max_major='8'>
			<property name="DataTimeout" type="int" report_type2='System.TimeSpan'>ISNULL(FULLTEXTSERVICEPROPERTY('DataTimeout'),0) * 10000000</property>
		</version>
		
		<version min_major='9' >
			<property name="DataTimeout" type="int" report_type2='System.TimeSpan'>0</property>
			<property name="AllowUnsignedBinaries" type="bit" cast='true'>CASE
							WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 0 THEN 1
							WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 1 THEN 0
							ELSE 0 END</property> 
			<property name="LoadOSResourcesEnabled" type="bit" cast='true'>FULLTEXTSERVICEPROPERTY('LoadOSResources')</property>
		</version>
		<version min_major='10'>
			<property name="CatalogUpgradeOption" type="int" report_type="FullTextCatalogUpgradeOption">FULLTEXTSERVICEPROPERTY('UpgradeOption')</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextCatalog" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='9' >
			<property_link table='sys.fulltext_catalogs AS cat' />
			<property_link fields='#FileGroup#' left_join='sys.filegroups AS fg'>cat.data_space_id = fg.data_space_id</property_link>
			<property_link fields='#Owner#' left_join='sys.database_principals AS dp'>cat.principal_id=dp.principal_id</property_link>

    </version>
		<version min_major='7' max_major='8'>
			<property_link table='sysfulltextcatalogs AS cat' />
			<property_link fields='#RootPath#HasFullTextIndexedTables#' left_join='#tmpcatinfo AS ci'>ci.ftcatid = cat.ftcatid</property_link>
		</version>
		<version min_major = '8' max_major='8'>
			<prefix fields='#RootPath#HasFullTextIndexedTables#'>
create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int)
if( 1 = DATABASEPROPERTYEX(db_name(), 'IsFulltextEnabled') )
begin
	insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs
end
			</prefix>
		</version>
		<version min_major = '7' max_major='7'>
			<prefix fields='#RootPath#HasFullTextIndexedTables#'>
create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int)
if( 1 = DATABASEPROPERTY(db_name(), 'IsFulltextEnabled') )
begin
	insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs
end
			</prefix>
		</version>
		<version min_major = '7' max_major='8'>
			<postfix fields='#RootPath#HasFullTextIndexedTables#'> 
drop table #tmpcatinfo
			</postfix>
		</version>
		<post_process fields = '#PopulationCompletionDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateSeconds1990' 
				triggered_fields='#PopulationCompletionDateInt#'/>
		<post_process fields = '#PopulationCompletionAge#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTimeSpanHMS' 
				triggered_fields='#PopulationCompletionAgeInt#PopulationCompletionAgeNow#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">cat.name</property>

		<version min_major='10' >
			<property name="UniqueKeyCount" type="int" access='Read' expensive='true'>FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount')</property>		
		</version>
			
		<version min_major='7' max_major='9'>
			<property name="UniqueKeyCount" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount')</property>
		</version>
		
		<version min_major='9' >
			<property name="ID" type="int" access='Read'>cat.fulltext_catalog_id</property>
			<property name="IsAccentSensitive" type="bit" cast='true'>FULLTEXTCATALOGPROPERTY(cat.name,'AccentSensitivity')</property>
			<property name="IsDefault" type="bit" cast='true' read_only_after_creation="true">cat.is_default</property>
			<property name="FileGroup" type="sysname">ISNULL(fg.name, N'')</property>
			<property name="Owner" type="sysname">dp.name</property>
		</version>

		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true' access='Read'>cat.ftcatid</property>
		</version>

		<property name="ErrorLogSize" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'LogSize')</property>
		<property name="FullTextIndexSize" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'IndexSize')</property>
		<property name="ItemCount" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'ItemCount')</property>		
		<property name="PopulationStatus" type="int" report_type="CatalogPopulationStatus" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateStatus')</property>
		<property name="PopulationCompletionAgeInt" type="int" hidden='true'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge')</property>
		<property name="PopulationCompletionAgeNow" type="datetime" hidden='true'>GETDATE()</property>
		<property name="PopulationCompletionAge" type="int" report_type2='System.TimeSpan' access='Read'>0</property>
		
		<property name='PopulationCompletionDateInt' type='int' hidden='true'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge')</property>		
		<property name="PopulationCompletionDate" type="datetime" access='Read'>cast(null as datetime)</property>

    <version min_major='7' max_major='8'>
      <property name="RootPath" type="nvarchar" size='260' read_only_after_creation="true">ISNULL(ci.path,N'')</property>
  		<property name="HasFullTextIndexedTables" type="bit" cast='true' access='Read'>ci.number_fulltext_tables</property>
    </version>

    <version min_major='9'>
      <property name="RootPath" type="nvarchar" size='260' read_only_after_creation="true">ISNULL(cat.path,N'')</property>
      <property name="HasFullTextIndexedTables" type="bit" cast='true' access='Read'>(select (case when exists(select distinct object_id from sys.fulltext_indexes fti where cat.fulltext_catalog_id = fti.fulltext_catalog_id and OBJECTPROPERTY(object_id, 'IsTable')=1) then 1 else 0 end))</property>
    </version>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>23</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>

    <version min_major ="10">
      <include file='inc_policy_health_state.xml'/>
    </version>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextStopList" impl_type="SqlObject" min_major='10'>
	<settings>
			<property_link table='sys.fulltext_stoplists AS sl' />
			<property_link fields='#Owner#' join='sys.database_principals AS dp'>sl.principal_id=dp.principal_id</property_link>
	</settings>
	<properties>
			<include file='inc_urn.xml' />
			<property name="Name" type="sysname">sl.name</property>
			<property name="Owner" type="sysname" read_only_after_creation="true">dp.name</property>
			<property name="ID" type="int" access="Read">sl.stoplist_id</property>
		
		    <property name="ExtPropClass" type="int" hidden='true'>29</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Schema" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<property_link table="sys.schemas AS s" />
		<property_link fields = '#Owner#' join="sys.database_principals AS dp1">dp1.principal_id = s.principal_id</property_link>
	</settings>
	<properties>
    		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">s.name</property>
		<property name="ID" type="int">s.schema_id</property>		
		<property name="Owner" type="sysname" mode="design">dp1.name</property>
		<property name="IsSystemObject" type="bit" access='Read' cast='true'>
      case when s.name in ('dbo','guest','INFORMATION_SCHEMA','sys','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader', 'db_denydatawriter') then 1 else 0 end</property>
	<version min_major='10' >
		<include file='inc_policy_health_state.xml'/>
	</version>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>3</property>
      <property name="ExtPropMajorID" type="int" hidden='true'>s.schema_id</property>
      <property name="ExtPropMinorID" type="int" hidden='true'>0</property>    
	</properties>
</EnumObject>
s<?xml version="1.0" ?>
<EnumObject type="FullTextIndex" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link parent="HasFullTextCatalog" local="HasFullTextCatalog" />
			</parent_link>
			
			<property_link fields='#CatalogName#' join='sysfulltextcatalogs AS cat'>
				<link_multiple no='1' expression="cat.ftcatid=OBJECTPROPERTY({0}, 'TableFullTextCatalogId')">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property_link>
			<property_link fields='#UniqueIndexName#IsEnabled#PopulationStatus#ChangeTracking#' join='sysindexes AS si'>
				<link_multiple no='1' expression="si.id = {0} and INDEXPROPERTY({0}, si.name, 'IsFulltextKey') &lt;&gt; 0">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property_link>
		</version>
	
		<version min_major='9' >
			<parent_link>
				<link parent="ID" local="ParentID" />
			</parent_link>
		
			<property_link table='sys.fulltext_indexes AS fti' />
			<property_link fields='#CatalogName#' join='sys.fulltext_catalogs AS cat'>cat.fulltext_catalog_id = fti.fulltext_catalog_id</property_link>
			<property_link fields='#UniqueIndexName#' join='sys.indexes AS si'>si.index_id=fti.unique_index_id and si.object_id=fti.object_id</property_link>
		</version>

		<version min_major='10'>
			<property_link fields='#StopListName#' left_join='sys.fulltext_stoplists AS sl'>sl.stoplist_id = fti.stoplist_id</property_link>
			<property_link fields='#FilegroupName#' join='sys.filegroups AS fg'>fg.data_space_id = fti.data_space_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='parent' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		
		<property name="Name" type="sysname" expensive="true">
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
		
		<property name="CatalogName" type="sysname" read_only_after_creation="true">cat.name</property>
		
		<version min_major='7' max_major='8'>
			<property name="IsEnabled" type="bit" cast='true' access='Read'>
				<link_multiple no='1' expression="OBJECTPROPERTY({0},'TableHasActiveFulltextIndex')">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="PopulationStatus" type="int" report_type="IndexPopulationStatus" access='Read'>
				<link_multiple no='1' expression="ISNULL(OBJECTPROPERTY({0},'TableFullTextPopulateStatus'),0)">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="ChangeTracking" type="int" report_type="ChangeTracking" >
				<link_multiple no='1' expression="ISNULL(OBJECTPROPERTY({0},'TableFullTextBackgroundUpdateIndexOn'),0) + ISNULL(OBJECTPROPERTY({0},'TableFullTextChangeTrackingOn'),0)">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			
			<property name="ParentID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			
			<property name="HasFullTextCatalog" type="bit" hidden='true'>1</property>	
		</version>
		
		<version min_major='9' >
			<property name="IsEnabled" type="bit" cast='true' access='Read'>fti.is_enabled</property>
			<property name="PopulationStatus" type="int" report_type="IndexPopulationStatus" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextPopulateStatus')</property>
			<property name="ChangeTracking" type="int" report_type="ChangeTracking" >(case change_tracking_state when 'M' then 1 when 'A' then 2 else 0 end)</property>
			<property name="ItemCount" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextItemCount')</property>
			<property name="DocumentsProcessed" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextDocsProcessed')</property>
			<property name="PendingChanges" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextPendingChanges')</property>
			<property name="NumberOfFailures" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextFailCount')</property>
			
			<property name="ParentID" type="int" hidden='true'>fti.object_id</property>	
		</version>
		<version min_major='10'>
			<property name="StopListOption" type="int" report_type="StopListOption">(case when fti.stoplist_id is NULL then 0 when fti.stoplist_id = 0 then 1 else 2 end)</property>
			<property name="StopListName" type="nvarchar" size='128'>ISNULL(sl.name,N'')</property>
			<property name="FilegroupName" type="sysname" read_only_after_creation="true">fg.name</property>
		</version>
			
		<property name="UniqueIndexName" type="sysname" read_only_after_creation="true">si.name</property>
    <version min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='2' expression="{0} + '/{1}'">
          <link_field type='parent' field="UrnWithId" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='2' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/Database[@Id=' + CONVERT(nvarchar(15), db_id()) + ']/Table[@Id={0}]/{1}%' ESCAPE '\') then 1 else 0 end">
          <link_field field="ParentId" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="FullTextIndexColumn" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ParentID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns cols' >COLUMNPROPERTY(cols.id, cols.name, 'IsFulltextIndexed') &lt;&gt; 0</property_link>
		</version>
		<version min_major='8' max_major='8'>
			<property_link fields='#Language#' left_join='master.dbo.syslanguages AS sl'>sl.lcid=cols.language</property_link>
		</version>
		
		<version min_major='9' >
			<property_link table='sys.fulltext_index_columns AS icol' />
			<property_link fields = '#Name#' join='sys.columns AS col'>col.object_id = icol.object_id and col.column_id = icol.column_id</property_link>
			<property_link fields='#Language#' join='sys.fulltext_languages AS sl'>sl.lcid=icol.language_id</property_link>
			<property_link fields='#TypeColumnName#' left_join='sys.columns AS col2'>col2.column_id = icol.type_column_id and col2.object_id = icol.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">cols.name</property>
			<property name="ParentID" type="int" hidden='true'>cols.id</property>	
		</version>
		<version min_major='7' max_major='7'>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL((select scol2.name from
					sysdepends as sdep,
					syscolumns as scol2
			where
				cols.colid = sdep.number
				and cols.id = sdep.id
				and cols.id = scol2.id
				and sdep.depnumber = scol2.colid),N'')
				</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL((select scol2.name from
					sysdepends as sdep,
					syscolumns as scol2
			where
				cols.colid = sdep.number
				and cols.id = sdep.id
				and sdep.deptype = 1
				and cols.id = scol2.id
				and sdep.depnumber = scol2.colid),N'')
				</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="Language" type="sysname" read_only_after_creation="true">sl.alias</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname">col.name</property>
			<property name="ParentID" type="int" hidden='true'>icol.object_id</property>
			<property name="Language" type="sysname" read_only_after_creation="true">sl.name</property>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL(col2.name,N'')</property>
		</version>
	</properties>
</EnumObject>
-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @udtt int
declare @ddltr int
declare @unknown int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @udtt = 104
set @ddltr = 203
set @unknown = 1001
set @pg = 204

-- variables for referenced type obtained from sys.sql_expression_dependencies
declare @obj int
set @obj = 20
declare @type int
set @type = 21
-- variables for xml and part_func are already there

create table #t1
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL,
	degree int NULL
)

-- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1
create table #t2
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL
)

-- This index will ensure that we have unique parent-child relationship
create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) 
   select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l

-- change the object_id of table types to their user_defined_id
update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id
from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt

while @rows > 0
begin
	set @rows = 0
	if (1 = @find_referencing_objects)
	begin
		-- HARD DEPENDENCIES
		-- these dependencies have to be in the same database only

		-- tables that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- udtts that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables/views that reference triggers
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR'
			where @iter_no = t.rank and (t.object_type = @u OR  t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.default_object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.default_object_id = t.object_id
			join sys.objects as o on o.object_id = t.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.rule_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = clmns.object_id
			where @iter_no = t.rank and t.relative_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.rule_object_id = t.object_id
			where @iter_no = t.rank and t.object_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table types that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- procedures that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type in ( 'P', 'RF', 'PC') then @sp else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.xml_collection_id = t.object_id
			join sys.objects as o on o.object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udf, sp, uda, trigger all that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.assembly_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.objects as o on am.object_id = o.object_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udt that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select at.user_type_id, at.name, SCHEMA_NAME(at.schema_id), t.object_db, @udt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.assembly_id = t.object_id) and (at.is_user_defined = 1))
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly that reference assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.referenced_assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table references table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.parent_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uda references types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.user_type_id = t.object_id
			join sys.objects as o on o.object_id = p.object_id and o.type = 'AF'
			where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name())

		-- table,view references partition scheme
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'V' then @v else @u end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.data_space_id = t.object_id
			join sys.objects as o on o.object_id = idx.object_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- partition scheme references partition function
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.function_id = t.object_id
			where @iter_no = t.rank and t.object_type = @part_func and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- plan guide references sp, udf, triggers
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pg.plan_guide_id, pg.name, t.object_db, @pg, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.scope_object_id = t.object_id
			where @iter_no = t.rank and t.object_type in (@sp, @udf, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- synonym refrences object
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on object_id(s.base_object_name) = t.object_id
			where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- SOFT DEPENDENCIES
		DECLARE name_cursor CURSOR
		FOR
			SELECT DISTINCT t.object_id, t.object_name, t.object_schema, t.object_type
			FROM #t1 as t
			WHERE @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) and t.object_type NOT IN (@part_sch, @assm, @tr, @ddltr)
		OPEN name_cursor
		DECLARE @objid int
		DECLARE @objname sysname
		DECLARE @objschema sysname
		DECLARE @objtype smallint
		DECLARE @fullname sysname
		DECLARE @objecttype sysname
		FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			SET @fullname = case when @objschema IS NULL then quotename(@objname)
							else quotename(@objschema) + '.' + quotename(@objname) end
			SET @objecttype = case when @objtype in (@uddt, @udt, @udtt) then 'TYPE'
								when @objtype = @xml then 'XML_SCHEMA_COLLECTION'
								when @objtype = @part_func then 'PARTITION_FUNCTION'
								else 'OBJECT' end
			insert #t2 (object_type, object_id, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
				select
					case dep.referencing_class when 1 then (select
						case when obj.type = 'U' then @u
						when obj.type = 'V' then @v
						when obj.type = 'TR' then @tr
						when obj.type in ('P', 'RF', 'PC') then @sp
						when obj.type in ('AF') then @uda
						when obj.type in ('TF', 'FN', 'IF', 'FS', 'FT') then @udf
						when obj.type = 'D' then @def
						when obj.type = 'SN' then @synonym
						else @obj
						end
					from sys.objects as obj where obj.object_id = dep.referencing_id)
				when 6 then (select 
						case when (tp.is_assembly_type = 1) then @udt
						when (tp.is_table_type = 1) then @udtt
						else @uddt
						end
					from sys.types as tp where tp.user_type_id = dep.referencing_id)
				when 7 then @u
				when 9 then @u	
				when 10 then @xml 
				when 12 then @ddltr 
				when 21 then @part_func 
				end,
			dep.referencing_id,
			dep.referencing_entity_name,
			dep.referencing_schema_name,
			db_name(), null,
			@objid, @objname,
			@objschema, db_name(), @objtype, 
			0, @iter_no + 1
			from sys.dm_sql_referencing_entities(@fullname, @objecttype) dep

			FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		END
		CLOSE name_cursor
		DEALLOCATE name_cursor

		update #t2 set object_id = obj.object_id, object_name = obj.name, object_schema = schema_name(obj.schema_id), object_type = @u
		from sys.objects as o
		join sys.objects as obj on obj.object_id = o.parent_object_id
		where o.object_id = #t2.object_id and (#t2.object_type = @obj OR o.parent_object_id != 0) and #t2.rank = @iter_no + 1

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank and #t2.object_id != #t2.relative_id
		set @rows = @rows + @@rowcount

	end
	else
	begin
		-- SOFT DEPENDENCIES
		-- insert all values from sys.sql_expression_dependencies for the corresponding object
		-- first insert them in #t2, update them and then finally insert them in #t1
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- insert all the dependency values in case of a table that references a check
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id
			join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C'
			join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u

		-- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id
			join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- queries for objects with object_id null and object_svr null - resolve them
		-- we will build the query to resolve the objects 
		-- increase @rows as we bind the objects
		
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t2 as t
			where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL
		OPEN db_cursor
		DECLARE @dbname sysname
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			DECLARE @query nvarchar(MAX)
			-- when schema is not null 
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id 
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @part_func - schema is always null
			-- @schema is null
			-- consider schema as 'dbo'
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				where obj.name = #t2.object_name collate database_default
				and SCHEMA_NAME(obj.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				where t.name = #t2.object_name collate database_default
				and SCHEMA_NAME(t.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				where x.name = #t2.object_name collate database_default
				and SCHEMA_NAME(x.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- consider schema as t.relative_schema
			-- the parent object will have the default schema of user in case of dynamic schema binding
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @part_func always have schema as null
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = p.function_id
				from ' + quotename(@dbname) + '.sys.partition_functions as p
				where p.name = #t2.object_name collate database_default
				and #t2.object_type = ' + CAST(@part_func AS nvarchar(8)) + 
				' and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- update the shared object if any (schema is not null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp
			from master.sys.objects as o 
			join master.sys.schemas as sch on sch.schema_id = o.schema_id
			where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and 
			o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			-- update the shared object if any (schema is null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp
			from master.sys.objects as o 
			where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default  and 
			o.type in ('P', 'RF', 'PC') and 
			#t2.object_schema IS null and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor

	update #t2 set object_type = @unknown where object_id IS NULL

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank
		SET @rows = @rows + @@rowcount


		-- HARD DEPENDENCIES
		-- uddt or udt referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as col on col.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddt or udt referenced by table type
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as col on col.object_id = tt.type_table_object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table or view referenced by trigger
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.triggers as tr on tr.object_id = t.object_id
			join sys.objects as o on o.object_id = tr.parent_id
			where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where  @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
      
		-- rules referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- rules referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- XmlSchemaCollections referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by tabletypes
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as c on c.object_id = tt.type_table_object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by procedures
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type in (@sp, @udf) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.parent_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.referenced_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddts referenced by uda
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case when tp.is_table_type = 1 then @udtt when tp.is_assembly_type = 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = p.user_type_id
			where @iter_no = t.rank and t.object_type = @uda and t.object_type = @uda and tp.user_type_id>256
		set @rows = @rows + @@rowcount

		-- assembly referenced by assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.referenced_assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udt
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.user_type_id = t.object_id) and (at.is_user_defined = 1))
			join sys.assemblies as asm on asm.assembly_id = at.assembly_id
			where @iter_no = t.rank and t.object_type = @udt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udf, sp, uda, trigger
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.object_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = am.assembly_id
			where @iter_no = t.rank and t.object_type in ( @udf, @sp, @uda, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Schemes referenced by tables/views
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.object_id = t.object_id
			join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id
			where @iter_no = t.rank and t.object_type in (@u, @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Function referenced by Partition Schemes
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pf.function_id, pf.name, t.object_db, @part_func, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.data_space_id = t.object_id
			join sys.partition_functions as pf on pf.function_id = ps.function_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
        -- sp, udf, triggers referenced by plan guide
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.plan_guide_id = t.object_id
			join sys.objects as o on o.object_id = pg.scope_object_id
			where @iter_no = t.rank and t.object_type = @pg and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- objects referenced by synonym
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on s.object_id = t.object_id
			join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT')
			where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	end
	set @iter_no = @iter_no + 1
end

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
	select count(*) from #t1 t
	where t.relative_id = #t1.object_id and t.object_id != t.relative_id)

-- perform the topological sorting
set @iter_no = 1
while 1 = 1
begin
	update #t1 set rank=@iter_no where degree = 0
	-- end the loop if no more rows left to process
	if (@@rowcount = 0) break
	update #t1 set degree = NULL where rank = @iter_no

	update #t1 set degree = (
		select count(*) from #t1 t
		where t.relative_id = #t1.object_id and t.object_id != t.relative_id
		and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0))
		where degree is not null

	set @iter_no = @iter_no + 1
end

--correcting naming mistakes of objects present in current database 
--This part need to be removed once SMO's URN comparision gets fixed
		DECLARE @collation sysname;
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t1 as t
			where t.object_id IS NOT NULL and t.object_svr IS NULL
		OPEN db_cursor
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			
			SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation')));
			SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1  inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id  where o.name = #t1.object_name collate '+  @collation +' and sch.name = #t1.object_schema collate '+ @collation
			EXEC (@query)	


			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor
	
--final select
select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema]
 from #t1 as t
 left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id)
 left join sys.objects as p on p.object_id = o.parent_object_id
 order by rank desc
 
drop table #t1
drop table #t2
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off
Ix-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @udtt int
declare @ddltr int
declare @unknown int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @udtt = 104
set @ddltr = 203
set @unknown = 1001
set @pg = 204

-- variables for referenced type obtained from sys.sql_expression_dependencies
declare @obj int
set @obj = 20
declare @type int
set @type = 21
-- variables for xml and part_func are already there

create table #t1
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL,
	degree int NULL
)

-- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1
create table #t2
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL
)

-- This index will ensure that we have unique parent-child relationship
create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with (IGNORE_DUP_KEY=ON)

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) 
   select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l

-- change the object_id of table types to their user_defined_id
update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id
from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt

while @rows > 0
begin
	set @rows = 0
	if (1 = @find_referencing_objects)
	begin
		-- HARD DEPENDENCIES
		-- these dependencies have to be in the same database only
		-- tables that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- udtts that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables/views that reference triggers
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR'
			where @iter_no = t.rank and (t.object_type = @u OR  t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		

		-- table references table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.parent_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uda references types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.user_type_id = t.object_id
			join sys.objects as o on o.object_id = p.object_id and o.type = 'AF'
			where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name())

		-- synonym refrences object
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on object_id(s.base_object_name) = t.object_id
			where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	
		-- DatabaseDdlTrigger 
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
        select  obj.object_id ,obj.name ,null,null,@ddltr,t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, 1,@iter_no + 1
         from #t1 as t
         join sys.sql_expression_dependencies as dp on 
         (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 ))
         join sys.triggers as obj on obj.object_id = dp.referencing_id and obj.parent_class = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount
      
	  --view, procedure references table, view, procedure
      --procedure references type
      --table(check) references procedure
      --trigger references table, procedure
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
        select  case when obj.type in ('C' , 'D') then obj.parent_object_id else obj.object_id end,case when obj.type in ('C','D' ) then OBJECT_NAME(obj.parent_object_id) else OBJECT_NAME(obj.object_id) end,schema_name(obj.schema_id),t.object_db,
               case when obj.type  in ('U', 'C','D') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr 
               when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
               when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
               end,  t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, dp.is_schema_bound_reference,@iter_no + 1
         from #t1 as t
         join sys.sql_expression_dependencies as dp on 
         (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 ))
         join sys.objects as obj on obj.object_id = dp.referencing_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C' , 'D')
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount
      
     


	end
	else
	begin
		-- SOFT DEPENDENCIES
		-- insert all values from sys.sql_expression_dependencies for the corresponding object
		-- first insert them in #t2, update them and then finally insert them in #t1
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- insert all the dependency values in case of a table that references a check
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id
			join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C'
			join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u

		-- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id
			join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- queries for objects with object_id null and object_svr null - resolve them
		-- we will build the query to resolve the objects 
		-- increase @rows as we bind the objects
		
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t2 as t
			where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL
		OPEN db_cursor
		DECLARE @dbname sysname
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			DECLARE @query nvarchar(MAX)
			-- when schema is not null 
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id 
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @part_func - schema is always null
			-- @schema is null
			-- consider schema as 'dbo'
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				where obj.name = #t2.object_name collate database_default
				and SCHEMA_NAME(obj.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				where t.name = #t2.object_name collate database_default
				and SCHEMA_NAME(t.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				where x.name = #t2.object_name collate database_default
				and SCHEMA_NAME(x.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- consider schema as t.relative_schema
			-- the parent object will have the default schema of user in case of dynamic schema binding
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- update the shared object if any (schema is not null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp
			from sys.objects as o 
			join sys.schemas as sch on sch.schema_id = o.schema_id
			where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and 
			o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			-- update the shared object if any (schema is null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp
			from sys.objects as o 
			where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default  and 
			o.type in ('P', 'RF', 'PC') and 
			#t2.object_schema IS null and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor

	update #t2 set object_type = @unknown where object_id IS NULL

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank
		SET @rows = @rows + @@rowcount


		-- HARD DEPENDENCIES
		-- uddt or udt referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as col on col.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- uddt or udt referenced by table type
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as col on col.object_id = tt.type_table_object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table or view referenced by trigger
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.triggers as tr on tr.object_id = t.object_id
			join sys.objects as o on o.object_id = tr.parent_id
			where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	

		-- table referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.parent_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.referenced_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- objects referenced by synonym
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on s.object_id = t.object_id
			join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT')
			where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	end
	set @iter_no = @iter_no + 1
end

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
	select count(*) from #t1 t
	where t.relative_id = #t1.object_id and t.object_id != t.relative_id)

-- perform the topological sorting
set @iter_no = 1
while 1 = 1
begin
	update #t1 set rank=@iter_no where degree = 0
	-- end the loop if no more rows left to process
	if (@@rowcount = 0) break
	update #t1 set degree = NULL where rank = @iter_no

	update #t1 set degree = (
		select count(*) from #t1 t
		where t.relative_id = #t1.object_id and t.object_id != t.relative_id
		and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0))
		where degree is not null

	set @iter_no = @iter_no + 1
end

--correcting naming mistakes of objects present in current database 
--This part need to be removed once SMO's URN comparision gets fixed
		DECLARE @collation sysname;
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t1 as t
			where t.object_id IS NOT NULL and t.object_svr IS NULL
		OPEN db_cursor
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			
			---SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation')));
			SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1  inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id  where o.name = #t1.object_name collate '+  @collation +' and sch.name = #t1.object_schema collate '+ @collation
			EXEC (@query)	


			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor
	
--final select
select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema]
 from #t1 as t
 left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id)
 left join sys.objects as p on p.object_id = o.parent_object_id
 order by rank desc
 
drop table #t1
drop table #t2
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off


n-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @pg = 204


/*
 * Create #t1 as temp object holding areas.  Columns are:
 *  object_id     - temp object id
 *  object_type    - temp object type
 *  relative_id      - parent or child object id
 *  relative_type  - parent or child object type
 *  rank  - NULL means dependencies not yet evaluated, else nonNULL.
 *   soft_link - this row should not be used to compute ordering among objects
 *   object_name - name of the temp object
 *   object_schema - name the temp object's schema (if any)
 *   relative_name - name of the relative object
 *   relative_schema - name of the relative object's schema (if any)
 *   degree - the number of relatives that the object has, will be used for computing the rank
 *   object_key - surrogate key that combines object_id and object_type
 *   relative_key - surrogate key that combines relative_id and relative_type
 */
create table #t1(
   object_id         int         NULL,
   object_type       smallint    NULL,
   relative_id       int         NULL,
   relative_type        smallint    NULL,
   rank        smallint    NULL,
   soft_link      bit      NULL,
   object_name       sysname     NULL,
   object_schema        sysname     NULL,
   relative_name     sysname     NULL,
   relative_schema      sysname     NULL,
   degree            int NULL,
   object_key bigint NULL,
   relative_key bigint NULL
)

create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

declare @rowcount_ck int
set @rowcount_ck = 0

insert #t1 (relative_id, relative_type, rank) 
   select l.objid, l.objtype, @iter_no from #tempdep l

while @rows > 0
begin
   set @rows = 0
   if( 1 = @find_referencing_objects )
   begin
      --tables that reference uddts or udts (parameters that reference types are in sql_dependencies )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as c on  c.user_type_id = t.relative_id
         join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
         where @iter_no = t.rank and (t.relative_type=@uddt OR t.relative_type=@udt)
      set @rows = @rows + @@rowcount

      --tables that reference defaults ( only default objects )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as clmns on clmns.default_object_id = t.relative_id
         join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0)
         where @iter_no = t.rank and t.relative_type = @def
      set @rows = @rows + @@rowcount

      --types that reference defaults ( only default objects )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1
         from #t1 as t
         join sys.types as tp on tp.default_object_id = t.relative_id
         join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0)
         where @iter_no = t.rank and t.relative_type = @def
      set @rows = @rows + @@rowcount

      --tables that reference rules
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as clmns on clmns.rule_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @rule
      set @rows = @rows + @@rowcount

      --types that reference rules
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1
         from #t1 as t
         join sys.types as tp on tp.rule_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @rule
      set @rows = @rows + @@rowcount

      --tables that reference XmlSchemaCollections
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as c on c.xml_collection_id = t.relative_id
         join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
         where @iter_no = t.rank and t.relative_type = @xml
      set @rows = @rows + @@rowcount

      --procedures that reference XmlSchemaCollections
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, case when o.type in ( 'P', 'RF', 'PC' ) then @sp else @udf end, @iter_no + 1
         from #t1 as t
         join sys.parameters as c on c.xml_collection_id = t.relative_id
         join sys.objects as o on o.object_id = c.object_id
         where @iter_no = t.rank and t.relative_type = @xml
      set @rows = @rows + @@rowcount

      --udf, sp, uda, trigger all that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, am.object_id, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), @iter_no + 1
         from #t1 as t
         join sys.assembly_modules as am on am.assembly_id = t.relative_id
         join sys.objects as o on am.object_id = o.object_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      -- CLR udf, sp, uda that reference udt
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct t.relative_id, 
               t.relative_type, 
               am.object_id, 
               (case o.type 
                  when 'AF' then @uda 
                  when 'PC' then @sp 
                  when 'FS' then @udf 
                  when 'FT' then @udf 
                  when 'TA' then @tr 
                  else @udf end), 
               @iter_no + 1
         from #t1 as t
         join sys.parameters as sp on sp.user_type_id = t.relative_id
         join sys.assembly_modules as am on sp.object_id = am.object_id  
         join sys.objects as o on sp.object_id = o.object_id
         where @iter_no = t.rank and t.relative_type = @udt
      set @rows = @rows + @@rowcount

      --udt that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, at.user_type_id, @udt, @iter_no + 1
         from #t1 as t
         join sys.assembly_types as at on at.assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --assembly that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, ar.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_references as ar on ar.referenced_assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --table references table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, fk.parent_object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.foreign_keys as fk on fk.referenced_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount

      --table,view references partition scheme
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, idx.object_id, case o.type when 'V' then @v else @u end, @iter_no + 1
         from #t1 as t
         join sys.indexes as idx on idx.data_space_id = t.relative_id 
         join sys.objects as o on o.object_id = idx.object_id
         where @iter_no = t.rank and t.relative_type = @part_sch
      set @rows = @rows + @@rowcount

      --partition scheme references partition function
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1
         from #t1 as t
         join sys.partition_schemes as ps on ps.function_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @part_func
      set @rows = @rows + @@rowcount

      --non-schema-bound parameter references type
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, p.object_id, 
               case when obj.type in ( 'P', 'PC' ) then @sp else @udf
               end, @iter_no + 1
         from #t1 as t
         join sys.parameters as p on 
             p.user_type_id = t.relative_id and  t.relative_type in (@uddt, @udt)
         join sys.objects as obj on obj.object_id = p.object_id and obj.type in ( 'P',  'PC', 'TF', 'FN', 'IF', 'FS', 'FT')
         and ISNULL(objectproperty(obj.object_id, 'isschemabound'), 0) = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      -- plan guide references sp, udf, triggers
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, pg.plan_guide_id, @pg, @iter_no + 1
         from #t1 as t
         join sys.plan_guides as pg on pg.scope_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type in (@sp, @udf, @tr)
      set @rows = @rows + @@rowcount

      --view, procedure references table, view, procedure
      --procedure references type
      --table(check) references procedure
      --trigger references table, procedure
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, case when 'C' = obj.type then obj.parent_object_id else dp.object_id end, 
               case when obj.type  in ('U', 'C') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr 
               when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
               when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
               end, @iter_no + 1
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table, view procedure
            ( class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf) )
            --reference type
             or ( 2 = class  and dp.referenced_major_id = t.relative_id and  t.relative_type in (@uddt, @udt))
            --reference xml namespace ( not supported by server right now )
            --or ( 3 = class  and dp.referenced_major_id = t.relative_id and @xml = t.relative_type )
         join sys.objects as obj on obj.object_id = dp.object_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C')
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

   end -- 1 = @find_referencing_objects
   else
   begin -- find referenced objects
      --check references table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, dp.object_id, 77 /*place holder for check*/, @iter_no
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table
            class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type = @u
         join sys.objects as obj on obj.object_id = dp.object_id and obj.type  = 'C'
         where @iter_no = t.rank
      set @rowcount_ck = @@rowcount

      --non-schema-bound parameter references type
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
            t.relative_id,	-- object_id
            t.relative_type,	-- object_type
            p.user_type_id,	-- relative_id
            case p.system_type_id when 240 then @udt else @uddt end,
            @iter_no + 1
         from #t1 as t
         join sys.parameters as p on
             p.object_id = t.relative_id and p.user_type_id > 256 and t.relative_type in ( @sp, @udf ,@uda )
             and ISNULL(objectproperty(p.object_id, 'isschemabound'), 0) = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      --view, procedure referenced by table, view, procedure
      --type referenced by procedure
      --check referenced by table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
            case when 77 = t.relative_type then obj2.parent_object_id else t.relative_id end,   -- object_id
            case when 77 = t.relative_type then @u else relative_type end,                -- object_type
            dp.referenced_major_id,                                              -- relative_id
            case                                                           -- relative_type
               when dp.class < 2 then 
                  case when 'U' = obj.type then @u 
                  when 'V' = obj.type then @v 
                  when 'TR' = obj.type then @tr 
				  when 'AF' = obj.type then @uda 
                  when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
                  when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
                  when exists (select * from sys.synonyms syn where syn.object_id = dp.referenced_major_id ) then @synonym
                  end
               when dp.class = 2 then (case 
                                    when exists (select * from sys.assembly_types sat where sat.user_type_id = dp.referenced_major_id) then @udt 
                                    else @uddt 
                                 end) 
            end, 
            @iter_no + 1
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table, view procedure
            ( class < 2 and dp.object_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, @uda, 77) )
            --reference type
             or ( 2 = class  and dp.object_id = t.relative_id ) -- t.relative_type?
            --reference xml namespace ( not supported by server right now )
            --or ( 3 = class  and dp.referenced_major_id = t.relative_id and @xml = t.relative_type )
         left join sys.objects as obj on obj.object_id = dp.referenced_major_id and dp.class < 2 and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'FS', 'FT', 'TR', 'AF')
         left join sys.objects as obj2 on obj2.object_id = t.relative_id and 77 = t.relative_type
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      if @rowcount_ck > 0 
      begin
         delete from #t1 where relative_type = 77
      end
      
      --table or view referenced by trigger
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tr.parent_id, case o.type when 'V' then @v else @u end, @iter_no + 1
         from #t1 as t
         join sys.triggers as tr on tr.object_id = t.relative_id
		 join sys.objects as o on o.object_id = tr.parent_id
         where @iter_no = t.rank and t.relative_type = @tr
      set @rows = @rows + @@rowcount
      
      --table referenced by table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, fk.referenced_object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.foreign_keys as fk on fk.parent_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount

      --assembly referenced by assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, ar.referenced_assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_references as ar on ar.assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --assembly referenced by udt
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, at.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_types as at on at.user_type_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @udt
      set @rows = @rows + @@rowcount

      -- assembly referenced by udf, sp, uda, trigger
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, am.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_modules as am on am.object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type in ( @udf, @sp, @uda, @tr)
      set @rows = @rows + @@rowcount

      -- udt referenced by CLR udf, sp, uda
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
               t.relative_id, 
               t.relative_type, 
               at.user_type_id, 
               @udt, 
               @iter_no + 1
         from #t1 as t
         join sys.parameters as sp on sp.object_id = t.relative_id
         join sys.assembly_modules as am on am.object_id = sp.object_id
         join sys.assembly_types as at on sp.user_type_id = at.user_type_id
         where @iter_no = t.rank and t.relative_type in (@udf, @sp, @uda)
      set @rows = @rows + @@rowcount

      --clr types referenced by tables ( types referenced by parameters are in sql_dependencies )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.user_type_id, @udt, @iter_no + 1
         from #t1 as t
         join sys.columns as c on  c.object_id = t.relative_id
         join sys.assembly_types as tp on tp.user_type_id = c.user_type_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount
      
      -- sp, udf, triggers referenced by plan guide
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, pg.scope_object_id, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), @iter_no + 1
         from #t1 as t
         join sys.plan_guides as pg on pg.plan_guide_id = t.relative_id
	     join sys.objects as o on o.object_id = pg.scope_object_id
         where @iter_no = t.rank and t.relative_type = @pg
      set @rows = @rows + @@rowcount
         
   end
   set @iter_no = @iter_no + 1
end --main loop

--objects that don't need to be in the loop because they don't reference anybody
if( 0 = @find_referencing_objects )
begin
   --alias types referenced by tables ( types referenced by parameters are in sql_dependencies )
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.user_type_id, @uddt, @iter_no + 1
      from #t1 as t
      join sys.columns as c on  c.object_id = t.relative_id
      join sys.types as tp on tp.user_type_id = c.user_type_id and tp.is_user_defined = 1
      where t.relative_type = @u and tp.is_assembly_type = 0

   if @@rowcount > 0 
   begin
      set @iter_no = @iter_no + 1
   end
   
   --defaults referenced by types
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, tp.default_object_id, @def, @iter_no + 1
      from #t1 as t
      join sys.types as tp on tp.user_type_id = t.relative_id and tp.default_object_id > 0
      join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0)
      where t.relative_type = @uddt

   --defaults referenced by tables( only default objects )
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, clmns.default_object_id, @def, @iter_no + 1
      from #t1 as t
      join sys.columns as clmns on clmns.object_id = t.relative_id
      join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0)
      where t.relative_type = @u

   --rules referenced by types
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, tp.rule_object_id, @rule, @iter_no + 1
      from #t1 as t
      join sys.types as tp on tp.user_type_id = t.relative_id and tp.rule_object_id > 0
      where t.relative_type = @uddt

   --rules referenced by tables
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, clmns.rule_object_id, @rule, @iter_no + 1
      from #t1 as t
      join sys.columns as clmns on clmns.object_id = t.relative_id and clmns.rule_object_id > 0
      where t.relative_type = @u

   --XmlSchemaCollections referenced by table
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1
      from #t1 as t
      join sys.columns as c on c.object_id = t.relative_id and c.xml_collection_id > 0
      where t.relative_type = @u

   --XmlSchemaCollections referenced by procedures
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1
      from #t1 as t
      join sys.parameters as c on c.object_id = t.relative_id and c.xml_collection_id > 0
      where t.relative_type in ( @sp, @udf)

   --partition scheme referenced by table,view
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
      select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1
      from #t1 as t
      join sys.indexes as idx on idx.object_id = t.relative_id 
      join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id
      where t.relative_type in (@u, @v)

   --partition function referenced by partition scheme
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
      select t.relative_id, t.relative_type, ps.function_id, @part_func, @iter_no + 1
      from #t1 as t
      join sys.partition_schemes as ps on ps.data_space_id = t.relative_id
      where t.relative_type = @part_sch
      
end

--cleanup circular references
delete #t1 where object_id = relative_id and object_type=relative_type

--allow circular dependencies by cuting one of the branches
--mark as soft links dependencies between tables
-- at script time we will need to take care to script fks and checks separately
update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u )

--add independent objects first in the list
insert #t1 ( object_id, object_type, rank) 
   select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null )

--delete initial objects
delete #t1 where object_id is null

-- compute the surrogate keys to make sorting easier
update #t1 set object_key = object_id + convert(bigint, 0xfFFFFFFF) * object_type
update #t1 set relative_key = relative_id + convert(bigint, 0xfFFFFFFF) * relative_type

create index index_key on #t1 (object_key, relative_key)

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
      select count(*) 
      from #t1 t_alias 
      where t_alias.object_key = #t1.object_key and 
            t_alias.relative_id is not null and 
            t_alias.soft_link is null)

-- perform topological sorting 
set @iter_no=1
while 1=1
begin 
   update #t1 set rank=@iter_no where degree=0
   -- end the loop if no more rows left to process
   if (@@rowcount=0) break
   update #t1 set degree=NULL where rank = @iter_no
   
   update #t1 set degree = (
      select count(*) 
         from #t1 t_alias 
         where t_alias.object_key = #t1.object_key and 
            t_alias.relative_key is not null and 
            t_alias.relative_key in (select t_alias2.object_key from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and
            t_alias.rank=0 and t_alias.soft_link is null)
      where degree is not null
      
   set @iter_no=@iter_no+1
end

--add name schema
update #t1 set object_name = o.name, object_schema = schema_name(o.schema_id)
from sys.objects AS o 
where o.object_id = #t1.object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule, @uda)

update #t1 set relative_type = case op.type when 'V' then @v else @u end, object_name = o.name, object_schema = schema_name(o.schema_id), relative_name = op.name, relative_schema = schema_name(op.schema_id)
from sys.objects AS o 
join sys.objects AS op on op.object_id = o.parent_object_id
where o.object_id = #t1.object_id and object_type = @tr

update #t1 set object_name = t.name, object_schema = schema_name(t.schema_id)
from sys.types AS t
where t.user_type_id = #t1.object_id and object_type in ( @uddt, @udt )

update #t1 set object_name = x.name, object_schema = schema_name(x.schema_id)
from sys.xml_schema_collections AS x
where x.xml_collection_id = #t1.object_id and object_type = @xml

update #t1 set object_name = p.name, object_schema = null
from sys.partition_schemes AS p
where p.data_space_id = #t1.object_id and object_type = @part_sch


update #t1 set object_name = p.name, object_schema = null
from sys.partition_functions AS p
where p.function_id = #t1.object_id and object_type = @part_func

update #t1 set object_name = pg.name, object_schema = null
from sys.plan_guides AS pg
where pg.plan_guide_id = #t1.object_id and object_type = @pg

update #t1 set object_name = a.name, object_schema = null
from sys.assemblies AS a
where a.assembly_id = #t1.object_id and object_type = @assm

update #t1 set object_name = syn.name, object_schema = schema_name(syn.schema_id)
from sys.synonyms AS syn
where syn.object_id = #t1.object_id and object_type = @synonym

-- delete objects for which we could not resolve the table name or schema
-- because we may not have enough privileges
delete from #t1 
where 
	object_name is null or 
	(object_schema is null  and object_type not in (@assm, @part_func, @part_sch, @pg))

--final select
select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema
 from #t1 
 order by rank, relative_id
 
drop table #t1
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off
1-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
-- 	contains source objects
-- 2. @find_referencing_objects defines ordering
-- 	1 order for drop
-- 	0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1

set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uddt int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
--above 100 -> not in dbo.sysobjects
set @uddt = 101


/*
 * Create #t1 as temp object holding areas.  Columns are:
 *	 object_id		- temp object id
 *	 object_type	 - temp object type
 *	 relative_id		- parent or child object id
 *	 relative_type	 - parent or child object type
 *	 rank	 - NULL means dependencies not yet evaluated, else nonNULL.
 *   soft_link - this row should not be used to compute ordering among objects
 *   object_name - name of the temp object
 *   object_schema - name the temp object's schema (if any)
 *   relative_name - name of the relative object
 *   relative_schema - name of the relative object's schema (if any)
 *   degree - the number of relatives that the object has, will be used for computing the rank
 */
create table #t1(
	object_id			int			NULL,
	object_type			smallint		NULL,
	relative_id			int			NULL,
	relative_type			smallint		NULL,
	rank			smallint		NULL,
	soft_link		bit		NULL,
	object_name			sysname		NULL,
	object_schema			sysname		NULL,
	relative_name		sysname		NULL,
	relative_schema		sysname		NULL,
	degree				int NULL
)

create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

declare @rowcount_ck int
set @rowcount_ck = 0

insert #t1 (relative_id, relative_type, rank) 
	select l.objid, l.objtype, @iter_no from #tempdep l

while @rows > 0
begin
	set @rows = 0
	if( 1 = @find_referencing_objects )
	begin
		--tables that reference types ( parameters that reference types are in sql_dependencies )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, c.id, case when o.type  in ('U') then @u 
										when o.type in ( 'P', 'RF', 'PC' ) then @sp 
										when o.type in ( 'TF', 'FN', 'IF' ) then @udf end, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as c on  c.xusertype = t.relative_id
			join dbo.sysobjects as o on o.id = c.id and o.type in ( 'U', 'P', 'RF', 'PC', 'TF', 'FN', 'IF')
			where @iter_no = t.rank and t.relative_type=@uddt
		set @rows = @rows + @@rowcount

		--tables that reference defaults ( only default objects )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as clmns on clmns.cdefault = t.relative_id
			join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
			where @iter_no = t.rank and t.relative_type = @def
		set @rows = @rows + @@rowcount

		--types that reference defaults ( only default objects )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1
			from #t1 as t
			join dbo.systypes as tp on tp.tdefault = t.relative_id
			join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
			where @iter_no = t.rank and t.relative_type = @def
		set @rows = @rows + @@rowcount

		--tables that reference rules
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as clmns on clmns.domain = t.relative_id
			where @iter_no = t.rank and t.relative_type = @rule
		set @rows = @rows + @@rowcount

		--types that reference rules
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1
			from #t1 as t
			join dbo.systypes as tp on tp.domain = t.relative_id
			where @iter_no = t.rank and t.relative_type = @rule
		set @rows = @rows + @@rowcount

		--table references table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, fk.fkeyid, @u, @iter_no + 1
			from #t1 as t
			join dbo.sysreferences as fk on fk.rkeyid = t.relative_id
			where @iter_no = t.rank and t.relative_type = @u
		set @rows = @rows + @@rowcount

		--view, procedure references table, view, procedure
		--table(check) references procedure
		--trigger references table, procedure
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, case when 'C' = o.type then o.parent_obj else dp.id end, 
					case when o.type  in ('U', 'C') then @u when 'V' = o.type then @v when 'TR' = o.type then @tr 
					when o.type in ( 'P', 'RF', 'PC' ) then @sp 
					when o.type in ( 'TF', 'FN', 'IF' ) then @udf
					end, @iter_no + 1
			from #t1 as t
			join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf)
			join dbo.sysobjects as o on o.id = dp.id and o.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'C')
			where @iter_no = t.rank
		set @rows = @rows + @@rowcount

	end -- 1 = @find_referencing_objects
	else
	begin -- find referenced objects
		--check references table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, dp.id, 77 /*place holder for check*/, @iter_no
			from #t1 as t
			join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in (@u, @udf)
			join dbo.sysobjects as obj on obj.id = dp.id and obj.type  = 'C'
			where @iter_no = t.rank
		set @rowcount_ck = @@rowcount

		--view, procedure referenced by table, view, procedure
		--type referenced by procedure
		--check referenced by table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select case when 77 = t.relative_type then obj2.parent_obj else t.relative_id end, 
				case when 77 = t.relative_type then @u else relative_type end, 
				dp.depid, case when 'U' = obj.type then @u 
					when 'V' = obj.type then @v 
					when 'TR' = obj.type then @tr 
					when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
					when obj.type in ( 'TF', 'FN', 'IF' ) then @udf
					end, @iter_no + 1
			from #t1 as t
			join dbo.sysdepends as dp on dp.id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, 77)
			join dbo.sysobjects as obj on obj.id = dp.depid and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'TR')
			left join dbo.sysobjects as obj2 on obj2.id = t.relative_id and 77 = t.relative_type
			where @iter_no = t.rank
		set @rows = @rows + @@rowcount

		if @rowcount_ck > 0 
		begin
			delete from #t1 where relative_type = 77
		end
		
		--table or view referenced by trigger
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tr.parent_obj, case o.type when 'V' then @v else @u end, @iter_no + 1
			from #t1 as t
			join dbo.sysobjects as tr on tr.id = t.relative_id
		   join dbo.sysobjects as o on o.id = tr.parent_obj
			where @iter_no = t.rank and t.relative_type = @tr
		set @rows = @rows + @@rowcount
	
		--table referenced by table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, fk.rkeyid, @u, @iter_no + 1
			from #t1 as t
			join dbo.sysreferences as fk on fk.fkeyid = t.relative_id
			where @iter_no = t.rank and t.relative_type = @u
		set @rows = @rows + @@rowcount

	end
	set @iter_no = @iter_no + 1
end --main loop

--objects that don't need to be in the loop because they don't reference anybody
if( 0 = @find_referencing_objects )
begin
	--alias types referenced by tables 
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, c.xusertype, @uddt, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as c on  c.id = t.relative_id
		join dbo.systypes as tp on tp.xusertype = c.xusertype and tp.xusertype > 256
		where t.relative_type in ( @u, @sp, @udf )

	if @@rowcount > 0 
	begin
		set @iter_no = @iter_no + 1
	end
	
	--defaults referenced by types
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, tp.tdefault, @def, @iter_no + 1
		from #t1 as t
		join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.tdefault > 0
		join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
		where t.relative_type = @uddt

	--defaults referenced by tables( only default objects )
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, clmns.cdefault, @def, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as clmns on clmns.id = t.relative_id
		join dbo.sysobjects as o on o.id = clmns.cdefault and (o.category & 0x0800) = 0
		where t.relative_type = @u

	--rules referenced by types
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, tp.domain, @rule, @iter_no + 1
		from #t1 as t
		join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.domain != 0
		where t.relative_type = @uddt

	--rules referenced by tables
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, clmns.domain, @rule, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as clmns on clmns.id = t.relative_id and clmns.domain != 0
		where t.relative_type = @u
end

--cleanup circular references
delete #t1 where object_id = relative_id and object_type=relative_type

--allow circular dependencies by cuting one of the branches
--mark as soft links dependencies between tables
-- at script time we will need to take care to script fks and checks separately
update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u )

--add independent objects first in the list
insert #t1 ( object_id, object_type, rank) 
	select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null )

--delete initial objects
delete #t1 where object_id is null

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
		select count(*) 
		from #t1 t_alias 
		where t_alias.object_id = #t1.object_id and 
			t_alias.relative_id is not null and
			t_alias.soft_link is null)

-- perform topological sorting 
set @iter_no=1
while 1=1
begin 
	update #t1 set rank=@iter_no where degree=0
	-- end the loop if no more rows left to process
	if (@@rowcount=0) break
	update #t1 set degree=NULL where rank = @iter_no
	
	update #t1 set degree = (
		select count(*) 
			from #t1 t_alias 
			where t_alias.object_id = #t1.object_id and 
				t_alias.relative_id is not null and 
				t_alias.relative_id in (select t_alias2.object_id from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and
				t_alias.rank=0 and t_alias.soft_link is null)
		where degree is not null
		
	set @iter_no=@iter_no+1
end

--add name schema
update #t1 set object_name = o.name, object_schema = user_name(o.uid)
from dbo.sysobjects AS o 
where o.id = object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule)

update #t1 set object_name = o.name, relative_type = case op.type when 'V' then @v else @u end, object_schema = user_name(o.uid), relative_name = op.name, relative_schema = user_name(op.uid)
from dbo.sysobjects AS o 
join dbo.sysobjects AS op on op.id = o.parent_obj
where o.id = object_id and object_type = @tr

update #t1 set object_name = t.name, object_schema = user_name(t.uid)
from dbo.systypes AS t
where t.xusertype = object_id and object_type = @uddt

-- delete objects for which we could not resolve the table name or schema
-- because we may not have enough privileges
delete from #t1 where object_name is null or object_schema is null


--final select
select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema
 from #t1 
 order by rank, relative_id

drop table #t1 
drop table #tempdep
 
IF @must_set_nocount_off > 0 
   set nocount off
<?xml version="1.0" ?>
<EnumObject type="OwnedObject" impl_type="SqlObject" min_major='7' >
	<version min_major='7' max_major='8'>
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sysobjects AS ownobj">ownobj.type not in ( 'K', 'S' )</property_link>
				<property_link left_join="sysobjects AS ownobj_parent">ownobj_parent.id = ownobj.parent_obj</property_link>
			
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<version min_major='7' max_major='7'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>@@SERVERNAME</property>
				</version>
				<version min_major='8' max_major='8'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				</version>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>ownobj.type</property>
				<property name="Schema" type="sysname" hidden='true'>user_name(ownobj.uid)</property>				
				<property name="ParentName" type="sysname" hidden='true'>ownobj_parent.name</property>
				<property name="ParentSchema" type="sysname" hidden='true'>user_name(ownobj_parent.uid)</property>
				
				<property name="PrincipalID" type="int" cast='true' hidden='true'>ownobj.uid</property>
			</properties>
		</union>
		<union>
			<settings>
				<parent_link>
					<link parent='Name' local='PrincipalID' />
				</parent_link>

				<property_link table="systypes AS ownobj"/>
			
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<version min_major='7' max_major='7'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>@@SERVERNAME</property>
				</version>
				<version min_major='8' max_major='8'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				</version>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'UDDT'</property>				
				<property name="Schema" type="sysname" hidden='true'>N'dbo'</property>
				<property name="ParentName" type="sysname" hidden='true'>null</property>
				<property name="ParentSchema" type="sysname" hidden='true'>null</property>
				
				<property name="PrincipalID" type="sysname" hidden='true'>N'dbo'</property>
			</properties>
		</union>
	</version>
	<version min_major='9' >
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sys.assemblies AS ownobj" />
			
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'ASSEMBLY'</property>
				
				<property name="PrincipalID" type="int" hidden='true'>ownobj.principal_id</property>
			</properties>
		</union>
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sys.schemas AS ownobj" />
				
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'SCHEMA'</property>
				
				<property name="PrincipalID" type="int" hidden='true'>ownobj.principal_id</property>
			</properties>
		</union>
	</version>
</EnumObject>
H<?xml version="1.0" ?>
<EnumObject type="OwnedObject" impl_type="SqlObject" min_major='9' >
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<!-- filter out all objects which in their enumerator representation don't have a schema property -->
			<property_link table="sys.all_objects AS ownobj">ownobj.type not in ('PK', 'C ', 'F ', 'UQ') and ( ownobj.type != 'D' or 0 = ownobj.parent_object_id)</property_link>
			<property_link left_join="sys.all_objects AS ownobj_parent">ownobj_parent.object_id = ownobj.parent_object_id</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>ownobj.type</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>ownobj_parent.name</property>
			<property name="ParentSchema" type="sysname" hidden='true'>schema_name(ownobj_parent.schema_id)</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<property_link table="sys.types AS ownobj">ownobj.schema_id != 4</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>CASE ownobj.system_type_id WHEN 240 THEN N'UDT' ELSE N'UDDT' END</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>null</property>
			<property name="ParentSchema" type="sysname" hidden='true'>null</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<property_link table="sys.xml_schema_collections AS ownobj">ownobj.schema_id != 4</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>N'XMLSCHCOL'</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>null</property>
			<property name="ParentSchema" type="sysname" hidden='true'>null</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
</EnumObject>
y<?xml version="1.0"?>
<EnumObject type="FullTextLanguage" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table="sys.fulltext_languages AS ftl" />
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">ftl.name</property>
		<property name="Lcid" type="int" access="Read">ftl.lcid</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='PerfInfo' impl_type='SqlObject' min_major='7' >
	<settings>
    <version min_major='7' max_major='8'>
      <property_link table='master.dbo.sysperfinfo AS spi'>spi.cntr_type != 1073939459</property_link>
    </version>
    <version min_major='9'>
      <property_link table='sys.dm_os_performance_counters AS spi'>spi.cntr_type != 1073939712</property_link>
    </version>
  </settings>
	<properties>
		<property name='ObjectName' type='nchar' size = '256'>spi.object_name</property>
		<property name='CounterName' type='nchar' size = '256'>spi.counter_name</property>
		<property name='InstanceName' type='nchar' size = '256'>ISNULL(spi.instance_name,N'')</property>
	</properties>
</EnumObject>
x<?xml version='1.0' ?>
<EnumObject type='PerfInfo' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#temp_agent_perf_info AS spi'/>
		<version min_major='7' max_major='7'>
			<prefix>
DECLARE @instance_name sysname
SELECT @instance_name = null
SELECT @instance_name = N'SQLAgent:'
	        </prefix>
		</version>
		<version min_major='8' >
			<prefix>
DECLARE @instance_name sysname
SELECT @instance_name = CONVERT(sysname, SERVERPROPERTY('InstanceName'))

IF @instance_name IS NULL
	SELECT @instance_name = N'SQLAgent:'
ELSE
	SELECT @instance_name = N'MSSQLAgent$' + @instance_name + N':'
	        </prefix>
        </version>
			<prefix>
CREATE TABLE #temp_agent_perf_info(object_name nvarchar(256), counter_name nvarchar(256), instance_name nvarchar(256))
CREATE TABLE #temp_job_instances (instance_name nvarchar(20))

INSERT INTO #temp_job_instances VALUES(N'_Total')
INSERT INTO #temp_job_instances VALUES(N'Schedules')
INSERT INTO #temp_job_instances VALUES(N'Alerts')
INSERT INTO #temp_job_instances VALUES(N'Others')

-- Job object
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Active Jobs',	s.instance_name FROM #temp_job_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs',	s.instance_name FROM #temp_job_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Failed jobs',	s.instance_name FROM #temp_job_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs ratio',	s.instance_name FROM #temp_job_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Jobs launched/min',	s.instance_name FROM #temp_job_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Queued jobs',	s.instance_name FROM #temp_job_instances s 

--JobStep object
		    </prefix>
   		<version min_major='7' max_major='8'>
			<prefix>
CREATE TABLE #temp_jobstep_instances (subsystem NVARCHAR(40)   NULL)
			
insert #temp_jobstep_instances values('ActiveScripting')
insert #temp_jobstep_instances values('CmdExec')
insert #temp_jobstep_instances values('TSQL')

-- Check if replication is installed
DECLARE @replication_installed int
			</prefix>
		</version>
   		<version min_major='7' max_major='7'>
			<prefix>
EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output'
			</prefix>
		</version>
   		<version min_major='8' max_major='8'>
			<prefix>
EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output'
			</prefix>
		</version>
   		<version min_major='7' max_major='8'>
			<prefix>
SELECT @replication_installed = ISNULL(@replication_installed, 0)
if 1 = @replication_installed
begin
	insert #temp_jobstep_instances values('Distribution')
	insert #temp_jobstep_instances values('LogReader')
	insert #temp_jobstep_instances values('Merge')
	insert #temp_jobstep_instances values('Snapshot')
end
			</prefix>
		</version>
   		<version min_major='8' max_major='8'>
			<prefix>
if 1 = @replication_installed
begin
	insert #temp_jobstep_instances values('QueueReader')			
end
			</prefix>
		</version>
   		<version min_major='9' >
			<prefix>
CREATE TABLE #temp_jobstep_instances (subsystem          NVARCHAR(40)   NULL, description        NVARCHAR(80)   NULL, subsystem_dll      NVARCHAR(255)  NULL, agent_exe          NVARCHAR(80)   NULL, start_entry_point  NVARCHAR(30)   NULL, event_entry_point  NVARCHAR(30)   NULL, stop_entry_point   NVARCHAR(30)   NULL, max_worker_threads INT           NULL, subsystem_id       INT			  NULL)
INSERT #temp_jobstep_instances EXEC msdb.dbo.sp_enum_sqlagent_subsystems 			
			</prefix>
		</version>
		<prefix>
INSERT #temp_jobstep_instances ( subsystem ) VALUES (N'_Total') 

INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Active steps',	s.subsystem FROM #temp_jobstep_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Queued steps',	s.subsystem FROM #temp_jobstep_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Total Step Retries',	s.subsystem FROM #temp_jobstep_instances s 

--Alert object
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Activated Alerts',	NULL)
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Alerts/min',	NULL)

--General object
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Statistics' , N'Server Restarted',	NULL)
		</prefix>
		<postfix>
DROP TABLE #temp_job_instances
DROP TABLE #temp_agent_perf_info
DROP TABLE #temp_jobstep_instances
		</postfix>
	</settings>
	<properties>
		<property name='ObjectName' type='nchar' size = '256'>spi.object_name</property>
		<property name='CounterName' type='nchar' size = '256'>spi.counter_name</property>
		<property name='InstanceName' type='nchar' size = '256'>ISNULL(spi.instance_name,N'')</property>
	</properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='ServerActiveDirectory' impl_type='SqlObject' min_major='8' >
	<settings>
		<property_link table='#temp_ad AS ad'/>
		<prefix fields="#IsRegistered#">
			declare @scmPath sysname
			select @scmPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP'
			declare @SmoActiveDirectory sysname
			exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @scmPath, N'objectGUID', @SmoActiveDirectory OUTPUT
		</prefix>
		<prefix>
		    DECLARE @res INT
			CREATE table #temp_ad(result BIT)
			EXECUTE @res = master.dbo.xp_MSADEnabled
			if @res = 0
			    INSERT INTO #temp_ad VALUES (1)
			else
			    INSERT INTO #temp_ad VALUES (0)
		</prefix>
		<postfix>
			DROP table #temp_ad
		</postfix>
	</settings>
	<properties>
		<property name='IsEnabled' type='bit' cast='true' access='Read'>ad.result</property>
		<property name='IsRegistered' type='bit' cast='true' access='Read'>CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='DatabaseActiveDirectory' impl_type='SqlObject' min_major='8' >
	<settings>
		<prefix fields="#IsRegistered#">
			declare @SmoActiveDirectory sysname
			declare @RegPath nvarchar(1024)
			select @RegPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP\' + db_name()
			exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPath, N'objectGUID', @SmoActiveDirectory OUTPUT
		</prefix>
	</settings>
	<properties>
		<property name='IsRegistered' type='bit' cast='true' access='Read'>CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link_multiple no="3" expression="(prmssn.protecttype in (204,206) or     /*grant exists without same grant with grant */
(prmssn.protecttype = 205 and not exists(select * from dbo.sysprotects p2 where p2.id = prmssn.id and p2.uid = prmssn.uid and p2.action = prmssn.action and p2.columns = prmssn.columns and p2.grantor = prmssn.grantor and p2.protecttype = 204)))
and prmssn.action in (26,193,197) and prmssn.id = {1}
and	(((convert(tinyint,substring(prmssn.columns,1,1))&amp;1) = 0 and (convert(int,substring(prmssn.columns,{0}/8+1,1))&amp;power(2,{0}&amp;7)) != 0)
or ((convert(tinyint,substring(prmssn.columns,1,1))&amp;1) != 0 and (convert(int,substring(prmssn.columns,{0}/8+1,1))&amp;power(2,{0}&amp;7)) = 0))
and 0 != (permissions({1}, {2}) &amp; case prmssn.action when 26  then 4         /*REFERENCES basebit */ when 193 then 1 /*SELECT basebit */ when 197 then 2 /*UPDATE basebit */end)">
					<link_field type="parent" field="ID" />
					<link_field type="parent" field="ParentID" />
					<link_field type="parent" field="Name" />
				</link_multiple>
			</parent_link>
		</version>
		<version min_major = '9' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>		
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
		<property name="ColumnName" type="sysname">
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' >
	<settings distinct='true'>
		<parent_link>
			<link parent="Name" local="Grantee" />
		</parent_link>
		<property_link table='dbo.sysusers usr, master.dbo.spt_values spv'>
			usr.uid &gt;= 16384 and
			usr.uid &lt;= 16393 and
			spv.type = 'DBR' and
			((usr.uid = 16384 and spv.number &gt;= 16384 and spv.number &lt; 16392) or (usr.uid &lt;&gt; 16384 and usr.uid = spv.number)) and
			spv.low &gt; 0		
		</property_link>
	</settings>
	<properties>
		<property name="Grantee" type="sysname">usr.name</property>
		<property name="Description" type="sysname">spv.name</property>		
	</properties>
</EnumObject>0<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link>prmssn.id = 0</property_link>
		</version>		
		<version min_major = '9' cloud_min_major='10'>
			<property_link>prmssn.class = 0</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'DatabasePermissionSetValue'>null</property>
	</properties>
</EnumObject>
,<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link  table="dbo.sysprotects AS prmssn"/>
			<property_link fields='#CodeDescription#' 
						join='master.dbo.spt_values AS val1'>val1.number = prmssn.protecttype and val1.type = 'T'</property_link>
			<property_link fields='#StateDescription#' 
						join='master.dbo.spt_values AS val2'>val2.number = prmssn.action and val2.type = 'T'</property_link>
			<property_link fields = '#Grantee#GranteeType#Name#' 
					join = 'sysusers AS grantee_principal'>grantee_principal.uid = prmssn.uid</property_link>
			<property_link fields = '#Grantor#GrantorType#Name#' 
					join = 'sysusers AS grantor_principal'>grantor_principal.uid = prmssn.grantor</property_link>
		</version>
		
		<version min_major = '9' cloud_min_major='10'>
			<property_link table = 'sys.{0}_permissions AS prmssn'/>
			<property_link fields = '#Grantee#GranteeType#Name#' 
					join = 'sys.{0}_principals AS grantee_principal'>grantee_principal.principal_id = prmssn.grantee_principal_id</property_link>
			<property_link fields = '#Grantor#GrantorType#Name#' 
					join = 'sys.{0}_principals AS grantor_principal'>grantor_principal.principal_id = prmssn.grantor_principal_id</property_link>
		</version>
		<post_process fields='#Code#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessPermissionCode'
					triggered_fields='#SqlCodePP#'/>
	</settings>
	<properties>
		<version min_major = '7' max_major = '8'>
			<property name="Name" type="nvarchar" size = '512'>grantee_principal.name + N'_' + 
                    convert(nvarchar(10), (CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END)) + N'_' + 
                    grantor_principal.name + N'_' +
                    convert(nvarchar(10), (CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END)) + N'_' +
                    convert(nvarchar(10), (prmssn.id)) + N'_' +
                    convert(nvarchar(10), prmssn.protecttype) + N'_' +
                    convert(nvarchar(10), prmssn.action)
            </property>
			<property name="Grantee" type="sysname">grantee_principal.name</property>
			<property name="GranteeType" type="int" report_type='PrincipalType'
>CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END</property>
			<property name="Grantor" type="sysname">grantor_principal.name</property>
			<property name="GrantorType" type="int" report_type='PrincipalType'
>CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END</property>
			<property name="ObjectClass" type="int"  
								report_type = 'ObjectClass'>CASE prmssn.id WHEN 0 THEN 0 ELSE 1 END </property>		
			<!--	Grant_WGO	204		ascii('W')
					Grant		205		ascii('G')
					Deny		206		ascii('D')	-->
			<property name="PermissionState" type="int" 
				report_type = "PermissionState">CASE prmssn.protecttype WHEN 204 THEN 87 WHEN 205 THEN 71 WHEN 206 THEN 68 END</property>
			
			<!-- mark them expensive, we only want them used in special cases -->
			<property name="IntCode" type="int" expensive='true' cast='true'>prmssn.protecttype</property>			
			<property name="CodeDescription" type="nvarchar" size='100' expensive='true'>val1.name</property>		
			<property name="StateDescription" type="nvarchar" size='100' expensive='true'>val2.name</property>		
			
			<!-- hidden properties -->
			<property name="TrueObjectClass" type="int" hidden='true'>CASE prmssn.id WHEN 0 THEN 0 ELSE 1 END </property>		
			<property name="SqlCodePP" type="int" cast='true'  hidden='true'>prmssn.action</property>
			<property name="MajorID" type="int" hidden='true'>prmssn.id</property>
		</version>
	
		<version min_major = '9' cloud_min_major='10'>
			<property name="Name" type="nvarchar" size = '512'>grantee_principal.name + N'_' + 
                    convert(nvarchar(10), (CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END)) + N'_' + 
                    grantor_principal.name + N'_' +
                    convert(nvarchar(10), (CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END)) + N'_' +
                    convert(nvarchar(10), (CASE WHEN (prmssn.class=4 or prmssn.class=100 )THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN 201 WHEN 'A' THEN 202 ELSE 200 END + CASE prmssn.class WHEN 4 THEN 0 ELSE 100 END ELSE prmssn.class END)) + N'_' +
                    convert(nvarchar(10), ascii(prmssn.state)) + N'_' +
                    convert(varchar(10), convert(varbinary(10), prmssn.type))
            </property>
			<property name="Grantee" type="sysname">grantee_principal.name</property>
			<property name="GranteeType" type="int" report_type='PrincipalType'
>CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END</property>
			<property name="Grantor" type="sysname">grantor_principal.name</property>
			<property name="GrantorType" type="int" report_type='PrincipalType'
>CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END</property>
			<property name="ObjectClass" type="int" report_type = 'ObjectClass'
>CASE WHEN (prmssn.class=4 or prmssn.class=100 )THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN 201 WHEN 'A' THEN 202 ELSE 200 END + CASE prmssn.class WHEN 4 THEN 0 ELSE 100 END ELSE prmssn.class END</property>		
			<property name="PermissionState" type="int" report_type = "PermissionState">ascii(prmssn.state)</property>			
			
			<!-- mark them expensive, we only want them used in special cases -->
			<property name="StringCode" type="char" size='4' expensive='true'>prmssn.type</property>
			<property name="StringState" type="char" size='1' expensive='true'>prmssn.state</property>		

			<!-- hidden properties -->
			<property name="TrueObjectClass" type="int" hidden='true'>prmssn.class</property>		
			<property name="SqlCodePP" type="char" size='4' hidden='true'>prmssn.type</property>				
			<property name="MajorID" type="int" hidden='true'>prmssn.major_id</property>
			<property name="MinorID" type="int" hidden='true'>prmssn.minor_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
			</parent_link>
		</version>			
	
		<version min_major = '9' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="MajorID" />		
			<link parent="PermissionClass" local="TrueObjectClass" />
		</parent_link>
	</settings>
	<properties>
		<include file='inc_perm.xml'  alias='server'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' >
	<settings>
		<version min_major = '9'>
			<property_link>prmssn.class = 100</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='server'/>
		<property name="Code" type="int" report_type = 'ServerPermissionSetValue'>null</property>
		
	</properties>
</EnumObject>
!<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<include file='ShilohYukonPerm.xml' />
		<version min_major = '7' max_major = '8'>
			<property_link table = 'master.dbo.spt_values a'>
	(( prmssn.action in (193, 197) and ((prmssn.columns &amp; 1) = 1) ) or ( prmssn.action in (195, 196, 224, 26) ))
	and (convert(tinyint, substring( isnull(prmssn.columns, 0x01), a.low, 1)) &amp; a.high != 0) 
	and a.type = N'P' 
	and a.number = 0		
			</property_link>
		</version>
		<version min_major = '9' cloud_min_major='10'>
			<property_link>prmssn.minor_id = 0</property_link>
		</version>
	</settings>
	<properties>
		<property name="Dummy" type="nvarchar" size="300" hidden='true'/>
	</properties>
</EnumObject>[<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<version min_major = '9' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
	</properties>
</EnumObject>W<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<version min_major = '9' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
	</properties>
</EnumObject>e<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='database'/>
			<version min_major = '9' cloud_min_major='10'>
				<property_link fields = '#ObjectName#ObjectSchema#ObjectType#' join = 'sys.all_objects AS obj'>obj.object_id = prmssn.major_id and prmssn.class = 1</property_link>
			</version>
      <version min_major = '7' max_major = '8'>
        <property_link fields = '#ObjectName#ObjectSchema#ObjectType#ObjectID#' join = 'dbo.sysobjects AS obj'>obj.id = prmssn.id</property_link>
      </version>
		</settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
			
			<version min_major = '7' max_major = '8'>
				<property name="ObjectName" type="sysname">object_name(obj.id)</property>
				<property name="ObjectSchema" type="sysname">user_name(obj.uid)</property>
				<property name="ColumnName" type="sysname">null</property>
				<property name="ObjectID" type="int">obj.id</property>
                <property name="ObjectType" type="char" size='2'>obj.type</property>
				<property name="IsTableType" type="bit">0</property>
			</version>
			
			<version min_major = '9' cloud_min_major='10'>
				<property name="ObjectName" type="sysname">obj.name</property>
				<property name="ObjectSchema" type="sysname">schema_name(obj.schema_id)</property>
				<property name="ColumnName" type="sysname">COL_NAME(prmssn.major_id,prmssn.minor_id)</property>
				<property name="ObjectID" type="int">prmssn.major_id</property>
                <property name="ObjectType" type="char" size='2'>obj.type</property>
				<property name="IsTableType" type="bit">0</property>
			</version>
		</properties>
	</union>
  <version min_major = '9' cloud_min_major='10'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.schemas AS obj'>obj.schema_id = prmssn.major_id and prmssn.class = 3</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.database_principals AS obj'>obj.principal_id = prmssn.major_id and prmssn.class = 4</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
  <version min_major='9'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.assemblies AS obj'>obj.assembly_id = prmssn.major_id and prmssn.class = 5</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
  <version min_major = '9' cloud_min_major='10'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#ObjectSchema#IsTableType#' join = 'sys.types AS obj'>obj.user_type_id = prmssn.major_id and prmssn.class = 6</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">SCHEMA_NAME(obj.schema_id)</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <version min_major = '9' max_major ='9'>
          <property name="IsTableType" type="bit">0</property>
        </version>
        <version min_major = '10' cloud_min_major='10'>
          <property name="IsTableType" type="bit">obj.is_table_type</property>
        </version>
      </properties>
    </union>
  </version>
  <version min_major='9'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.fulltext_catalogs AS obj'>obj.fulltext_catalog_id = prmssn.major_id and prmssn.class = 23</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
</EnumObject>	<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' >
	<union>
		<settings>
			<include file='inc_perm.xml' alias='server'/>

            <property_link fields = '#ObjectName#' 
					join = 'sys.server_principals' alias = 'sp'>sp.principal_id = prmssn.major_id and prmssn.class = 101</property_link>

        </settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
			<property name="ObjectName" type="sysname">sp.name</property>
			<property name="ObjectSchema" type="sysname">NULL</property>
			<property name="ColumnName" type="sysname">NULL</property>
			<property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
		</properties>
	</union>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='server'/>
			
			<property_link fields = '#ObjectName#' 
					join = 'sys.certificates' alias = 'c'>c.certificate_id = prmssn.major_id and prmssn.class = 106</property_link>

        </settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
			
			<property name="ObjectName" type="sysname">c.name</property>
			<property name="ObjectSchema" type="sysname">NULL</property>
			<property name="ColumnName" type="sysname">NULL</property>
			<property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
        </properties>
    </union>
    <union>
        <settings>
            <include file='inc_perm.xml' alias='server'/>
            <property_link 
                fields = '#ObjectName#' 
                join = 'sys.endpoints' 
                alias = 'e'>e.endpoint_id = prmssn.major_id and prmssn.class = 105</property_link>
        </settings>
        <properties>
            <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
            <property name="ObjectName" type="sysname">e.name</property>
            <property name="ObjectSchema" type="sysname">NULL</property>
            <property name="ColumnName" type="sysname">NULL</property>
            <property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
		</properties>
	</union>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="SystemMessage" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.sysmessages AS sms'>sms.error &lt; 50001</property_link>
			<property_link fields='#Language#' left_join='syslanguages AS sl '>sms.msglangid = sl.lcid</property_link>
		</version>
		<version min_major='9' >
			<property_link table="sys.messages AS sms" >sms.message_id &lt; 50001</property_link>
			<property_link fields='#Language#' left_join='sys.syslanguages AS sl '>sms.language_id = sl.lcid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_message.xml' />
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" access="Read" key_index="1">sms.error</property>
			<property name="IsLogged" type="bit" cast='true' access="Read">sms.dlevel</property>
			<property name="Severity" type="tinyint" access="Read" cast="true">sms.severity</property>
			<property name="Text" type="nvarchar" size="255"  access="Read">sms.description</property>
			<property name="LanguageID" type="int" access="Read" cast='true'>sms.msglangid</property>
			<property name="Language" type="sysname" access="Read" key_index="0">sl.name</property>
		</version>
		
		<version min_major='9' >
			<property name="ID" type="int" access="Read" cast='true' key_index="1">sms.message_id</property>
			<property name="IsLogged" type="bit" cast='true' access="Read">sms.is_event_logged</property>
			<property name="Severity" type="tinyint" access="Read" cast="true">sms.severity</property>
			<property name="Text" type="nvarchar" size="255"  access="Read">sms.text</property>
			<property name="LanguageID" type="int" access="Read" cast='true'>sms.language_id</property>
			<property name="Language" type="sysname" access="Read" key_index="0">sl.name</property>
		</version>
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="UserDefinedMessage" impl_type="SqlObject" min_major='7' >
  <settings>
    <version min_major='7' max_major='8'>
      <property_link table = 'master.dbo.sysmessages AS sms'>sms.error &gt; 50000</property_link>
      <property_link fields='#Language#' left_join='master.dbo.syslanguages AS sl '>sms.msglangid = sl.lcid</property_link>
    </version>
    <version min_major='9' >
      <property_link table="sys.messages AS sms" >sms.message_id &gt; 50000</property_link>
      <property_link fields='#Language#' left_join='sys.syslanguages AS sl '>sms.language_id = sl.lcid</property_link>
    </version>
  </settings>
  <properties>
    <include file='inc_urn_message.xml' />
    <version min_major='7' max_major='8'>
      <property name="ID" type="int" access='rw' read_only_after_creation="true" key_index ="1">sms.error</property>
      <property name="IsLogged" type="bit" cast='true' >sms.dlevel</property>
      <property name="Severity" type="int" cast="true">sms.severity</property>
      <property name="Text" type="nvarchar" size="255"  >sms.description</property>
      <property name="LanguageID" type="int" cast="true" read_only_after_creation="true">sms.msglangid</property>
      <property name="Language" type="sysname" read_only_after_creation="true" key_index ="0">sl.name</property>
    </version>

    <version min_major='9' >
      <property name="ID" type="int" access='rw' read_only_after_creation="true" key_index ="1">sms.message_id</property>
      <property name="IsLogged" type="bit" cast='true' >sms.is_event_logged</property>
      <property name="Severity" type="int" cast="true">sms.severity</property>
      <property name="Text" type="nvarchar" size="255"  >sms.text</property>
      <property name="LanguageID" type="int" cast="true" read_only_after_creation="true">sms.language_id</property>
      <property name="Language" type="sysname" read_only_after_creation="true" key_index ="0">sl.name</property>
    </version>
  </properties>
</EnumObject>


<?xml version="1.0" ?>
<EnumObject type="Collation" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<property_link table='sys.synonyms' alias='s' />
		<post_process fields='#BaseServer#BaseDatabase#BaseSchema#BaseObject#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessSplitFourPartName'
			triggered_fields='#BaseObjectName#' />
	</settings>
	<properties>
		<include file='inc_object.xml' alias='s' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />


    <version min_major='9'>
      <property name="BaseServer" type="nvarchar" usage='request' read_only_after_creation="true" mode="deploy">N''</property>
    </version>
		<property name="BaseDatabase" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseSchema" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseObject" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseObjectName" type="nvarchar" size='1035' hidden='true'>s.base_object_name</property>
		<property name="BaseType" type="int" access='read' report_type="SynonymBaseType">
			CASE OBJECTPROPERTYEX(s.object_id,'BaseType') 
				WHEN N'U' THEN 1 
				WHEN N'V' THEN 2 
				WHEN N'P' THEN 3 
				WHEN N'FN' THEN 4 
				WHEN N'TF' THEN 5 
				WHEN N'IF' THEN 6 
				WHEN N'X' THEN 7 
				WHEN N'RF' THEN 8 
				WHEN N'PC' THEN 9 
				WHEN N'FS' THEN 10 
				WHEN N'FT' THEN 11 
				WHEN N'AF' THEN 12 ELSE 0 END
		</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Inc_Fragmentation" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='7'>
			<post_process class_name='Microsoft.SqlServer.Management.Smo.PostProcessFragmentation'
						triggered_fields='#IndexID#TableID#DatabaseName#'/>
		</version>
		
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='IndexName' />
			</parent_link>
		
			<request_parent_select>
				<field name='ParentID' />
				<field name='Name' />								
			</request_parent_select>
			<property_link table="#contig_tmp as fi" />		
			
			<postfix> 
				drop table #contig_tmp
			</postfix>			
		</version>
	
		<version min_major='9' >
			<parent_link>
				<link parent='TableID' local='TableID' />
				<link parent='IndexID' local='IndexID' />
			</parent_link>
			
			<property_link expression_is_for_table_name='true' alias='fi'>
				<link_multiple no='1' expression="sys.dm_db_index_physical_stats(@database_id, NULL, NULL, NULL, '{0}')">
					<link_field type='local' field="FragmentationLevel" />
				</link_multiple>
			</property_link>

			<prefix>
declare @database_id int
select @database_id = db_id()
			</prefix>

		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='7'>
			<property name="IndexID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="TableID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentID" />
				</link_multiple>
			</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			
			<property name="Pages" type="int">null</property>
			<property name="Extents" type="int">null</property>
			<property name="ExtentSwitches" type="int">null</property>
			<property name="AverageFreeBytes" type="float">null</property>
			<property name="AveragePageDensity" type="float">null</property>
			<property name="ScanDensity" type="float">null</property>
			<property name="LogicalFragmentation" type="float">null</property>
			<property name="ExtentFragmentation" type="float">null</property>
		</version>
		<version min_major='8' max_major='8'>		
			<property name="IndexName" type="sysname" hidden='true' cast='true'>cast(fi.IndexName as varbinary(256))</property>
			<property name="Depth" type="tinyint">fi.Level</property>
			<property name="Pages" type="bigint">fi.Pages</property>
			<property name="Rows" type="bigint">fi.Rows</property>
			<property name="MinimumRecordSize" type="int">fi.MinimumRecordSize</property>
			<property name="MaximumRecordSize" type="int">fi.MaximumRecordSize</property>
			<property name="AverageRecordSize" type="float">fi.AverageRecordSize</property>
			<property name="ForwardedRecords" type="bigint">fi.ForwardedRecords</property>
			<property name="Extents" type="int">fi.Extents</property>
			<property name="ExtentSwitches" type="int">fi.ExtentSwitches</property>
			<property name="AverageFreeBytes" type="float">fi.AverageFreeBytes</property>			
			<property name="AveragePageDensity" type="float">fi.AvgPageFullness</property>
			<property name="ScanDensity" type="float">fi.ScanDensity</property>
			<property name="BestCount" type="int">fi.BestCount</property>
			<property name="ActualCount" type="int">fi.ActualCount</property>
			<property name="LogicalFragmentation" type="float">fi.LogicalFragmentation</property>
			<property name="ExtentFragmentation" type="float">fi.ExtentFragmentation</property>		
		</version>
		<version min_major='9' >
			<property name="IndexID" type="int" hidden='true'>fi.index_id</property>
			<property name="TableID" type="int" hidden='true'>fi.object_id</property>
			<property name="Depth" type="tinyint">fi.index_depth</property>
			<property name="Pages" type="bigint">fi.page_count</property>
			<property name="Rows" type="bigint">fi.record_count</property>
			<property name="MinimumRecordSize" type="int">fi.min_record_size_in_bytes</property>
			<property name="MaximumRecordSize" type="int">fi.max_record_size_in_bytes</property>
			<property name="AverageRecordSize" type="float">fi.avg_record_size_in_bytes</property>
			<property name="ForwardedRecords" type="bigint">fi.forwarded_record_count</property>
			<property name="AveragePageDensity" type="float">fi.avg_page_space_used_in_percent</property>
			<property name="IndexType" type="nvarchar" size="30">fi.index_type_desc</property>
			<property name="PartitionNumber" type="int">fi.partition_number</property>
			<property name="GhostRows" type="bigint">fi.ghost_record_count</property>
			<property name="VersionGhostRows" type="bigint">fi.version_ghost_record_count</property>
			<property name="AverageFragmentation" type="float">fi.avg_fragmentation_in_percent</property>
		</version>
	</properties>
</EnumObject>
)<?xml version="1.0" ?>
<EnumObject type="FragmentationFast" impl_type="SqlObject" min_major='7' >
	<settings>
		
		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS, FAST'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>
	
	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' >
			<property name="FragmentationLevel" type="sysname" hidden='true'>LIMITED</property>
		</version>
	</properties>
</EnumObject>
!<?xml version="1.0" ?>
<EnumObject type="FragmentationSampled" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>
	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' >
			<property name="FragmentationLevel" type="sysname" hidden='true'>SAMPLED</property>
		</version>
	</properties>
</EnumObject>

!<?xml version="1.0" ?>
<EnumObject type="FragmentationDetailed" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>
	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' >
			<property name="FragmentationLevel" type="sysname" hidden='true'>DETAILED</property>
		</version>
	</properties>
</EnumObject>
?<?xml version="1.0" ?>
<EnumObject type="inc_urn_message" impl_type="SqlObject" min_major='7' >
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{1}[@ID=' + cast ({2} as nvarchar(20)) + ' and @Language=' + quotename({3},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
				<link_field type='local' field="ID" />
				<link_field type='local' field="Language" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7' cloud_min_major='10'>
    <settings>
        <version min_major='9' >
            <property_link fields = '#MirroringRedoQueueMaxSize#MirroringTimeout#'
					left_join='sys.database_mirroring AS dmi'>dmi.database_id = dtb.database_id</property_link>
        </version>
        <version min_major='8' max_major='8'>
            <property_link fields='#DatabaseOwnershipChaining#' join='master.dbo.spt_values AS v'>v.name = 'db chaining'</property_link>
        </version>
        <!-- add this empty prefix to force inclusion of the sysdatabases table from the parent-->
        <prefix>
            <link_multiple no='1' expression="">
                <link_field type='parent' field="ID" />
            </link_multiple>
        </prefix>
        <version min_major='8' max_major='8'>
            <post_process fields = '#DatabaseOwnershipChaining#'
					class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
					triggered_fields='#DatabaseNameOptions#'/>
        </version>
    </settings>
    <properties>
        <version min_major='7' max_major='8'>
            <property name="AutoClose" type="bit" cast='true'>dtb.status &amp; 1</property>
            <property name="AutoShrink" type="bit" cast='true'>dtb.status &amp; 4194304</property>
        </version>

      <version min_major='9' cloud_min_major='10'>
        <property name="AnsiNullDefault" type="bit">dtb.is_ansi_null_default_on</property>
        <property name="AnsiNullsEnabled" type="bit">dtb.is_ansi_nulls_on</property>
        <property name="AnsiPaddingEnabled" type="bit">dtb.is_ansi_padding_on</property>
        <property name="AnsiWarningsEnabled" type="bit">dtb.is_ansi_warnings_on</property>
        <property name="ArithmeticAbortEnabled" type="bit">dtb.is_arithabort_on</property>
        <property name="AutoClose" type="bit">dtb.is_auto_close_on</property>
        <property name="AutoCreateStatistics" type="bit">dtb.is_auto_create_stats_on</property>
        <property name="AutoShrink" type="bit">dtb.is_auto_shrink_on</property>
        <property name="AutoUpdateStatistics" type="bit">dtb.is_auto_update_stats_on</property>
        <property name="CloseCursorsOnCommitEnabled" type="bit">dtb.is_cursor_close_on_commit_on</property>
        <property name="ConcatenateNullYieldsNull" type="bit">dtb.is_concat_null_yields_null_on</property>
        <property name="NumericRoundAbortEnabled" type="bit">dtb.is_numeric_roundabort_on</property>
        <property name="QuotedIdentifiersEnabled" type="bit">dtb.is_quoted_identifier_on</property>
        <property name="ReadOnly" type="bit">dtb.is_read_only</property>
        <property name="RecursiveTriggersEnabled" type="bit">dtb.is_recursive_triggers_on</property>
        <property name="LocalCursorsDefault" type="bit">dtb.is_local_cursor_default</property>
        <property name="PageVerify" type="tinyint" report_type = 'PageVerify'>dtb.page_verify_option</property>
        <property name="RecoveryModel" type="int" report_type="RecoveryModel">dtb.recovery_model</property>
        <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess'>dtb.user_access</property>
        <property name="SnapshotIsolationState" type="tinyint" report_type="SnapshotIsolationState" access="Read">dtb.snapshot_isolation_state</property>
        <property name="DatabaseOwnershipChaining" type="bit">dtb.is_db_chaining_on</property>
        <property name="AutoUpdateStatisticsAsync" type="bit">dtb.is_auto_update_stats_async_on</property>
        <property name="DateCorrelationOptimization" type="bit">dtb.is_date_correlation_on</property>
        <property name="BrokerEnabled" type="bit">dtb.is_broker_enabled</property>
        <property name="Trustworthy" type="bit">dtb.is_trustworthy_on</property>
        <property name="IsParameterizationForced" type="bit">dtb.is_parameterization_forced</property>
      </version>
      <version min_major='9'>
        <property name="MirroringRedoQueueMaxSize" type="int" access="read">ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0)</property>
        <property name="MirroringTimeout" type="int">ISNULL(dmi.mirroring_connection_timeout,0)</property>
      </version>

        <version min_major='8' max_major='8'>
            <property name="AnsiNullDefault" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiPaddingEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled')</property>
            <property name="ArithmeticAbortEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled')</property>
            <property name="AutoCreateStatistics" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatistics" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="ConcatenateNullYieldsNull" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsNullConcat')</property>
            <property name="NumericRoundAbortEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="ReadOnly" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsReadOnly')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="PageVerify" type="tinyint" report_type = 'PageVerify'>CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END</property>
            <property name="RecoveryModel" type="int"
				report_type="RecoveryModel">CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END</property>
            <property name="UserAccess" type="int"
				report_type = 'DatabaseUserAccess'>CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END</property>
            <property name="DatabaseOwnershipChaining" type="bit" cast='true' expensive='true'>
                case when (dtb.status2 &amp; v.number != 0) then 1 else 0 end
            </property>
            <property name="DatabaseNameOptions" type="sysname" hidden='true'>dtb.name</property>
        </version>

        <version min_major='7' max_major='7'>
            <property name="AnsiNullDefault" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiWarngingsEnabled')</property>
            <property name="AutoCreateStatistics" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatistics" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="RecoveryModel" type="int" report_type="RecoveryModel">
                CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsTruncLog') THEN CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN NULL ELSE 3/*SIMPLE=trunc. log on chkpt.*/ END
                WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN 2 /*BULK_LOGGED*/
                ELSE 1 END /*FULL*/
            </property>
            <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess'>
                CASE DATABASEPROPERTY(dtb.name, 'IsSingleUser') WHEN 1 THEN 1
                ELSE (CASE DATABASEPROPERTY(dtb.name,'IsDboOnly') WHEN 0 THEN 0/*MULTI_USER*/ ELSE 1 END)
                END
            </property>
        </version>
    </properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'>param.number = &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property_link table='sys.all_parameters' alias='param'/>
		</version>
	</settings>
	<properties>
		<include file='parameter.xml'/>
			
		<version min_major='7' max_major='8'>
			<property name="IsOutputParameter" type="bit"
			cast='true' mode="design">CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="IsOutputParameter" type="bit" mode="design">param.is_output</property>
			<property name="IsCursorParameter" type="bit" mode="design">param.is_cursor_ref</property>
		</version>
		<version min_major='10' cloud_min_major='10'>
			<property name="IsReadOnly" type="bit" mode="design">param.is_readonly</property>
		</version>
    
		<property name="Number" type="int" hidden='true'>1</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_urn_soapmethod" impl_type="SqlObject" min_major='7' >
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{1}[@Name=' + quotename(cast(cast({2} as varbinary(256)) as sysname),'''') collate database_default + ' and @Namespace=' + quotename({3},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
				<link_field type='local' field="Name" />
				<link_field type='local' field="Namespace" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>

M<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='msdb.dbo.sysmaintplan_plans' alias='s'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>s.name</property>
		<property name='ID' type='uniqueidentifier'>s.id</property>
		<property name='Description' type='nvarchar' size = '1024'>s.description</property>
		<property name='CreateDate' type='datetime'>s.create_date</property>
		<property name='Owner' type='sysname'>s.owner</property>
		<property name='VersionMajor' type='int'>s.version_major</property>
		<property name='VersionMinor' type='int'>s.version_minor</property>
		<property name='VersionBuild' type='int'>s.version_build</property>
		<property name='VersionComments' type='nvarchar' size = '1024'>s.version_comments</property>
		<!-- Yukon added the from_msx column in SP2. -->
		<version  min_major='9' max_major='9' max_minor='0' max_build='2999'>
			<property name='FromMSX' type='bit'>0</property>
			<property name='HasTargets' type='bit'>0</property>
		</version>
		<version  min_major='9' min_build='3000'>
			<property name='FromMSX' type='bit'>s.from_msx</property>
			<property name='HasTargets' type='bit'>s.has_targets</property>
		</version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_subplans' alias='sp'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>sp.subplan_name</property>
		<property name='ID' type='uniqueidentifier'>sp.subplan_id</property>
		<property name='Description' type='nvarchar' size = '512'>sp.subplan_description</property>
		<property name='JobID' type='uniqueidentifier'>sp.job_id</property>
		<!-- Yukon added the msx_job_id column in SP2. -->
		<version  min_major='9' max_major='9' max_minor='0' max_build='2999'>
			<property name='MsxJobID' type='uniqueidentifier'>null</property>
			<property name='FromMSX' type='bit'>0</property>
		</version>
		<version  min_major='9' min_build='3000'>
			<property name='MsxJobID' type='uniqueidentifier'>sp.msx_job_id</property>
			<property name='FromMSX' type='bit'>sp.msx_plan</property>
		</version>
		<property name='ScheduleID' type='int'>sp.schedule_id</property>

		<property name='ParentID' type='uniqueidentifier' hidden='true'>sp.plan_id</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_log' alias='spl'/>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ID=''' + cast ({1} as nvarchar(36)) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ID" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name='ID' type='uniqueidentifier'>spl.task_detail_id</property>
		<property name='StartTime' type='datetime'>spl.start_time</property>
		<property name='EndTime' type='datetime'>spl.end_time</property>	
		<property name='Succeeded' type='bit'>spl.succeeded</property>		

		<property name='ParentID' type='uniqueidentifier' hidden='true'>spl.subplan_id</property>
	</properties>
</EnumObject>
 <?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_logdetail' alias='ld'/>
	</settings>
	<properties>
		<property name='Line1' type='nvarchar' size = '256'>ld.line1</property>
		<property name='Line2' type='nvarchar' size = '256'>ld.line2</property>		
		<property name='Line3' type='nvarchar' size = '256'>ld.line3</property>
		<property name='Line4' type='nvarchar' size = '256'>ld.line4</property>		
		<property name='Line5' type='nvarchar' size = '256'>ld.line5</property>
		<property name='ServerName' type='sysname'>ld.server_name</property>	
		<property name='StartTime' type='datetime'>ld.start_time</property>
		<property name='EndTime' type='datetime'>ld.end_time</property>	
		<property name='ErrorNo' type='int'>ld.error_number</property>	
		<property name='ErrorMessage' type='nvarchar' size = 'max'>ld.error_message</property>
		<property name='Command' type='nvarchar' size = 'max'>ld.command</property>
		<property name='Succeeded' type='bit'>ld.succeeded</property>			

		<property name='ParentID' type='uniqueidentifier' hidden='true'>ld.task_detail_id</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='Sysdbmaintplans' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='msdb.dbo.sysdbmaintplans' alias='s'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='ID' type='uniqueidentifier'>s.plan_id</property>
		<property name='Name' type='sysname'>s.plan_name</property>
		<property name='DateCreated' type='datetime'>s.date_created</property>
		<property name='Owner' type='sysname'>s.owner</property>
		<property name='MaxHistoryRows' type='int'>s.max_history_rows</property>
		<property name='RemoteHistoryServer' type='sysname'>s.remote_history_server</property>
		<property name='MaxRemoteHistoryRows' type='int'>s.max_remote_history_rows</property>
		<version min_major='8' >
			<property name='LogShipping' type='bit'>s.log_shipping</property>
		</version>
	</properties>
</EnumObject>
n<?xml version='1.0' ?>
<EnumObject type='RemoteMaintenancePlan' impl_type='SqlObject' min_major='9'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name='Name' type='sysname'>s.plan_name</property>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='RemoteSubPlan' impl_type='SqlObject' min_major='9'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name='PlanName' type='sysname'>s.plan_name</property>
    <property name='SubPlanName' type='sysname'>s.subplan_name</property>
    <property name='ServerName' type='sysname'>s.source_server_name</property>
  </properties>
</EnumObject>k<?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='3' expression="{0} + '/{2}[@ID=''' + cast ({1} as nvarchar(36)) + ''']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="ID" />
        <link_field field="NType" />
      </link_multiple>
    </property>

    <property name='PlanName' type='sysname'>s.plan_name</property>
    <property name='SubPlanName' type='sysname'>s.subplan_name</property>
    <property name='ServerName' type='sysname'>s.source_server_name</property>
    <property name='ID' type='uniqueidentifier'>s.task_detail_id</property>
    <property name='StartTime' type='datetime'>s.start_time</property>
    <property name='EndTime' type='datetime'>s.end_time</property>
    <property name='Succeeded' type='bit'>s.succeeded</property>
  </properties>
</EnumObject>=<?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table='msdb.dbo.sysmaintplan_logdetail' alias='ld'/>
  </settings>
  <properties>
    <property name='Line1' type='nvarchar' size = '256'>ld.line1</property>
    <property name='Line2' type='nvarchar' size = '256'>ld.line2</property>
    <property name='Line3' type='nvarchar' size = '256'>ld.line3</property>
    <property name='Line4' type='nvarchar' size = '256'>ld.line4</property>
    <property name='Line5' type='nvarchar' size = '256'>ld.line5</property>
    <property name='ServerName' type='sysname'>ld.server_name</property>
    <property name='StartTime' type='datetime'>ld.start_time</property>
    <property name='EndTime' type='datetime'>ld.end_time</property>
    <property name='ErrorNo' type='int'>ld.error_number</property>
    <property name='ErrorMessage' type='nvarchar' size = 'max'>ld.error_message</property>
    <property name='Command' type='nvarchar' size = 'max'>ld.command</property>
    <property name='Succeeded' type='bit'>ld.succeeded</property>

    <property name='ParentID' type='uniqueidentifier' hidden='true'>ld.task_detail_id</property>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='Logmarkhistory' impl_type='SqlObject' min_major='8' >
	<settings>
		<property_link table='msdb.dbo.logmarkhistory' alias='l'/>
	</settings>
	<properties>
		<property name='DatabaseName' type='nvarchar' size = '128'>l.database_name</property>
		<property name='MarkName' type='nvarchar' size = '128'>l.mark_name</property>
		<property name='Description' type='nvarchar' size = '255'>l.description</property>
		<property name='UserName' type='nvarchar' size = '128'>l.user_name</property>
		<property name='LogSequenceNumber' type='numeric'>l.lsn</property>
		<property name='CommitTime ' type='datetime'>l.mark_time</property>
	</properties>
</EnumObject>
=<?xml version="1.0" ?>
<EnumObject type="ProxyAccount" impl_type="SqlObject" min_major='9' >
    <settings>
            <property_link table='#tmp_sp_help_proxy' alias='tshp'/>
            <property_link fields='#CredentialName#' join='sys.credentials' alias='sc'>sc.credential_id = tshp.credential_id</property_link>
			<prefix>
create table #tmp_sp_help_proxy(proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null,  credential_id int null, credential_identity_exists int null)

insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) exec msdb.dbo.sp_help_proxy
			</prefix>
			<postfix>
drop table #tmp_sp_help_proxy
			</postfix>
    </settings>
	<properties>
		<include file='inc_urn.xml' />
        <property name='Name' type='sysname'>tshp.name</property>
        <property name='ID' type='int'>tshp.proxy_id</property>
        <property name='IsEnabled' type='bit' cast='true'>tshp.enabled</property>			
        <property name='Description' type='nvarchar' size = '1024'>ISNULL(tshp.description,N'')</property>
        <property name="CredentialID" type="int" access='Read'>tshp.credential_id</property>
        <property name="CredentialName" type="nvarchar" size='300'>ISNULL(sc.name,N'')</property>
        <property name="CredentialIdentity" type="nvarchar" size='128' access='Read'>ISNULL(tshp.credential_identity,N'')</property>
	</properties>
</EnumObject>
U	<?xml version="1.0" ?>
<EnumObject type="AgentSubSystem" impl_type="SqlObject" min_major='9' >
        <settings>
				<parent_link>
					<link parent="ID" local="ProxyID" />
				</parent_link>
        
                <property_link table='#tmp_sp_help_proxy_subsystem' alias='tsepfs'/>
				<prefix>
create table #tmp_sp_enum_sqlagent_subsystems
(subsystem nvarchar(max) null, description nvarchar(max) null, subsystem_dll nvarchar(max) null, agent_exe nvarchar(max) null, start_entry_point nvarchar(max) null, event_entry_point nvarchar(max) null, stop_entry_point nvarchar(max) null, max_worker_threads int null, subsystem_id int null)
create table #tmp_sp_help_proxy_subsystem(subsystem nvarchar(max) null, proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null,  credential_id int null, credential_identity_exists int null)

insert into #tmp_sp_enum_sqlagent_subsystems(subsystem, description, subsystem_dll, agent_exe, start_entry_point, event_entry_point, stop_entry_point, max_worker_threads, subsystem_id)
		exec msdb.dbo.sp_enum_sqlagent_subsystems
		
declare @subsystem nvarchar(max)
declare @login sysname
set @login = suser_sname()
		
declare crs insensitive cursor 
	for ( select subsystem from #tmp_sp_enum_sqlagent_subsystems ) 
for read only 
open crs 
fetch crs into @subsystem
while @@fetch_status &gt;= 0 
begin 
	if 'TSQL' != @subsystem
	begin
		insert into #tmp_sp_help_proxy_subsystem(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) 
			exec msdb.dbo.sp_help_proxy @subsystem_name = @subsystem, @name = @login
		
		update #tmp_sp_help_proxy_subsystem set subsystem = @subsystem where subsystem is null
	end		
	fetch crs into @subsystem
end 
close crs
deallocate crs
               </prefix>
                <postfix>
drop table #tmp_sp_help_proxy_subsystem
                </postfix>
 				<postfix>
drop table #tmp_sp_enum_sqlagent_subsystems
				</postfix>
        </settings>
        <properties>
			<include file='inc_urn.xml' />
            <property name='Name' type='sysname'>tsepfs.subsystem</property>
            <property name='ProxyID' type='int' hidden='true'>tsepfs.proxy_id</property>
        </properties>	
</EnumObject>
^<?xml version="1.0" ?>
<EnumObject type="ProxyAccountPrincipal " impl_type="SqlObject" min_major='9' >
    <settings>
    	<version min_major='9' >
                <parent_link>
                    <link parent="ID" local="ParentID" />
                </parent_link>

                <property_link table='#tmp_sp_enum_login_for_proxy' alias='spl'/>
                <prefix>
   create table #tmp_sp_enum_login_for_proxy(proxy_id int null, proxy_name nvarchar(128), flags int null, name nvarchar(128) null, sid varbinary(85) null, principal_id int null )
   insert into #tmp_sp_enum_login_for_proxy(proxy_id, proxy_name, flags, name, sid, principal_id) exec msdb.dbo.sp_enum_login_for_proxy
   delete from #tmp_sp_enum_login_for_proxy where name is NULL
				</prefix>
                <postfix>
    drop table #tmp_sp_enum_login_for_proxy
                </postfix>
        </version>
    </settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>ProxyAccountPrincipal</property>
        <version min_major='9' >
    		<property name="Name" type="sysname">spl.name</property>
    		<property name="Flag" type="int">spl.flags</property>
            <property name="ParentID" type="int" hidden='true'>spl.proxy_id</property>
        </version>
	</properties>
</EnumObject>


<?xml version='1.0' ?>
<EnumObject type='Certificates' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.certificates' alias='c'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int'>c.certificate_id</property>
		<property name='Owner' type='sysname'>user_name(c.principal_id)</property>
		<property name='PrivateKeyEncryptionType' type='int' report_type = 'PrivateKeyEncryptionType' 
			access='read'>case c.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 end</property>
		<property name='Issuer' type='nvarchar' size = '256' access='read'>c.issuer_name</property>
		<property name='Serial' type='nvarchar' size = '64' access='read'>c.cert_serial_number</property>
		<property name='Sid' type='varbinary' size = '128' access='read'>c.sid</property>
		<property name='Subject' type='nvarchar' size = '4000' read_only_after_creation="true">c.subject</property>
		<property name='ExpirationDate' type='datetime' read_only_after_creation="true">c.expiry_date</property>
		<property name='StartDate' type='datetime' read_only_after_creation="true">c.start_date</property>
		<property name='Thumbprint' type='varbinary' size = '32' access='read'>c.thumbprint</property>
		<property name='ActiveForServiceBrokerDialog' type='bit'>c.is_active_for_begin_dialog</property>		

		<!-- not available
		<property name='CreateDate' type='datetime'>c.create_date</property>
		<property name='DateLastModified' type='datetime'>c.modify_date</property>
		-->
		
		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>25</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10' >
      <include file='inc_policy_health_state.xml'/>
		<property name='LastBackupDate' type='datetime' access='read'>c.pvt_key_last_backup_date</property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OLEDBProvider" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table="#OLEDBProv" alias="op" />
		<property_link fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'
			join="#oledbprop" alias='o'>o.provider_name=op.Name</property_link>
			<prefix>
create table #OLEDBProv (id int identity(1,1), Name sysname NOT NULL, ParseName sysname NOT NULL,Description sysname NOT NULL )
			</prefix>
			
		<version min_major='7' max_major='7'>
			<prefix>
insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.xp_enum_oledb_providers
			</prefix>
		</version>
		<version min_major='8' >
			<prefix>
insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.sp_enum_oledb_providers
			</prefix>
		</version>
		<prefix>
			delete from #OLEDBProv where exists ( select 1 from #OLEDBProv oprov where oprov.Name = #OLEDBProv.Name and oprov.id &lt; #OLEDBProv.id )
		</prefix>
		<version min_major='7' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit,
				level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) 
		
declare name_cursor cursor local fast_forward
	FOR (select Name from  #OLEDBProv)
open name_cursor 
DECLARE @providername sysname 
FETCH NEXT FROM name_cursor INTO @providername 
WHILE (@@FETCH_STATUS &lt;&gt; -1) 
BEGIN 
	IF (@@FETCH_STATUS &lt;&gt; -2) 
	BEGIN 
		SELECT @providername = RTRIM(@providername) 

		declare @regpath nvarchar(255)
		set @regpath = N'SOFTWARE\Microsoft\MSSQLServer\Providers\' + @providername
		
		declare @allow_in_process int
		declare @disallow_adhoc_access int
		declare @dynamic_parameters int
		declare @index_as_access_path int
		declare @level_zero_only int
		declare @nested_queries int
		declare @non_transacted_updates int
		declare @sql_server_like int

			</prefix>
		</version>
		<version min_major='7' max_major='7'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT
			</prefix>
		</version>
		<version min_major='8' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		insert #oledbprop (allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, 
			nested_queries, non_transacted_updates, sql_server_like, provider_name) 
		select IsNull(@allow_in_process, 0), IsNull(@disallow_adhoc_access, 0), IsNull(@dynamic_parameters, 0), IsNull(@index_as_access_path, 0), IsNull(@level_zero_only, 0), 
			IsNull(@nested_queries, 0), IsNull(@non_transacted_updates, 0), IsNull(@sql_server_like, 0), @providername
	END 
	FETCH NEXT FROM name_cursor INTO @providername 
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
			</prefix>
		</version>
		<version min_major='9' >
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit,
				level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) 
		
declare name_cursor cursor local fast_forward
	FOR (select Name from  #OLEDBProv)
open name_cursor 
DECLARE @providername sysname 
FETCH NEXT FROM name_cursor INTO @providername 
WHILE (@@FETCH_STATUS &lt;&gt; -1) 
BEGIN 
	IF (@@FETCH_STATUS &lt;&gt; -2) 
	BEGIN 
		SELECT @providername = RTRIM(@providername) 

		insert #oledbprop (provider_name, allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, 
			nested_queries, non_transacted_updates, sql_server_like) 
		exec master.dbo.sp_MSset_oledb_prop @providername
	END 
	FETCH NEXT FROM name_cursor INTO @providername 
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
		</prefix>
		</version>
		<postfix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
drop table #oledbprop
		</postfix>
		<postfix> drop table #OLEDBProv</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" access="Read">op.Name</property>
		<property name="Description" type="sysname" access="Read">op.Description</property>
		<property name='AllowInProcess' type='bit'>o.allow_in_process</property>
		<property name='DisallowAdHocAccess' type='bit'>o.disallow_adhoc_access</property>
		<property name='DynamicParameters' type='bit'>o.dynamic_parameters</property>
		<property name='IndexAsAccessPath' type='bit'>o.index_as_access_path</property>
		<property name='LevelZeroOnly' type='bit'>o.level_zero_only</property>
		<property name='NestedQueries' type='bit'>o.nested_queries</property>
		<property name='NonTransactedUpdates' type='bit'>o.non_transacted_updates</property>
		<property name='SqlServerLike' type='bit'>o.sql_server_like</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='9' >
	<settings>
		<request_parent_select>
			<field name='ID' />
		</request_parent_select>
	
		<property_link table="#fulltext_log_tmp er" />
		<prefix>
			<link_multiple no='1' expression="
create table #fulltext_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int, ctlgid int null)
declare @ctlgid int 
declare @dbid int 
set @dbid = db_id()
declare crs_ctlg cursor local fast_forward
	for({0})
for read only 
open crs_ctlg
fetch next from crs_ctlg into @ctlgid
while 0 = @@fetch_status
begin
	insert #fulltext_log_tmp (ArchiveNo, CreateDate, Size) exec master.dbo.xp_enumerrorlogs 3, @dbid, @ctlgid
	update #fulltext_log_tmp set ctlgid = @ctlgid where ctlgid is null
	fetch next from crs_ctlg into @ctlgid
end
close crs_ctlg
deallocate crs_ctlg">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #fulltext_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name="Name" type="sysname" cast='true' access='read'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int" access='read'>er.ArchiveNo</property>
		<property name="CreateDate" type="datetime" access='read'>CONVERT(datetime, er.CreateDate, 101)</property>
		<property name="Size" type="int" access='read'>er.Size</property>
		
		<property name="CatalogId" type="int" hidden='true'>er.ctlgid</property>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
			<link parent='CatalogId' local='CatalogId' />
		</parent_link>
		<request_parent_select>
			<field name='ArchiveNo' />
			<field name='CatalogId' />
		</request_parent_select>
		<property_link table="#err_fulltext_text_tmp ert" />
        <prefix>
            create table #err_fulltext_text_tmp(Text nvarchar(4000), ArchiveNo int null, ctlgid int null, LogDate datetime null, ProcessInfo nvarchar(100) null)
        </prefix>
        <version min_major="7" max_major="8">
            <prefix>
                declare @text_offset int
                declare @process_info_length int

                set @text_offset = 34
                set @process_info_length = 10
            </prefix>
            <prefix>
                <link_multiple no='1' expression="
create table #err_fulltext_text_tmp2(id int IDENTITY(0, 1), Text nvarchar(max), ContinuationRow bit, ArchiveNo int null, ctlgid int null)
declare @ArchiveNo int
declare @cont_row int
set @dbid = db_id()
declare crs cursor  local fast_forward
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo, @ctlgid
while @@fetch_status &gt;= 0 
begin 
		insert #err_fulltext_text_tmp2 (Text, ContinuationRow) exec master.dbo.xp_readerrorlog @ArchiveNo, 3, @dbid, @ctlgid
		update #err_fulltext_text_tmp2 set ArchiveNo = @ArchiveNo, ctlgid = @ctlgid where ctlgid is null
		fetch crs into @ArchiveNo, @ctlgid
end 
close crs
deallocate crs

declare @off int
select @off = 1

while exists ( select ContinuationRow from #err_fulltext_text_tmp2 where ContinuationRow = 1 )
begin
	update #err_fulltext_text_tmp2 set Text = Text + 
		isnull((select t2.Text from #err_fulltext_text_tmp2 t2 where t2.id = #err_fulltext_text_tmp2.id + @off and t2.ContinuationRow = 1), '') where ContinuationRow = 0
	delete from #err_fulltext_text_tmp2 where ContinuationRow = 1 and @off &gt;= 
		id - ( select  max(t2.id) from #err_fulltext_text_tmp2 t2 where t2.ContinuationRow = 0 and t2.id &lt; #err_fulltext_text_tmp2.id)
	set @off = @off + 1
end
	
insert #err_fulltext_text_tmp 
	select 
		Text = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: remove date/spid part */ SUBSTRING(Text, @text_offset, 4000) else /*non structured row*/ Text end,
		ArchiveNo, 
		ctlgid, 
		LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get date part */ CONVERT(datetime, LEFT(Text, 23), 121) else /*non structured row*/ null end,
		ProcessInfo = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get spid part */ rtrim(SUBSTRING(Text, 24, @process_info_length)) else /*non structured row*/ null end
	from #err_fulltext_text_tmp2 where ContinuationRow = 0
    
drop table #err_fulltext_text_tmp2">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major="9" >
            <prefix>
                <link_multiple no='1' expression="
declare @ArchiveNo int
declare @cont_row int
set @dbid = db_id()
declare crs cursor  local fast_forward
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo, @ctlgid
while @@fetch_status &gt;= 0 
begin 
		insert #err_fulltext_text_tmp (LogDate, ProcessInfo, Text) exec master.dbo.xp_readerrorlog @ArchiveNo, 3, @dbid, @ctlgid
		update #err_fulltext_text_tmp set ArchiveNo = @ArchiveNo, ctlgid = @ctlgid where ctlgid is null
		fetch crs into @ArchiveNo, @ctlgid
end 
close crs
deallocate crs
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <postfix>
drop table #err_fulltext_text_tmp
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ProcessInfo" type="nvarchar" size = '100'>ert.ProcessInfo</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
		<property name="CatalogId" type="int" hidden='true'>ert.ctlgid</property>		
	</properties>
</EnumObject>
L<?xml version='1.0' ?>
<EnumObject type='DatabaseMirroringWitnesses' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.database_mirroring_witnesses' alias='dmw'/>
	</settings>
	<properties>
		<property name='Database' type='sysname'>dmw.database_name</property>
		<property name='PrincipalServer' type='sysname'>dmw.principal_server_name</property>
		<property name='MirrorServer' type='sysname'>dmw.mirror_server_name</property>
		<property name='MirroringSafetyLevel' type='tinyint'>dmw.safety_level</property>
		<property name='SafetySequenceNumber' type='int'>dmw.safety_sequence_number</property>
		<property name='RoleSequenceNumber' type='int'>dmw.role_sequence_number</property>
		<property name='MirroringID' type='uniqueidentifier'>dmw.mirroring_guid</property>
		<property name='BackupFamilyID' type='uniqueidentifier'>dmw.family_guid</property>
		<property name='IsSuspended' type='bit'>dmw.is_suspended</property>
		<property name='SuspendedSequenceNumber' type='int'>dmw.is_suspended_sequence_number</property>
	</properties>
</EnumObject>
4<?xml version="1.0" ?>
<EnumObject type="XmlSchemaCollection" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table="sys.xml_schema_collections AS xsc">
				xsc.schema_id   &lt;&gt; 4</property_link>
		<property_link fields='#Schema#Text#' 
				join='sys.schemas AS sch'>xsc.schema_id = sch.schema_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<property name="Name" type="sysname">xsc.name</property>			
		<property name="ID" type="int" access='Read'>xsc.xml_collection_id</property>
		<property name="Schema" type="sysname">sch.name</property>
		<property name="CreateDate" type="datetime" access='Read'>xsc.create_date</property>
		<property name="DateLastModified" type="datetime" access='Read'>xsc.modify_date</property>
		<property name="Text" type="xml" read_only_after_creation="true">XML_SCHEMA_NAMESPACE(sch.Name, xsc.name)</property>
		
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>10</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>xsc.xml_collection_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>

		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="XmlNamespace" impl_type="SqlObject" min_major='9' >
	<settings >
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table="sys.xml_schema_namespaces AS xn" />
		<property_link fields='#Text#' 
				join='sys.xml_schema_collections AS xsc2'>xsc2.xml_collection_id = xn.xml_collection_id</property_link>
		<property_link fields='#Text#' 
				join='sys.schemas AS sch2'>xsc.schema_id = sch2.schema_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_collate_default.xml' />
		<property name="Name" type="sysname">xn.name</property>			
		<property name="ID" type="int" access='Read'>xn.xml_namespace_id</property>
		<property name="Text" type="xml">XML_SCHEMA_NAMESPACE(sch2.Name, xsc2.name, xn.name)</property>
		
		<property name="ParentID" type="int" hidden='true'>xn.xml_collection_id</property>
		
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="XmlType" impl_type="SqlObject" min_major='9' >
	<settings >
		<parent_link>
			<link parent="ID" local="NamespaceID" />
		</parent_link>
		<property_link table="sys.xml_schema_components AS comp" />
	</settings>
	<properties>
		<include file='inc_urn_collate_default.xml' />
		<property name="Name" type="sysname">comp.name</property>			
		<property name="ID" type="int" access='Read'>comp.xml_component_id</property>
		<property name="NamespaceID" type="int" access='Read'>comp.xml_namespace_id</property>
		<property name="IsQualified" type="bit" cast='true' access='Read'>comp.is_qualified</property>
		<property name="XmlTypeKind" type="int" report_type="XmlTypeKind" access='Read'>(case comp.kind
																		when 'N' then 1 
																		when 'Z' then 2 
																		when 'P' then 3 
																		when 'S' then 4 
																		when 'L' then 5 
																		when 'U' then 6 
																		when 'C' then 7 
																		when 'K' then 8 
																		when 'E' then 9 
																		when 'M' then 10 
																		when 'W' then 11 
																		when 'A' then 12 
																		when 'G' then 13 
																		when 'V' then 14 
																		else 1 end) </property>
		<property name="Derivation" type="int" report_type="XmlTypeDerivation" access='Read'>(case comp.derivation when 'N' then 1 when 'X' then 2 when 'R' then 3 when 'S' then 4 else 1 end)</property>
		<property name="BaseComponentId" type="int" access='Read'>comp.base_xml_component_id</property>
		<property name="ScopingComponentId" type="int" access='Read'>comp.scoping_xml_component_id</property>
		
		
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="inc_urn" impl_type="SqlObject" min_major='7' >
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename(cast(cast({1} as varbinary(256)) as sysname),'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Credential" impl_type="SqlObject" min_major='9' >
    <settings>
        <version min_major='9' >
            <property_link table='sys.credentials AS s' />
        </version>    
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers AS cp'>cp.provider_id = s.target_id</property_link>
		</version>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="Name" type="sysname">s.name</property>
        <property name="ID" type="int" access='Read'>s.credential_id</property>
        <property name="Identity" type="nvarchar" size='4000' access='ReadWrite'>s.credential_identity</property>
        <property name="CreateDate" type="datetime" access='Read'>s.create_date</property>
        <property name="DateLastModified" type="datetime" access='Read'>s.modify_date</property>
		<version min_major='10'>
			<property name="MappedClassType" type="nvarchar" size='60' report_type='MappedClassType'>CASE WHEN s.target_type = 'CRYPTOGRAPHIC PROVIDER' THEN 1 ELSE 0 END</property>
			<property name="ProviderName" type="sysname">ISNULL(cp.name, '')</property>
      <include file='inc_policy_health_state.xml'/>
    </version>
    </properties>
</EnumObject>j	<?xml version="1.0" ?>
<EnumObject type='CryptographicProvider' impl_type='SqlObject' min_major='10'>
	<settings>
		<property_link table='sys.cryptographic_providers' alias='c' />
		<property_link fields='#VersionString#SqlCryptographicVersionString#SymmetricKeySupported#SymmetricKeyExportable#SymmetricKeyImportable#SymmetricKeyPersistable#AsymmetricKeySupported#AsymmetricKeyExportable#AsymmetricKeyImportable#AsymmetricKeyPersistable#' join="sys.dm_cryptographic_provider_properties AS cp">cp.provider_id = c.provider_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int' access='Read'>c.provider_id</property>
		<property name='ProviderGuid' type='uniqueidentifier' access='Read'>c.guid</property>
		<property name='VersionString' type='sysname' access='Read'>cp.provider_version</property>
		<property name='DllPath' type='sysname'>c.dll_path</property>
		<property name='Enabled' type='bit'>c.is_enabled</property>
		<property name='SqlCryptographicVersionString' type='sysname' access='Read'>cp.sqlcrypt_version</property>
		<property name='AuthenticationType' type='tinyint' report_type='ProviderAuthenticationType' access='Read'>case cp.authentication_type when 'WINDOWS' then 0 when 'BASIC' then 1 when 'OTHER' THEN 2 end</property>
		<property name='SymmetricKeySupported' type='bit' access='Read' cast='true'>cp.symmetric_key_support</property>
		<property name='SymmetricKeyExportable' type='bit' access='Read' cast='true'>cp.symmetric_key_export</property>
		<property name='SymmetricKeyImportable' type='bit' access='Read' cast='true'>cp.symmetric_key_import</property>
		<property name='SymmetricKeyPersistable' type='bit' access='Read' cast='true'>cp.symmetric_key_persistance</property>
		<property name='AsymmetricKeySupported' type='bit' access='Read' cast='true'>cp.asymmetric_key_support</property>
		<property name='AsymmetricKeyExportable' type='bit' access='Read' cast='true'>cp.asymmetric_key_export</property>
		<property name='AsymmetricKeyImportable' type='bit' access='Read' cast='true'>cp.asymmetric_key_import</property>
		<property name='AsymmetricKeyPersistable' type='bit' access='Read' cast='true'>cp.asymmetric_key_persistance</property>
              <include file='inc_policy_health_state.xml'/>
	</properties>
</EnumObject>
V	<?xml version="1.0" ?>
<EnumObject type="PlanGuide" impl_type="SqlObject" min_major='9' >
    <settings>
        <property_link table='sys.plan_guides AS pg' />
        <property_link fields = '#ScopeObjectName#ScopeSchemaName#' 
                left_join="sys.objects AS o">pg.scope_object_id = o.object_id</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="Name" type="sysname">pg.name</property>
        <property name="ID" type="int" access="Read">pg.plan_guide_id</property>
        <property name="Statement" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.query_text, N'')</property>
        <property name="ScopeType" type="tinyint" report_type="PlanGuideType" read_only_after_creation="true">pg.scope_type</property>
        <property name="ScopeObjectName" type="sysname" read_only_after_creation="true">ISNULL(o.name, N'')</property>
        <property name="ScopeSchemaName" type="sysname" read_only_after_creation="true">ISNULL(schema_name(o.schema_id), N'')</property>        
        <property name="IsDisabled" type="bit">pg.is_disabled</property>
        <property name="Parameters" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.parameters, N'')</property>
        <property name="Hints" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.hints, N'')</property>

        <!-- extended properties support -->
        <property name="ExtPropClass" type="int" hidden='true'>27</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>pg.plan_guide_id</property>
        <property name="ExtPropMinorID" type="int" hidden='true'>0</property>

        <version min_major='9' max_major='9'>
            <property name="ScopeBatch" type="nvarchar" size='max' read_only_after_creation="true">
                ISNULL((case when ((pg.scope_type = 2 and pg.scope_batch is null) or pg.scope_type = 3) then pg.query_text else pg.scope_batch
                end), N'')
            </property>
        </version>

        <version min_major='10'>
            <property name="ScopeBatch" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.scope_batch, N'')</property>
            <include file='inc_policy_health_state.xml'/>
        </version>
            
    </properties>
</EnumObject>
"<?xml version="1.0" ?>
<EnumObject type="MailProfile" impl_type="SqlObject" min_major='9' >
    <settings>
	<property_link table='#tmp_sysmail_help_profile' alias='tshp'/>
	<prefix>
create table #tmp_sysmail_help_profile(profile_id int, name nvarchar(128), description nvarchar(256) null)

insert into #tmp_sysmail_help_profile(profile_id, name, description) exec msdb.dbo.sysmail_help_profile_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_profile
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>tshp.name</property>
	<property name='ID' type='int'>tshp.profile_id</property>
	<property name='Description' type='nvarchar' size = '256'>ISNULL(tshp.description,N'')</property>
    </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailAccount" impl_type="SqlObject" min_major='9' >
    <settings>
	<property_link table='#tmp_sysmail_help_account' alias='tsha'/>
	<prefix>
create table #tmp_sysmail_help_account(account_id int, name nvarchar(128), description nvarchar(256) null, email_address nvarchar(128) null, display_name nvarchar(128) null, replyto_address nvarchar(128) null, servertype nvarchar(128), servername nvarchar(128), port int, username nvarchar(128), use_default_credentials bit, enable_ssl bit)

insert into #tmp_sysmail_help_account(account_id, name, description, email_address, display_name, replyto_address, servertype, servername, port, username, use_default_credentials, enable_ssl) exec msdb.dbo.sysmail_help_account_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_account
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>tsha.name</property>
	<property name='ID' type='int'>tsha.account_id</property>
	<property name='Description' type='nvarchar' size = '256'>ISNULL(tsha.description, N'')</property>
	<property name='EmailAddress' type='nvarchar' size = '128'>tsha.email_address</property>
	<property name='DisplayName' type='nvarchar' size = '128'>ISNULL(tsha.display_name, N'')</property>
	<property name='ReplyToAddress' type='nvarchar' size = '128'>ISNULL(tsha.replyto_address, N'')</property>
    </properties>
</EnumObject>
v<?xml version="1.0" ?>
<EnumObject type="ConfigurationValue" impl_type="SqlObject" min_major='9' >
    <settings>
	<property_link table='#tmp_sysmail_help_configure' alias='tshc'/>
	<prefix>
create table #tmp_sysmail_help_configure(paramname nvarchar(256), paramvalue nvarchar(256) null, description nvarchar(256) null)

insert into #tmp_sysmail_help_configure(paramname, paramvalue, description) exec msdb.dbo.sysmail_help_configure_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_configure
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='nvarchar' size = '256' access='Read'>tshc.paramname</property>
	<property name='Value' type='nvarchar' size = '256'>tshc.paramvalue</property>
	<property name='Description' type='nvarchar' size = '256'>tshc.description</property>
    </properties>
</EnumObject>
b<?xml version="1.0" ?>
<EnumObject type="Mail" impl_type="SqlObject" min_major='9' >
    <settings>
    </settings>
   <properties>
	<property name="Urn" type="nvarchar" size="600">
		<link_multiple no='1' expression="{0} + '/Mail'">
			<link_field type='parent' field="Urn" />
		</link_multiple>
	</property>
    </properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
    <version min_major='9' cloud_min_major='10'>
      <property_link fields = '#Owner#' left_join='sys.database_principals AS s{0}'>s{0}.principal_id = ISNULL({0}.principal_id, (OBJECTPROPERTY({0}.object_id, 'OwnerId')))</property_link>
    </version>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">{0}.name</property>
			<property name="ID" type="int" access='Read'>{0}.id</property>
			<property name="CreateDate" type="datetime" access='Read'>{0}.crdate</property>
			<property name="ParentID" type="int" hidden='true'>{0}.parent_obj</property>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>3</property>
			-->
			<!-- extended properties support -->
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{{0}}">
					<link_field type='filter' field="Name" default_value="null"/>
				</link_multiple>
			</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">{0}.name</property>
			<property name="ID" type="int" access='Read'>{0}.object_id</property>
			<property name="CreateDate" type="datetime" access='Read'>{0}.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>{0}.modify_date</property>
			<property name="ParentID" type="int" hidden='true'>{0}.parent_object_id</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <property name="ExtPropClass" type="int" hidden='true'>1</property>
    </version>
    
		<!-- extended properties support -->    
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>0</property>    

    <version min_major='9' cloud_min_major='10'>
      <property name="Owner" type="sysname" mode="design">ISNULL(s{0}.name, N'')</property>
      <property name="IsSchemaOwned" type="bit" access="Read" cast="true" mode="design">case when {0}.principal_id is null then 1 else 0 end</property>
     </version>
    </properties>
</EnumObject>
$
<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<property_link table='sys.triggers AS tr'>tr.parent_class = 0</property_link>
    <version min_major='9'>
      <property_link fields='#ExecutionContext#'
              left_join='sys.assembly_modules' alias='am2tr'>am2tr.object_id = tr.object_id</property_link>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <property_link fields='#AnsiNullsStatus#QuotedIdentifierStatus#'
              left_join='sys.sql_modules' alias='sqlmod'>sqlmod.object_id = tr.object_id</property_link>
    </version>
  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#ExtPropClass#ExtPropMajorID#ExtPropMinorID#"/>
		<include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#"/>
		<include file='mixed_module_link.xml' alias='tr' 
			for='#ExecutionContextUser#MethodName#ClassName#AssemblyName#Text#TextBody#BodyStartIndex#IsEncrypted#' />
		<include file='inc_ddl_trigger_event.xml' alias='tr' for='#DdlTriggerEvents#' ></include>
    <version min_major='9'>
      <property name="ExecutionContext" type="int" report_type="DatabaseDdlTriggerExecutionContext">
        <link_multiple no='1' expression="case when am2tr.object_id is null then {0} else case isnull(am2tr.execute_as_principal_id, -1) when -1 then 1 else 2 end end">
          <link_field type='local' field="SqlExecutionContextDdl" />
        </link_multiple>
      </property>
    </version>
    <version cloud_min_major='10'>
      <property name="ExecutionContext" type="int" report_type="DatabaseDdlTriggerExecutionContext">
        <link_multiple no='1' expression="{0}">
          <link_field type='local' field="SqlExecutionContextDdl" />
        </link_multiple>
      </property>
    </version>
		<property name="NotForReplication" type="bit" >tr.is_not_for_replication</property>
		<property name="IsEnabled" type="bit">~tr.is_disabled</property>
		<property name="ImplementationType" type="int" report_type="ImplementationType">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
    <property name="AnsiNullsStatus" type="bit" cast="true">sqlmod.uses_ansi_nulls</property>
    <property name="QuotedIdentifierStatus" type="bit" cast="true">sqlmod.uses_quoted_identifier</property>
		<version min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>       
  </properties>
</EnumObject>
N<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table='master.sys.server_triggers AS tr'>tr.parent_class = 100</property_link>
		<property_link fileds='#ClassName#MethodName#AssemblyName#ExecutionContextLogin#ExecutionContext#' 
						left_join='master.sys.server_assembly_modules AS mod'>mod.object_id = tr.object_id</property_link>
		<property_link fields='#ExecutionContext#' 
						left_join='sys.assembly_modules' alias='am2tr'>am2tr.object_id = tr.object_id</property_link>
		<property_link fields='#AnsiNullsStatus#QuotedIdentifierStatus#Definition#ExecutionContextLogin#ExecutionContext#IsEncrypted#' 
						left_join='sys.server_sql_modules' alias='ssmod'>ssmod.object_id = tr.object_id</property_link>
		<property_link fields='#ExecutionContextLogin#'
				left_join='sys.server_principals' alias='sprin'>sprin.principal_id = ISNULL(ssmod.execute_as_principal_id,mod.execute_as_principal_id)</property_link>
		<property_link fields='#AssemblyName#' 
						left_join='master.sys.assemblies AS asmbl'>asmbl.assembly_id = mod.assembly_id</property_link>
		<post_process fields='#DdlTriggerEvents#' triggered_fields = "#DdlTriggerEventsInternal#" class_name='Microsoft.SqlServer.Management.Smo.PostProcessServerDdlTriggerEvents'/>

		<post_process fields='#Text#BodyStartIndex#HasColumnSpecification#TableVariableName#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessBodyText'
						triggered_fields='#Definition#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#"/>
		<include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#" />

    <property name="IsEnabled" type="bit">~tr.is_disabled</property>
		<!-- Default to empty string for CLR triggers -->
		<property name="AssemblyName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE asmbl.name END</property>
		<property name="ClassName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_class END</property>
		<property name="MethodName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_method END</property>
		
		<property name="ImplementationType" type="int" report_type="ImplementationType">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
		<property name="AnsiNullsStatus" type="bit" cast="true">ssmod.uses_ansi_nulls</property>
		<property name="QuotedIdentifierStatus" type="bit" cast="true">ssmod.uses_quoted_identifier</property>
		<property name="Definition" type="nvarchar" size='max' hidden='true'>ssmod.definition</property>
		<property name="ExecutionContextLogin" type="sysname">ISNULL(sprin.Name,N'')</property>
		<property name="ExecutionContext" type="int" report_type="ServerDdlTriggerExecutionContext">CASE WHEN (ssmod.execute_as_principal_id IS NULL AND mod.execute_as_principal_id IS NULL) THEN 1 ELSE 2 END</property>		
		<property name="Text" type="nvarchar" size='max' expensive='true' access="Read">NULL</property>
		<property name="BodyStartIndex" type="int" expensive='true' access="Read">NULL</property>		
		<property name="IsEncrypted" type="bit" cast='true'>CASE WHEN ssmod.definition IS NULL THEN 1 ELSE 0 END</property>		
		<property name="DdlTriggerEventsInternal" type="nvarchar" size="50" expensive='true' hidden="true"  >
			<link_multiple no='1' expression="cast(db_id() as varchar(20)) + '_' + cast({0} as varchar(20))">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>		
		<property name="DdlTriggerEvents" type="sql_variant" cast="true"  expensive="true" report_type2="Microsoft.SqlServer.Management.Smo.ServerDdlTriggerEventSet">null</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
q<?xml version="1.0" ?>
<EnumObject min_major='7' >
	<settings>
		<version min_major='9' >
            <!-- 
            here we have to fetch from both sys.server_sql_modules and sys.system_sql_modules
            because user objects are stored in the former, and system objects are 
            stored in the latter
            -->   
			<property_link 
                fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.server_sql_modules AS sm{0}'>sm{0}.object_id = {0}.object_id</property_link>
            <property_link 
                fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.system_sql_modules AS ssm{0}'>ssm{0}.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<include file='inc_sql_module.xml' alias='{0}'/>
		</version>
		<version min_major='9' >
			<property name="AnsiNullsStatus" type="bit" cast='true'>ISNULL(sm{0}.uses_ansi_nulls, ssm{0}.uses_ansi_nulls)</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true'>ISNULL(sm{0}.uses_quoted_identifier, ssm{0}.uses_quoted_identifier)</property>
			<property name="IsSchemaBound" type="bit" cast='true'>OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound')</property>
		
			<include file='inc_sql_module.xml' alias='sm{0}'/>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="DatabaseDdlTriggerEvent" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings main_table="sys.trigger_events te">
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="EventType" type="int" access="Read">te.type</property>
		<property name="EventTypeDescription" type="nvarchar" size="60"  access="Read">te.type_desc</property>			
		<property name="ParentID" type="int" hidden='true'>te.object_id</property>
    <property name="ObjectIdentifier" type="varchar" size='300'
        access="Read">cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20))</property>    
  </properties>
</EnumObject>
\<?xml version="1.0" ?>
<EnumObject type="inc_ddl_trigger_event" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
	<settings>
		<post_process fields='#DdlTriggerEvents#' triggered_fields = "#DdlTriggerEventsInternal#" class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseDdlTriggerEvents'/>
	</settings>
  <properties>
    <property name="DdlTriggerEventsInternal" type="nvarchar" size="50" expensive='true' hidden="true"  >
      <link_multiple no='1' expression="cast(db_id() as varchar(20)) + '_' + cast({{0}} as varchar(20))">
        <link_field type='local' field="ID" />
      </link_multiple>
    </property>
    <property name="DdlTriggerEvents" type="sql_variant" cast="true"  expensive="true" report_type2="Microsoft.SqlServer.Management.Smo.DatabaseDdlTriggerEventSet">null</property>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="ServerDdlTriggerEvent" impl_type="SqlObject" min_major='9' >
	<settings main_table="sys.server_trigger_events te">
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="EventType" type="int" access="Read">te.type</property>
		<property name="EventTypeDescription" type="nvarchar" size="60"  access="Read">te.type_desc</property>
		<property name="ObjectIdentifier" type="varchar" size='300' 
			access="Read">cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20))</property>		
		<property name="ParentID" type="int" hidden='true'>te.object_id</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailProfileAccounts" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent='Name' local='ProfileName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#profile_account_tmp pat" />
		<prefix>
			<link_multiple no='1' expression="
create table #profile_account_tmp(profile_id int, profile_name sysname, account_id int, account_name sysname, sequence_number int)
declare @ProfileName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @ProfileName
while @@fetch_status &gt;= 0 
begin 
		insert #profile_account_tmp (profile_id,profile_name,account_id,account_name,sequence_number) exec msdb.dbo.sysmail_help_profileaccount_sp @profile_name=@ProfileName
		fetch crs into @ProfileName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #profile_account_tmp
		</postfix>
	</settings>
	<properties>
		<property name="ProfileName" type="sysname">pat.profile_name</property>
		<property name="ProfileID" type="int">pat.profile_id</property>
		<property name="AccountName" type="sysname">pat.account_name</property>
		<property name="AccountID" type="int">pat.account_id</property>
		<property name="SequenceNumber" type="int">pat.sequence_number</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailProfilePrincipals" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent='Name' local='ProfileName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#principal_profile_tmp ppt" />
		<prefix>
			<link_multiple no='1' expression="
create table #principal_profile_tmp(
		principal_id int, 
		principal_name sysname, 
		profile_id int, 
		profile_name sysname, 
		is_default bit
)
declare @ProfileName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @ProfileName
while @@fetch_status &gt;= 0 
begin 
		insert #principal_profile_tmp (principal_id,principal_name,profile_id,profile_name,is_default) exec msdb.dbo.sysmail_help_principalprofile_sp @profile_name=@ProfileName
		fetch crs into @ProfileName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #principal_profile_tmp
		</postfix>
	</settings>
	<properties>
		<property name="PrincipalName" type="sysname">ppt.principal_name</property>
		<property name="PrincipalID" type="int">ppt.principal_id</property>
		<property name="ProfileName" type="sysname">ppt.profile_name</property>
		<property name="ProfileID" type="int">ppt.profile_id</property>
		<property name="IsDefault" type="bit">ppt.is_default</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailServer" impl_type="SqlObject" min_major='9' >
    <settings>
	<parent_link>
		<link parent='Name' local='AccountName' />
	</parent_link>
	<request_parent_select>
		<field name='Name' />
	</request_parent_select>

	<property_link table='#account_server_tmp' alias='ast'/>
	<prefix>
		<link_multiple no='1' expression="
create table #account_server_tmp(account_id int, name nvarchar(128), description nvarchar(256) null, email_address nvarchar(128) null, display_name nvarchar(128) null, replyto_address nvarchar(128) null, servertype nvarchar(128), servername nvarchar(128), port int, username nvarchar(128) null, use_default_credentials bit, enable_ssl bit)
declare @AccountName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @AccountName 
while @@fetch_status &gt;= 0 
begin 
	insert #account_server_tmp(account_id, name, description, email_address, display_name, replyto_address, servertype, servername, port, username, use_default_credentials, enable_ssl) exec msdb.dbo.sysmail_help_account_sp @account_name=@AccountName
	fetch crs into @AccountName 
end 
close crs
deallocate crs">
			<link_field field="ParentSelect" />
		</link_multiple>
	</prefix>
	<postfix>
drop table #account_server_tmp
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>ast.servername</property>
	<property name='Port' type='int'>ast.port</property>
	<property name='UserName' type='nvarchar' size = '128'>ISNULL(ast.username, N'')</property>
	<property name='AccountName' type='nvarchar' size = '128' hidden='true'>ast.name</property>
	<property name='ServerType' type='nvarchar' size = '128' access='read'>ast.servertype</property>
	<property name='UseDefaultCredentials' type='bit' cast = 'true'>ast.use_default_credentials</property>
	<property name='EnableSsl' type='bit' cast = 'true'>ast.enable_ssl</property>
    </properties>
</EnumObject>
{<?xml version='1.0' ?>
<EnumObject type='Endpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.endpoints' alias='e'/>
		<property_link fields='#Owner#' join='sys.server_principals AS sp'>sp.principal_id = e.principal_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />	
		<property name='Name' type='sysname'>e.name</property>
		<property name='ID' type='int'>e.endpoint_id</property>
		<property name="Owner" type="nvarchar" size="128" >sp.name</property>
		<property name='EndpointType' type='tinyint' report_type = 'EndpointType'>e.type</property>		
		<property name='ProtocolType' type='tinyint' report_type = 'ProtocolType'>e.protocol</property>
		<property name="EndpointState" type="int" report_type="EndpointState" access="Read">e.state</property>
		<property name='IsAdminEndpoint' type='bit' access='Read'>e.is_admin_endpoint</property>
		
		
		<!-- enable permissions -->
		<property name="PermissionClass" type="int" hidden='true'>105</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when e.endpoint_id &lt; 65536 then 1 else 0 end</property>

    <version min_major ="10">
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SoapEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.soap_endpoints' alias='se'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='DefaultDatabase' type='sysname'>ISNULL(se.default_database, N'')</property>
		<property name='IsSqlBatchesEnabled' type='bit'>se.is_sql_language_enabled</property>
		<property name='DefaultNamespace' type='nvarchar' size = '384'>se.default_namespace</property>
		<property name="XmlFormatOption" type="int" report_type="XmlFormatOption" >2-convert(int, se.is_xml_charset_enforced)</property>
		<property name="XsdSchemaOption" type="int" cast="true" report_type="XsdSchemaOption" >se.default_result_schema</property>
		<property name='WsdlGeneratorProcedure' type='nvarchar' size = '776'>se.wsdl_generator_procedure</property>
		<property name="WsdlGeneratorOption" type="int" cast="true" report_type="WsdlGeneratorOption" >case LEN(ISNULL(se.wsdl_generator_procedure,'')) when 0 then 0 else 2 end</property>
		<property name='IsSessionEnabled' type='bit'>se.is_session_enabled</property>
		<property name='SessionTimeout' type='int'>se.session_timeout</property>
		<property name='SessionNeverTimesOut' type='bit' cast='true'>CASE WHEN se.session_timeout &lt; 0 THEN 1 ELSE 0 END</property>
		
		<property name='EndpointID' type='int' hidden='true'>se.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when se.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_urn_single" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='2' expression="{0} + '/{1}'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject>{<?xml version='1.0' ?>
<EnumObject type='DatabaseMirroringEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.database_mirroring_endpoints' alias='dme'/>
		<property_link fields='#Certificate#' left_join='sys.certificates AS cert'>cert.certificate_id = dme.certificate_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />	
		<property name='ServerMirroringRole' type='tinyint' report_type = 'ServerMirroringRole'>dme.role</property>
		<property name='Certificate' type='sysname'>ISNULL(cert.name,N'')</property>
		<property name='EndpointEncryption' type='int' report_type='EndpointEncryption'>case 
                            when dme.encryption_algorithm = 0 then 0 
                            when dme.encryption_algorithm in (3,4,7,8) then 1 
                            when dme.encryption_algorithm in (1,2,5,6) then 2 
                            else 0 
                        end
        </property>
		<property name='EndpointEncryptionAlgorithm' type='int' report_type='EndpointEncryptionAlgorithm'>case dme.encryption_algorithm 
                            when 0 then 0
                            when 1 then 1
                            when 2 then 2
                            when 3 then 1
                            when 4 then 2
                            when 5 then 4
                            when 6 then 3
                            when 7 then 4
                            when 8 then 3
                            else 0
                        end
        </property>
		<property name='EndpointAuthenticationOrder' type='int' report_type='EndpointAuthenticationOrder'>dme.connection_auth</property>
		
		<property name='EndpointID' type='int' hidden='true'>dme.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dme.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='ServiceBrokerEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.service_broker_endpoints' alias='sbe'/>
		<property_link fields='#Certificate#' left_join='sys.certificates AS cert'>cert.certificate_id = sbe.certificate_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />	
		<property name='IsMessageForwardingEnabled' type='bit'>sbe.is_message_forwarding_enabled</property>
		<property name='MessageForwardingSize' type='int'>sbe.message_forwarding_size</property>
		<property name='Certificate' type='sysname'>ISNULL(cert.name,N'')</property>
		<property name='EndpointEncryption' type='int' report_type='EndpointEncryption'>
                        case 
                            when sbe.encryption_algorithm = 0 then 0 
                            when sbe.encryption_algorithm in (3,4,7,8) then 1 
                            when sbe.encryption_algorithm in (1,2,5,6) then 2 
                            else 0 
                        end
        </property>
		<property name='EndpointEncryptionAlgorithm' type='int' report_type='EndpointEncryptionAlgorithm'>
                        case sbe.encryption_algorithm 
                            when 0 then 0
                            when 1 then 1
                            when 2 then 2
                            when 3 then 1
                            when 4 then 2
                            when 5 then 4
                            when 6 then 3
                            when 7 then 4
                            when 8 then 3
                            else 0
                        end
        </property>
		<property name='EndpointAuthenticationOrder' type='int' report_type='EndpointAuthenticationOrder'>sbe.connection_auth</property>
		
		<property name='EndpointID' type='int' hidden='true'>sbe.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when sbe.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='ViaEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.via_endpoints' alias='ve'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='Discriminator' type='nvarchar' size = '128'>ve.discriminator</property>
		
		<property name='EndpointID' type='int' hidden='true'>ve.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when ve.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='HttpEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.http_endpoints' alias='he'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='AuthenticationRealm' type='nvarchar' size = '128'>ISNULL(he.authorization_realm,N'')</property>
		<property name='ClearPort' type='int'>he.clear_port</property>
		<property name='DefaultLogonDomain' type='nvarchar' size = '128'>ISNULL(he.default_logon_domain,N'')</property>
		<property name="HttpPortTypes" type="int" report_type="HttpPortTypes" >1*he.is_ssl_port_enabled + 2*is_clear_port_enabled</property>
		<property name='SslPort' type='int'>he.ssl_port</property>
		<property name='WebSiteUrlPath' type='nvarchar' size = '4000'>he.url_path</property>
		<property name='WebSite' type='nvarchar' size = '128'>he.site</property>
		<property name='IsCompressionEnabled' type='bit'>he.is_compression_enabled</property>
		<property name="HttpAuthenticationModes" type="int" report_type="HttpAuthenticationModes">1*is_anonymous_enabled + 2*is_basic_auth_enabled + 4*is_digest_auth_enabled + 8*is_integrated_auth_enabled + 16*is_ntlm_auth_enabled + 32*is_kerberos_auth_enabled</property>				
		
		<property name='EndpointID' type='int' hidden='true'>he.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when he.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='TcpEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.tcp_endpoints' alias='te'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		
		<property name='ListenerPort' type='int'>te.port</property>
		<property name='IsDynamicPort' type='bit' access = 'read'>te.is_dynamic_port</property>
		<property name='ListenerIPAddress' type='varchar' size = '45'>ISNULL(te.ip_address,'')</property>
		
		<property name='EndpointID' type='int' hidden='true'>te.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when te.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
C<?xml version="1.0" ?>
<EnumObject type="HttpEndpoint" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="EndpointID" local="EndpointID" />
		</parent_link>
		<property_link table='sys.endpoint_webmethods AS ewm' />
	</settings>
	<properties>
		<include file='inc_urn_soapmethod.xml' />
		<property name="Name" type="sysname">ewm.method_alias</property>
		<property name="Namespace" type="nvarchar" size="384">ISNULL(ewm.namespace,'')</property>
		<property name="ResultFormat" type="int" cast="true" report_type="ResultFormat" >ewm.result_format</property>		
		<property name="SqlMethod" type="nvarchar" size="776" access = "Read">ewm.object_name</property>
		<property name="MethodXsdSchemaOption" type="int" cast="true" report_type="MethodXsdSchemaOption" >ewm.result_schema</property>
		<property name="EndpointID" type="int" hidden="true">ewm.endpoint_id</property>			
		<property name="MethodLoginType" type="int" cast="true" report_type="MethodLoginType">case upper(se.login_type) when 'WINDOWS' then 2 else 1 end</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when ewm.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SymmetricKey' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.symmetric_keys' alias='c'>c.symmetric_key_id &lt;&gt; 101</property_link>
		<property_link fields = '#IsOpen#' left_join='sys.openkeys AS ok'>ok.key_id=c.symmetric_key_id and ok.database_id=db_id()</property_link>
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers AS cp'>cp.guid = c.cryptographic_provider_guid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int'>c.symmetric_key_id</property>
		<property name='Owner' type='sysname'>user_name(c.principal_id)</property>
		<property name='CreateDate' type='datetime' access='read'>c.create_date</property>
        <property name='KeyGuid' type='uniqueidentifier' access='read'>c.key_guid</property>
        <property name='KeyLength' type='int' access='read'>c.key_length</property>
		<property name='EncryptionAlgorithm' type='int' report_type='SymmetricKeyEncryptionAlgorithm' access='read'
		>(case c.key_algorithm when 'R2' then 0 when 'R4' then 1 when 'D' then 2 when 'D3' then 3 when 'DX' then 4 when 'A1' then 5 when 'A2' then 6 when 'A3' then 7 when 'DT' then 8 else -1 end)</property>
		<property name='DateLastModified' type='datetime' access='read'>c.modify_date</property>
		<property name='IsOpen' type='bit' access='Read' cast='true'>ISNULL(ok.status, 0)</property>
		<version min_major='10'>
			<property name='ProviderName' type='sysname'>ISNULL(cp.name, '')</property>
		</version>

		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>24</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
P	<?xml version='1.0' ?>
<EnumObject type='AsymmetricKey' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.asymmetric_keys' alias='a'/>
		<property_link fields = '#Owner#' left_join='sys.server_principals' alias='sp'>sp.principal_id = a.principal_id</property_link>
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers' alias='cp'>cp.guid = a.cryptographic_provider_guid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>a.name</property>
		<property name='ID' type='int'>a.asymmetric_key_id</property>
		<property name='Owner' type='sysname'>user_name(a.principal_id)</property>
		<property name='KeyEncryptionAlgorithm' type='int' report_type='AsymmetricKeyEncryptionAlgorithm' 
					access='read'>(case a.algorithm when '1R' then 0 when '2R' then 1 when '3R' then 2 else -1 end)</property>
        <property name='KeyLength' type='int' access='read'>a.key_length</property>
		<property name='PrivateKeyEncryptionType' type='int' report_type = 'PrivateKeyEncryptionType' 
			access='read'>case a.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 when 'CP' then 3 end</property>
		<property name='PublicKey' type='varbinary' size='max' access='read'>a.public_key</property>
		<property name='Sid' type='varbinary' size='85' access='read'>a.sid</property>
		<property name='Thumbprint' type='varbinary' size='32' access='read'>a.thumbprint</property>
		<version min_major='10'>
			<property name='ProviderName' type='sysname'>ISNULL(cp.name, '')</property>
		</version>

		<!-- not available
		<property name='CreateDate' type='datetime' access='read'>a.create_date</property>
		<property name='DateLastModified' type='datetime' access='read'>a.modify_date</property>
		-->

		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>26</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10' >
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link>tbl.name like '#%'</property_link>
		<prefix>
			use tempdb
		</prefix>
	</settings>
	<properties>
		<include file='table.xml' />
	</properties>
</EnumObject>
*<?xml version="1.0" ?>
<EnumObject type="parameter" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<post_process fields='#DefaultValue#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessParam' 
			triggered_fields='#IDText#DatabaseName#ParamName#ParentSysObj#Number#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">param.name</property>
	
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" access="Read" cast = 'true'>param.colid</property>
			<property name="ParentID" type="int" hidden='true'>param.id</property>
			<property name="DefaultValue" type='nvarchar' size = '4000' mode="design">null</property>
		</version>
		<version min_major='8' max_major='8'>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>5</property>
			-->
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'PARAMETER'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="ID" type="int">param.parameter_id</property>
			<property name="ParentID" type="int" hidden='true'>param.object_id</property>
			<property name="DefaultValue" type='nvarchar' size = '4000' mode="design">param.default_value</property>
		</version>

    <version min_major='9' cloud_min_major='10'>     
      <!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>2</property>
    </version>
    
		<include alias = 'param' file='inc_type.xml' />
		
		<!-- default value properties -->
		<property name="IDText" type='int' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ID" />
			</link_multiple>
		</property>
		<property name="DatabaseName" type='sysname' hidden='true'>db_name()</property>
		<property name="ParamName" type='sysname' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="ParentSysObj" type='bit' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="IsSystemObject" />
			</link_multiple>
		</property>


    <!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ParentID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
        
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link>clmns.number = &lt;msparam&gt;0&lt;/msparam&gt; and &lt;msparam&gt;0&lt;/msparam&gt; = OBJECTPROPERTY(clmns.id, N'IsScalarFunction')</property_link>
		</version>
	</settings>
	<properties>
		<include file='Column.xml' />
	</properties>
</EnumObject>
%
<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="ID" />
		</parent_link>

		<version min_major='7' max_major='8'>
			<property_link table='syscomments' alias = 'nsp'>nsp.colid = &lt;msparam&gt;1&lt;/msparam&gt; and nsp.number &gt; &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' >
			<property_link table='sys.numbered_procedures' alias = 'nsp'/>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Number=' + cast({1} AS nvarchar(20)) + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Number" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		<version min_major='7' max_major='8'>
			<property name="Number" type="smallint" access='Read'>nsp.number</property>
			<property name="Name" type="sysname" read_only_after_creation="true">object_name(nsp.id) + ';' + cast(nsp.number as nvarchar(20))</property>
			<property name="IsEncrypted" type="bit" cast='true'>nsp.encrypted</property>

			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='80' 
				hidden='true'>cast(nsp.id as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_' + cast(nsp.number as nvarchar(20))</property>
			<property name="ParentNumber" type='smallint' hidden='true'>nsp.number</property>
			<property name="ID" type='int' hidden='true'>nsp.id</property>
		</version>
		
		<version min_major='9' >
			<property name="Number" type="smallint" access='Read'>nsp.procedure_number</property>		
			<property name="Name" type="sysname" read_only_after_creation="true">object_name(nsp.object_id) + ';' + cast(nsp.procedure_number as nvarchar(20))</property>
			<property name="IsEncrypted" type="bit" cast='true'>CASE WHEN nsp.definition IS NULL THEN 1 ELSE 0 END</property>
			
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max' hidden='true'>nsp.definition</property>
			<property name="ParentNumber" type='smallint' hidden='true'>nsp.procedure_number</property>
			<property name="ID" type='int' hidden='true'>nsp.object_id</property>
		</version>
		<property name="IsSystemObject" type="int" hidden='true'>0</property>
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
v<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
			<link parent="ParentNumber" local="Number" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'/>
		</version>
		<version min_major='9' >
			<property_link table='mycte' alias='param'/>
		</version>
		<prefix>
			Begin
			With mycte(object_id, procedure_number,
			name, parameter_id,
			system_type_id, user_type_id,
			max_length, precision,
			scale, is_output, is_cursor_ref,default_value)
			as
			(select object_id, procedure_number,
			name, parameter_id,
			system_type_id, user_type_id,
			max_length, precision,
			scale, is_output, is_cursor_ref,null as default_value  FROM sys.numbered_procedure_parameters)
		</prefix>
		<postfix>
			end
		</postfix>
	</settings>
	<properties>
		<include file='parameter.xml' for = '#Urn#Name#ID#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#DefaultValue#'/>
		<version min_major='7' max_major='8'>
			<property name="IsOutputParameter" type="bit" 
			cast='true'>CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END</property>
			<property name="Number" type="smallint" hidden='true'>param.number</property>
		</version>
		<version min_major='9' >
			<property name="IsOutputParameter" type="bit">param.is_output</property>
			<property name="Number" type="int" hidden='true' cast='true'>param.procedure_number</property>
		</version>
	</properties>
</EnumObject>
:<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="GroupID" />
		</parent_link>
		
		<version min_major='9' >
			<property_link table="sys.database_files AS s">((s.type = 4) AND (s.drop_lsn IS NULL))</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_DbFile.xml' for ='#Name#ID#FileName#Size#MaxSize#Growth#GrowthType#GroupID#IsReadOnlyMedia#IsReadOnly#IsOffline#IsSparse#'/>
	</properties>
</EnumObject>
b<?xml version='1.0' ?>
<EnumObject type='KeyEncryption' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.key_encryptions' alias='ke'/>
	</settings>
	<properties>
        <property name='ThumbPrint' type='varbinary' size = '32' access='read' cast='true'>ke.thumbprint</property>
		<property name='SymmetricKeyEncryptionType' type='int' report_type='SymmetricKeyEncryptionType'
>(case ke.crypt_type when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 end)</property>

		<property name='CryptProperty' type='varbinary' size = 'max' access='read' cast='true'>ke.crypt_property</property>

		<property name='ParentID' type='int' access='read' hidden='true'>ke.key_id</property>		
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'ALERT'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
	</properties>
</EnumObject>
Y<?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'JOB'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
		<property name='CategoryType' type='tinyint' report_type='Agent.CategoryType' read_only_after_creation="true">tshc.category_type</property>
	</properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='Transactions' impl_type='SqlObject' min_major='9' >
<!--
1. we want all transactions normal and snapshot 
2. if it is in dm_tran_active_snapshot_database_transactions we call a transaction versioned 
3. it is possible for a transaction to be in dm_tran_active_snapshot_database_transactions but not in dm_tran_session_transactions we still want to show it then 
4. it is possible for a transaction to be in dm_tran_active_snapshot_database_transactions but not in dm_tran_active_transactions, in this case the tran_begin_time is null and the name is user_transaction
5. it is possible for a transaction to be both in dm_tran_active_snapshot_database_transactions and in dm_tran_session_transactions, in this case we only want to show one row.

We will have one row if the transaction does not have an associated db or a row for every database in which the transaction is involved
-->
	<union>
		<!-- session transaction: normal transactions + some snapshot transactions-->	
		<settings>
			<property_link table='sys.dm_tran_session_transactions' alias='ts'/>
			<property_link left_join='sys.dm_tran_database_transactions' 
				alias='dt'>dt.transaction_id = ts.transaction_id</property_link>
			<property_link fields='#IsVersioned#' left_join='sys.dm_tran_active_snapshot_database_transactions' 
				alias='tsnp'>tsnp.transaction_id = ts.transaction_id</property_link>
			<property_link fields='#Name#BeginTime#' left_join='sys.dm_tran_active_transactions' 
				alias='ta'>ta.transaction_id = ts.transaction_id</property_link>
		</settings>
		<properties>
			<property name='Name' type='sysname'>ta.name</property>
			<property name='TransactionID' type='bigint'>ts.transaction_id</property>
			<property name='BeginTime' type='datetime'>ta.transaction_begin_time</property>
			<property name='Spid' type='int'>ts.session_id</property>
			<property name='DatabaseName' type='sysname'>db_name(dt.database_id)</property>
			<property name='DatabaseID' type='sysname'>dt.database_id</property>						
			<property name='DatabaseBeginTime' type='datetime'>dt.database_transaction_begin_time</property>
			<property name='IsVersioned' type='bit' cast='true'>case when tsnp.transaction_id is null then 0 else 1 end</property>
		</properties>
	</union>
	<union>
		<!-- snapshot transactions-->	
		<settings>
			<property_link table='sys.dm_tran_active_snapshot_database_transactions' alias='tsnp'/>
			<property_link left_join='sys.dm_tran_database_transactions' 
				alias='dt'>dt.transaction_id = tsnp.transaction_id</property_link>
			<property_link fields='#Name#BeginTime#' left_join='sys.dm_tran_active_transactions' 
				alias='ta'>ta.transaction_id = tsnp.transaction_id</property_link>
		</settings>
		<properties>
			<property name='Name' type='sysname'>ta.name</property>
			<property name='TransactionID' type='bigint'>tsnp.transaction_id</property>
			<property name='BeginTime' type='datetime'>ta.transaction_begin_time</property>
			<property name='Spid' type='int'>tsnp.session_id</property>			
			<property name='DatabaseName' type='sysname'>db_name(dt.database_id)</property>			
			<property name='DatabaseID' type='sysname'>dt.database_id</property>						
			<property name='DatabaseBeginTime' type='datetime'>dt.database_transaction_begin_time</property>
			<property name='IsVersioned' type='bit' cast='true'>1</property>
		</properties>
	</union>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' >
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'OPERATOR'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
	</properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="ServerProxyAccount" impl_type="ServerProxyAccount" min_major='8' >
    <settings>
		<version min_major='8' max_major='8'>
    		<property_link>@account_name is not null</property_link>
			<prefix fields="#IsEnabled#"> 
				declare @SysAdminOnly int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'SysAdminOnly', @SysAdminOnly OUTPUT
                set @SysAdminOnly = (case when 0 = @SysAdminOnly then 1 else 0 end)
			</prefix>
			<prefix> 
create table #tmpProxyAccountName ( domain sysname, username sysname)
insert into #tmpProxyAccountName exec master.dbo.xp_sqlagent_proxy_account N'GET'

declare @account_name nvarchar(255)
set @account_name = (select domain + N'\' + username as [UserName] from #tmpProxyAccountName)
if (@account_name is null)
begin
  set @account_name=N''
end
			</prefix>
			<postfix> 
drop table #tmpProxyAccountName
			</postfix>
            </version>
		<version min_major='9' >
    		<property_link>@account_name is not null</property_link>
			<prefix fields="#IsEnabled#"> 
				declare @SysAdminOnly int
                set @SysAdminOnly = (select count(*) from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##')
			</prefix>
			<prefix> 
declare @account_name nvarchar(4000)
set @account_name = (select top 1 credential_identity from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##')
if (@account_name is null)
begin
  set @account_name=N''
end
			</prefix>
            </version>
    </settings>
   <properties>
       <property name="Urn" type="nvarchar" size="600">
           <link_multiple no='1' expression="{0} + '/ServerProxyAccount'">
               <link_field type='parent' field="Urn" />
           </link_multiple>
       </property>
           <property name="IsEnabled" type="bit" cast='true'>@SysAdminOnly</property>
    	   <property name="WindowsAccount" type="nvarchar" size='4000'>@account_name</property>
    </properties>
</EnumObject>
s<?xml version="1.0" ?>
<EnumObject type="ServiceMasterKey" impl_type="SqlObject" min_major='9' >
    <settings>
    </settings>
   <properties>
	<property name="Urn" type="nvarchar" size="600">
		<link_multiple no='1' expression="{0} + '/MasterKey'">
			<link_field type='parent' field="Urn" />
		</link_multiple>
	</property>
    </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='DatabaseMasterKey' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.symmetric_keys' alias='c'>c.symmetric_key_id = 101</property_link>
		<property_link fields = '#IsOpen#' left_join='sys.openkeys AS ok'>ok.key_id=c.symmetric_key_id and ok.database_id=db_id()</property_link>
		<property_link fields = '#IsEncryptedByServer#' join='sys.databases AS mkdb'>mkdb.database_id=db_id()</property_link>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='1' expression="{0} + '/MasterKey'">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		<property name='ID' type='int' access='Read' hidden='true'>c.symmetric_key_id</property>
		<property name='CreateDate' type='datetime' access='Read'>c.create_date</property>
		<property name='DateLastModified' type='datetime' access='Read'>c.modify_date</property>
		<property name='IsOpen' type='bit' access='Read' cast='true'>ISNULL(ok.status, 0)</property>
		<property name='IsEncryptedByServer' type='bit' access='Read' convert='true'>ISNULL(mkdb.is_master_key_encrypted_by_server, 0)</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MasterKeyEncryption' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.key_encryptions' alias='ke'/>
	</settings>
	<properties>
        <property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{3}[@Thumbprint=''' + {1} + ''' and @SymmetricKeyEncryptionType = ''' + {2} + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Thumbprint_hid" />
                <link_field type='local' field="SymmetricKeyEncryptionType_hid" />
				<link_field field="NType" />
			</link_multiple>
          </property>
		<property name='ParentID' type='int' access='read' hidden='true'>ke.key_id</property>
        <property name='Thumbprint' type='varbinary' size = '32' access='read'>ke.thumbprint</property>
        <property name='Thumbprint_hid' type='nvarchar' size = '64' access='read' hidden='true' cast='true'>ISNULL(ke.thumbprint, 0x00)</property>
		<property name='SymmetricKeyEncryptionType' type='int' report_type='SymmetricKeyEncryptionType' access='read'>(case ke.crypt_type 
						when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 else -1 end)</property>
		<property name='SymmetricKeyEncryptionType_hid' type='nvarchar' size='20' hidden='true' cast='true'>(case ke.crypt_type 
						when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 else -1 end)</property>
        <property name='CryptProperty' type='varbinary' access='read'>ke.crypt_property</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='DatabaseDiagram' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='#tmp_sp_helpdiagrams' alias='tshd'/>
		<prefix>
			declare @DiagramSPPath nvarchar(512)
			select  @DiagramSPPath = quotename(db_name()) + '.dbo.sp_helpdiagrams'
			create table #tmp_sp_helpdiagrams
			([Database] sysname not null, Name sysname not null, ID int not null, Owner sysname null, OwnerID int not null)
			insert into #tmp_sp_helpdiagrams exec @DiagramSPPath
		</prefix>
		<postfix>
drop table #tmp_sp_helpdiagrams
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size='900'> 
			'Server[@Name=' + quotename(cast(serverproperty(N'Servername') as sysname),'''') + 
			']/Database[@Name=' + quotename(db_name(),'''') +
			']/DatabaseDiagram[@Name=' +	quotename(tshd.Name,'''') + ' and @OwnerID=' + quotename(cast(tshd.OwnerID as nvarchar(30)),'''') + ']'
		</property>
		<property name='Name' type='nvarchar' size = '256'>tshd.Name</property>
		<property name='DiagramID' type='int' access='Read'>tshd.ID</property>
		<property name='Owner' type='nvarchar' size = '256' access='Read'>tshd.Owner</property>
		<property name='OwnerID' type='int' access='Read'>tshd.OwnerID</property>
	</properties>
</EnumObject>c<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table="msdb.dbo.sysmail_event_log er" />
	</settings>
	<properties>
		<property name="LogID" type="int">er.log_id</property>
		<property name="EventType" type="sysname">er.event_type</property>
		<property name="LogDate" type="datetime">er.log_date</property>
		<property name="Description" type="nvarchar" size="max">er.description</property>
		<property name="ProcessID" type="int">er.process_id</property>
		<property name="MailItemID" type="int">er.mailitem_id</property>
		<property name="AccountID" type="int">er.account_id</property>
		<property name="LastModifiedDate" type="datetime">er.last_mod_date</property>
		<property name="LastModifiedUser" type="sysname">er.last_mod_user</property>
	</properties>
</EnumObject>
H<?xml version="1.0" ?>
<EnumObject type="inc_policy_health_state" impl_type="SqlObject" min_major='10' >
	<settings>
    <version min_major='10' >
      <prefix fields="#PolicyHealthState#">
        DECLARE @is_policy_automation_enabled bit
        SET @is_policy_automation_enabled  = (SELECT CONVERT(bit, current_value)
                                              FROM msdb.dbo.syspolicy_configuration
                                              WHERE name = 'Enabled')
      </prefix>
    </version>
  </settings>
	<properties>
    <version min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='3' expression="{0} + '/{2}\[@ID=' + convert(nvarchar(20),{1}) + '\]'">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="ID" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='3' expression="case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like {0}+ '/{2}\[@ID=' + convert(nvarchar(20),{1}) + '\]%' ESCAPE '\') then 1 else 0 end">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="ID" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>f<?xml version="1.0" ?>
<EnumObject type="ResourceGovernor" impl_type="ResourceGovernor" min_major='10' >
  <settings>
    <property_link table="sys.resource_governor_configuration AS c"/>
  </settings>
  <properties>
    <include file='inc_urn_single.xml' />
    <property name="ClassifierFunction" type="sysname">
      CASE WHEN OBJECT_NAME(c.classifier_function_id) IS NULL THEN N''  ELSE QUOTENAME(OBJECT_SCHEMA_NAME(c.classifier_function_id, 1)) + N'.' + QUOTENAME(OBJECT_NAME(c.classifier_function_id, 1))  END
    </property>
    <property name='Enabled' type='bit' cast='true'>c.is_enabled</property>
    <property name='ReconfigurePending' type='bit' cast='true' access='Read'>(SELECT is_reconfiguration_pending FROM sys.dm_resource_governor_configuration)</property>
    <!--This object does not have an ID or a  name.
    Note that this has to be consistent with the API implementation of UrnWithId.-->
    <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
      <link_multiple no='1' expression="'Server/{0}'">
        <link_field field="NType" />
      </link_multiple>
    </property>
    <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
      <link_multiple no='1' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/{0}%' ESCAPE '\') then 1 else 0 end">
        <link_field field="NType" />
      </link_multiple>
    </property>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="ResourcePool" impl_type="SqlObject" min_major='10' >
  <settings>
    <property_link table="sys.resource_governor_resource_pools AS p"/>
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
     <property name="ID" type="int" cast='true'>p.pool_id</property>
     <property name="Name" type="sysname">p.name</property>
     <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when p.pool_id &lt; 256 then 1 else 0 end</property>
     <property name="MinimumCpuPercentage" type="int">p.min_cpu_percent</property>
     <property name="MaximumCpuPercentage" type="int">p.max_cpu_percent</property>
     <property name="MinimumMemoryPercentage" type="int">p.min_memory_percent</property>
     <property name="MaximumMemoryPercentage" type="int">p.max_memory_percent</property>
     <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	

O<?xml version="1.0" ?>
<EnumObject type="WorkloadGroup" impl_type="SqlObject" min_major='10' >
  <settings>
    <parent_link>
      <link parent="ID" local="ResourcePoolID" />
    </parent_link>
    <request_parent_select>
      <field name='ID' />
    </request_parent_select>

    <property_link table="sys.resource_governor_workload_groups AS wkg"/>
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
     <property name="ID" type="int" cast='true'>wkg.group_id</property>
     <property name="ResourcePoolID" type="int" cast='true' hidden='true'>wkg.pool_id</property>
     <property name="Name" type="sysname">wkg.name</property>
     <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when wkg.group_id &lt; 256 then 1 else 0 end</property>
     <property name="GroupMaximumRequests" type="int">wkg.group_max_requests</property>
     <property name="Importance" type="int" report_type="WorkloadGroupImportance" >CASE WHEN N'Low' = wkg.importance THEN 0 WHEN N'Medium' = wkg.importance THEN 1 WHEN N'High' = wkg.importance THEN 2  END</property>
     <property name="RequestMaximumCpuTimeInSeconds" type="int">wkg.request_max_cpu_time_sec</property>
     <property name="RequestMaximumMemoryGrantPercentage" type="int">wkg.request_max_memory_grant_percent</property>
     <property name="RequestMemoryGrantTimeoutInSeconds" type="int">wkg.request_memory_grant_timeout_sec</property>
     <property name="MaximumDegreeOfParallelism" type="int">wkg.max_dop</property>
     <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	
<?xml version="1.0" ?>
<EnumObject type="DatabaseEncryptionKey" impl_type="SqlObject" min_major='10'>
	<settings>
		<!--joining DEK catalog with itself on database_id to get the DEK object of the current database-->
		<property_link table='sys.dm_database_encryption_keys AS dek'>DB_ID()=dek.database_id</property_link>
		<!--DEK can be created with a certificate or an asymmetric key-->
		<property_link fields='#EncryptorName#EncryptionType#' left_join='master.sys.certificates AS cer'>dek.encryptor_thumbprint=cer.thumbprint</property_link>
		<property_link fields='#EncryptorName#EncryptionType#' left_join='master.sys.asymmetric_keys AS asymkey'>dek.encryptor_thumbprint=asymkey.thumbprint</property_link>
	</settings>
	<properties>
			<property name="Urn" type="nvarchar" size="600">
				<link_multiple no='1' expression="{0} + '/DatabaseEncryptionKey'">
					<link_field type='parent' field="Urn" />
				</link_multiple>
			</property>
			<property name="EncryptionState" type="int" report_type="DatabaseEncryptionState" access="Read">dek.encryption_state</property>
			<property name="CreateDate" type="datetime" access="Read">dek.create_date</property>
			<property name="OpenedDate" type="datetime" access="Read">dek.opened_date</property>
			<property name="RegenerateDate" type="datetime" access="Read">dek.regenerate_date</property>
			<property name="ModifyDate" type="datetime" access="Read">dek.modify_date</property>
			<property name="SetDate" type="datetime" access="Read">dek.set_date</property>
			<!--as of now AES is the only encryption algorithm used for encrypting -->
			<property name="EncryptionAlgorithm" type="int" report_type="DatabaseEncryptionAlgorithm">(case dek.key_algorithm when 'AES' then (case dek.key_length when 128 then 0 when 192 then 1 when 256 then 2 end) when 'TRIPLE_DES_3KEY' then 3 end)</property>
			<property name="Thumbprint" type="varbinary" size="32" access="Read">dek.encryptor_thumbprint</property>
			<property name="EncryptorName" type="sysname">ISNULL(cer.name, asymkey.name)</property>
			<property name="EncryptionType" type="int" report_type="DatabaseEncryptionType">(case when cer.name is null then 1 else 0 end)</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<!-- This file corresponds to golden bits.  To edit properties that are common to both builds, edit the inc_server.xml file. -->
<EnumObject type="Server" impl_type="Server" min_major='7' cloud_min_major='10'>
  <settings>
    <prefix fields="#ServerType#">
      DECLARE @edition sysname
      SET @edition = cast(SERVERPROPERTY(N'EDITION') as sysname)
    </prefix>
  </settings>
  <properties>
    <include file='inc_server.xml' />

    <version min_major='10' cloud_min_major='10'>   
      <property name="Name" type="sysname" cast='true'>
        serverproperty(N'Servername')
      </property>
      <property name="InstanceName" type="sysname" access="Read" cast='true'>
        ISNULL(serverproperty(N'instancename'),N'')
      </property>
      <property name="ServerType" type="int" expensive='true' report_type2="Microsoft.SqlServer.Management.Common.DatabaseEngineType" access="Read" cast='true'>case when @edition = N'SQL Azure' then 2 else 1 end</property>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>0x0010</property>
    </version>
    </properties>
</EnumObject>
BSJBv2.0.50727l]#~^#Strings5{#USd#GUIDt(#BlobW_	399)




0
A]ub



,ob.b


6

yL@D"w"""<#"o##"#"8899
@;>cD[GDJ%J|M
N
NOQQ= RjT%J?[b9\bzb-Spة"*9Rzbt֪I)xe_))"R^Ӭ.ƭݭGb
殆

b

bb_|"ް
5

b첆<a8u888³8!b鴼0">
d׵ĵ鵼.@n
ɶ8ay8緿

Kmuʸ)Z~gຆ(b
4%Jٻ%J%J%J)""ϼռ./9-KnĽ&939
y
ĵĵ]߿$%itdĵ
= 85†M†oœÜ*:ftittttt!t-'t-,t-0t-4t-8&t-<:t-AJt-F[t-Nst-St-Xt-\t-`t-dt-kt-qt-vt-{t-t-$t-5t-Ht-Wt-nt-xt-t-t-t-t-t-t-'t-:t-Pt-^t-{t-t-t-t-t-t-t-t-t-t-0t->t-Wt-wt-#t-(t-+t-1t-6t-Dt-G$t-N0t-h;t-lIt-p^t-unt-|~t-t-t-t-t-t-t-t-	t-t-5t-Ht-Tt-bt-rt-t-t-t-t-t-t-t-t-$t-	:t-
Lt-\t-gt-st-t-"t-'t-+t-/t-3t-6t-:-f9-jH-oV-re-o-|--------		-	-	-,	-:	-O	-b	-k	-		-	t	t
	t	t!	t'	t*
t/
tB%
tQ7
tTN
tVf
tZ
t]
t-a
ta
te
to
tHstHu1tHwTty{t~ttttth-t5th-tKtjttt9t=t#t#t&th)	t-t3*
t63
t8<&
tOD@
tOGV
tOIl
tOK
tOM
tOO
tOS
tOX
tP[tS`%tSb;tSdRtTfmtThtTjtXvtZ{tZ}t\t_"tb(tdEteXtmltvtwtwtw-M	tMttt-t-8t-Qtbtqttt t\!t\!t!t!"t!%$tQ!'<tU")Rtx#/ntx#0tx#1#2#dt-TktktX%,t-JtbtXK9>1E!37<<<A
FF8JENhNNZ`iryJFNN NU"$^"Nl"J")"."$V$V($V3$VB$$VR$VU$V]$$V]$Vb$Vp$$V}$V$V$$V]$V$V$$V]$V$V$V$$V$V$V$V$$V$7V$7V$7V$7V$7V$7V%7$V	%TV%TV}$TV%T$V%XV%XV)%XV%X$V/%aV7%aVB%a$VJ%eVQ%eV\%e$Va%iVe%iVk%i$Vt%mV$mVx%mV%mV%mV$m$V%vV%vV%vV%vV%v$V%zV%zV%zV%z$V$~V$~V%~V%~$V%V%V&$V
&V&V&$V]$V!&$V7&VA&VK&VV&$Va&Vk&Vu&V7&VA&VK&$V%V&V&V&V&V&V&V&V&V&V&$V&V&V&V'$V]$V'V'$V]$V'V '$V%'V*'V3'$V@'VG'VM'V['$V@'V`'V['$V@'VM'V['$VG'VM'V['$V]$Vo'$Vx'V'$V'V'V'V'$V%V'V'V%V'V'$V'V(V($V!(
V
V%(
$V*(V3(V8(VB($VM(VR(Vb(Vi(V&V&Vs(V(V(V($V\%Vs($V\%!Vs(!V(!$V(&V(&V(&V(&$V*(+Vs(+V(+V(+$V]$0V\%0Vs(0V)0V'0V)0$V!(5V )5V)5$V]$:V$:V($:V3$:VB$:$V]$?V*)?V0)?V;)?V@)?VM)?$V])DVc)DVm)DVv)D$V)IV)IV)IV)IV)IV)IV)IV)IV)IV)I$V)NV)NV)NV)N$V)SV)S$V*XV%XVm)XV%XVc)X$V)]V)]V)]V)]$V]$bV}$bV*bV*bV-*bV?*bVV*bVs*bV*bV*bV*bV*bV*b$V*vV	+v$V]${V+{V)+{V>+{VH+{Vg+{$V*(V|+V+V;)V@)VM)V+V+V+V+V+V+V+V+V,V,V*V$,V*)V+,V0)V;,V%VD,V%$V]$VU,Vg,$V]$Vp,Vz,$V]$V%V!(V\%$V!(V,V,V,V,V,$V]$V,V,V,V,V,$V]$V%V-V,$V]$V-V-V-$V]$V$-V(-Vt%$V.-V6-V&$V>-VH-$V]$VR-$V[-Vf-V]$$V]$VR-Vn-$V]$Vv-V-$V-V&V-V%V-V-Vt%$V- V- V- V- V- V- V- V- V. V& $V.%V.%V&.%VJ%%V0.%V5.%V;.%VI.%VQ.%VY.%Vd.%Vt.%V~.%V.%$V]$4V.4V.4V.4V.4V.4$V]$9V.9V/9$V]$>V/>V/>V!/>$V]$CV./CV3/CV9/C$VB/HVG/HVL/HVZ/H$V&MVl/MVv/M$V]$RV)RV/RV/RV/R$V-WV-WV/WV%WV/WV/WV/WV/WV/WV/W$V
0\V0\V0\V!0\V.0\$V]$aV20aV:0aVt%a$VB0fVK0fVS0fV[0f$Vn-kVf0kVn0k$pVw0sV&sV0sV&s$pV)%V
&$V]$V0V0Vt%$V]$V0V0$V$V$V$$V&V0V0V0$VV0V0$V3(V1V1$V1V!1V$1$V'1V&$V.-V6-V01$V71VZ1Vk1V~1V1V1V1V1V1V2V:2VQ2Vn2V2V2V2V2V2V$V2V
3V2V3V43V@3VH3VS3Vk3V3V3V3V3V3V4V(4V=4VY4Vt4V4V4V4V4V($V4V]$V4$V4V5V
5Vt%$V5V%5$Vx' V25 VB5 VJ5 VS5 V]5 V  Vj5 Vv5 V5 V5 V5 $V5%V5%V5%V5%$V5*V5*V]$*$V6/V
6/V6/V6/$V014V%64V/64V564V?64V%4$V49VJ69VQ69VW69V49$V^6>Vc6>VJ6>Vj6>V%>$Vo6CVy6CV6CV6CV6CV6CV%CV6C$V6HV6HV6HVM(HV,HV6HV6H$V56MV01MV?6MV%6MV%M$V7RV7RV7R$V]$WV"7WV27WVE7WV]7WVn7WV7W$V7\V7\$V]$aV7aV7aV7aV7a$V'fV'fVM(fV%fV7f$V7pV7pV8pV8p$V%uV"8uV38u$V;8zVB8zVI8zVQ8zV[8zVd8zVk8zVt8zVb	zV}8z$V;8VB8VI8VQ8V[8Vd8Vk8Vt8Vb	V}8$V%V8V8V8888N889$VK=	V7	V=	V=	d?Nk?7
z?<
Jn@
@@8@NA
$VSA
V[A
V'
aAiArAyAAANk?7
Bk?7
5BJEB<
[BNC C )C<
:C<
SCNFdC<
xCPEaAXE	rEwEEJEEcE<
FF-F2F?FFFEFNXF'H.HN9H HHQIQ'IQ;IQSIQtIQIQIQIQIQIQIQIQIQIQIQIQIQJQJJFJJNJWJJ<
JNJNJ)K K4(K0K7=KNK7=KNKLLLNLLLLMXEGMFZMeMlMwM?MBMM~M~-F4N=NHNF1[NxNM~M~NNO<
O"@ O&OOP+PN&PN8P1FPXP6$VR1VR1wMRRRRNSS S-S8SwM?SHSXSpSSSSSNSSSQIQS1I1'I1;I1SI1S1I1I1T1T1I1T1$T1-T1;T1CT1KT3ST<1T1T1T1T1T1U$V)UXV/UXVEUXV]UXVnUXVUXVUXVUXVUXVUXVUXVVXVVXV0VXVAVXVVVXVeVXVuVXVVXVVXVVXVVXVVXV
#XVVXV-XVVXVVXVWXVWXV#WXV2WXV@WXVcWXVrWXVWXVWXVWXVWXVWXVWXVWXVWXVXXVXXV"XXV0XXV>XXVJXXVUXXV`XXV2XV$XV2XVH3XV3XVzXXVXXVXXV(XVXXVXX$V)UVVV
#V2V$VXV2V@3VH3V3VXVXV(VXVX$VXVYVYV2YVEYVVYVpYVYVYVYVYVYVYVYVYVYV	ZVZV6ZVEZV&VbZVtZVZVZVZ[JH[[ wMBMV`V`VaV(aV>aVQaV_V_V_V_V_VmaV`V `V}aV5`VL`V[`VaVg`VaVaVaVv`V`V`V`VaVaVaV6V6V6VM(V,V6V6V%V
bVbVbV'bV.bV:bVIbVYbVkbb%b&$Vb&Vb&Vb&Vb&Vb&Vc&Vc&V2c&VMc&Vfc&Vzc&Vc&Vc&Vc&Vc&Vc&Vc&V
d&Vd&V5d&VJd&V]d&Vsd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Ve&Ve&V.e&V9e&VKe&Vee&Ve&Ve&Ve&Ve&Ve&Ve&Ve&Ve&Vf&Vf&V#f&V0f&V:f&VDf&VWf&Vpf&V|f&Vf&VW&VV&Vf&VW&VW&Vf&Vf&V#W&Vf&Vf&V2W&V6Z&Vg&V2g&VEg&V]g&VrW&Vtg&Vg&VcW&Vg&Vg&Vg&Vg&Vg&Vg&VW&Vh&Vh&V.h&VW&VW&V>h&VW&VQh&VW&VW&VW&VX&Vdh&Vvh&V0X&Vh&Vh&VX&V"X&V>X&Vh&VJX&Vh&VUX&Vh&Vh&V`X&Vh&Vi&V
i&V!i&V.i&V@i&VSi&Vci&Vpi&Vi&Vi&Vi&Vi&Vi&Vi&Vi&Vj&Vj&V5j&VJj&V^j&Vpj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&V
k&V!k&V/k&V=k&VGk&VXk&Vqk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vl&Vl&V.l&V=l&VNl&VZl&Vdl&Vpl&Vyl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vm&Vm&aA&|N׊d(Hd(d(d(ed(d(d(|d(ύd(+d(d(ݎd(*d(d(d(;d(d(ސd(^d(d(d($Vbi(Vbi(Vbi(Vbi(Vci(Vci(V2ci(Vfci(Vzci(Vci(Vci(Vdi(V5di(VJdi(V]di(Vsdi(Vdi(Vdi(Vdi(Vdi(Vdi(Vei(Vei(V.ei(VKei(Vei(Vei(Vei(Vei(Vfi(Vfi(V#fi(V0fi(V:fi(VWfi(Vpfi(V|fi(Vfi(VWi(VVi(Vfi(VWi(VWi(Vfi(Vfi(V2Wi(Vgi(V]gi(VrWi(Vtgi(Vgi(VcWi(Vgi(Vgi(VWi(Vhi(Vhi(V.hi(VWi(VWi(VWi(VWi(VWi(VWi(VXi(V0Xi(Vhi(Vhi(VXi(V"Xi(V>Xi(Vhi(VJXi(Vhi(VUXi(Vhi(V`Xi(Vhi(V
ii(V!ii(V.ii(V@ii(VSii(Vcii(Vii(Vii(Vii(Vii(V5ji(VJji(V^ji(Vpji(Vji(Vji(Vji(Vji(Vji(V
ki(V!ki(V/ki(V=ki(VXki(Vki(Vki(Vki(Vki(Vki(Vki(Vli(Vli(V.li(V=li(VNli(VZli(Vdli(Vpli(Vyli(Vli(Vli(Vli(Vli(Vli(Vli(Vmi(Vmi(aAi(|Nݔ(B(((h(ܖ(5(((I(Ϙ("((י(N((!(((>((ޜ(7(((9(((k(((=((ˠ((Y(((O(((6(z(((
1t11111111<1P1 K% R) R-Y!R2!R8!X)"`>)"iC0"sH8"~L@"PS"Xg"a{"k"v"""#"P*#v, #1H#2p#3#4#5#6#7#7
$80$;P$<Y$=b$?v$A$D$F$HI$
I$J$K$M$ O$'R%'.U%'4V+%';X;%2C[c%2K]%9R_%9Za0&>
e>&>fL&>g[&>ij&> kz&>'n&J.q&J4r&J;t&Yw&Ydy8'Yk{w'e}'ed'ek'sr'{''{'({(3(G(e(x(((((()$)d){w)))))))*'.*'A*/S*@e*@x*E*M*W*c*c	+c +WL+cx+R)+PQ+eV+z\+b+i+o+v+v+{,
,{,0,E{&,Y/,m7,z@,L,,,,,0-)-)./?.AL.A.T.d-@/-/81L22L3)Z3)v34)3Q3g)4v4,44	4445l67Gt7P)7Z7o7	78(8)49)9)9	)::6);HM;U;]^;r)g;)p;;h<<S<[<f<)t8=JL=WP@\@AR)HAR)pAxAACTC$E[EtF)GGG H	(H*
0HR)8HR)H H+ H= HHEvIm
IzIX 
!Ih 
4Ip <Iy EI qI -I -I -I -I -J -.J -KJ -hJ -J J HK "K $K V&,N!'O!'O%!'O4!)'PG!Q'QP!'Qd!)Qz!))4R!)AR!))PR!)R!*S!.S!)0SR30SR81T")3HT
#)3T#)3T #33mU/#)4UT#>4Ub#6U#F6HV#-7V#M8V#T9W#[:TWf<aW*l<pW#r<W#y>W#@X#B7X#EDX#HY#L(Y#NDY$QYRY*S$ZT5[R)U=[8UE[8UN[9VV[9V_[9lWg[59Wp[L9fXx[X9X[d9Y[n9-Y[RZ[R[[R)^\x9)^!\~9)^8\9^^9_^9`D_9a_Ra_R)b_9b_9b_Rc_9fax9)ha:ha:hb:hRbRh[bA:	irbN:	ibRibb:jbk:jbz: 	jb: 	jbRjb:kc:kc:kc:kd;k(d;kTd;kd3;,	kdM;0	ke^;k)eg;kDer;6	kf|;k!f;k3f;kEf;kWf;kof;;	kfRkfN<lf\<lfmlf;lfzV	lgq<\	l6gb	lMgN:	ldg<h	l{g<n	lg<t	lg<z	lg	lg	lgRlg=	m"h;;	m>hRmGh&=	nrhRn{h6=oh@=oh9ohRoh:ph9piRpiR=q/iY=qGih=	qriRq|i=	ri&=ri=rjRr	j= 	s j;s8jk:sPj=shj=sj>sj>sj9sj;;	sjRsjM>tj= 	tj;;	tkRtk9u)kRu2k9v?kRvHk9wUkRw^kU>xpk= 	xkc> 	xk9xkRxk&=yk> 	yk9ykRyk>zl>zl>	zn>	{o>
}Ho?	o?
p#?
0p8?
<p8?%
pG?pG?/
pR?	qR)qR)q?A
q= 	q?q?q?q?r	?	r?r?)r?)#r?H
+r?N
4r@U
Prh=@\
grR)zr9@HrC@k
rP)rG@r
`sO@Vs`{
sZ@
sR
s	}@Lt@t@)tR
tR
uR
Fu"A
\uC@
ruC@
u;u)A-u3A
uIA
v@\
(wR
wh=x|;xA- xA
HxAxA
xA
xAxA-xAx;yd9yn9-yC@
.yR
Zy$B
wyR
y"A
y@\
yR
y"A
y@\
yR
y"Ay@\
zRTz0BE{h=R{?H
Z{R)l{R{oB{}B{B{h={B 	{BA
{B`|R%x|C 	|C 	|CA
|C 	|CA
|v|C|D|PQ}eV
}DH;}!D0C}/D6L}=D0T}PD6]}}kD=~rDE~yD=IDlDLD 	D\R)=	_E\&=hE-|;A-"R),0BU
EoBh=R=ɃE-ԃE
E-R)RhP
Frc> 	@\
?$F
"AxR)sFLF3Fv†FˆFنF-FFF		F
G)$G8GTmGzGrDG+G;GPG
_GpGGG)R)BH0\THeHsH{HFGËG)ӋR)G)HH!HH[HH{HGF R) F K% č^J jJ#drJ(x~J)G+tJ
.G0R)3G3ER)6PG6R)9G9R)<G<R)?J?J@(GAvR)DJDȕJEJIKGJTR)M\GMܚG)PR)PR)PkDP
K-Q4GRўG)UGUtR)X|GXR)[G[HR)^PG^آR)aGaR)dR)d)Fd,FK<d~M>dWK@dXG)eheKVetK)fPK)fKVfܨGgKjFkG)kK-kGlŮR)oЮGoYR)raR)rpFrtGr1LMuٯDLTv[L]wyL-xHLdyR)zǰFz̰GzHL}G)
Rl*:2L-;R=HCEsLMTM-]RxsMH{&Ms-MH6MsR)R,R|MM-MM-MM-:L-NHȳNsѳ=Hٳ_Es R)3N;NDNtNȺN?>OO!O,O 5O=ORO`O`OiO/K%<R{= 	R)OYR)aRVqR;0B;bPDxPKPPSPSPXPPP),P);Q)I	'QHV	1Qc	>QHhx9)RQ0aQ lQ@qQ0zQHX)	QHQ^8	`SB	`cVQhdQmtQrQ>Q|QJQ*R8
RYRg%Ru-R6R^?RHRPR[RASeR4oRhKR)TK%4pTATATTNTUR)ZZxZR)2R):R)Pp'[DDSJR[^[R)R
j[H-[<[hL[[[-R)	<[0	[c	G
F
G)
R)
[c
[9R)D[c'\#R)G7R\*^R)hGR)$R-4h\XR4h\;\E \M"8\W%\_'R)+R)+R)+R)+\l+"\q+*]w,6]w,B?]w,NY]w,Zs]w,f]w,r]w,~]w,]w,]w,]w,^w,*^w,>^w,R^w,k^w,y^w,^w,^w,^w,^w,&^w,2^w,>_w,J_w,V _w,b-_w,n8_w,zH_w,[_w,o_w,_w,_	,_-_	/_	0_	1`2 `	45`	5L`6"[`	8/g`	9<v`	:I`	;V`	<c`	=pR)>x\l>\q>[R	?[R&@[R
&BK%E<R(EK|;(FSc(F\s(GxC@(I"m(K/m(MO9m'(OKm'(Ocm'(Otm'(Om'(Om'(Om'(Om'(Om'(O n'(O 'n'(O <n'(O Pn'(O' on'(O0 n'(O9 n'(OB n'(OK n'(OT n'(O] o'(Of o'(Oo 6o'(Ox Po'(O bo'(O qo'(O o'(O o'(O o'(O o'(O o'(O o'(O o'(O p'(O (p'(O ;p'(O Jp'(O `p'(O ~p'(O!p'(O!p'(O!p'(O#!p'(O,!p'(O5!p'(O>!q'(OG!)q'(OP!Cq'(OY!Yq'(Ob!hq'(Ok!yq'(Ot!q'(O}!q'(O!q'(O!q'(O!q'(O!q'(O!r'(O!r'(O!+r'(O!Dr'(O!Zr'(O!mr'(O!r'(O!r'(O!r'(O!r'(O"r'(O
"s'(O"s'(O";s'(O("Rs'(O1"ns'(O:"s'(OC"s'(OL"s'(OU"s'(O^"s'(Og"s'(Op"t'(Oy",t'(O"<t'(O"Pt'(O"bt'(O"xt'(O"t'(O"t'(O"t'(O"t'(O"t'(O"t'(O"u'(O"3u'(O"Bu'(O"Ru'(O#au'(O	#ru'(O#u'(O#u'(O$#u'(O-#u'(O6#u'(O?#v'(OH#v'(OQ#"v'(OZ#4v'(Oc#Cv'(Ol#Rv'(Ou#av'(O~#yv'(O#v'(O#v'(O#v'(O#v'(O#v'(O#v'(O#	w'(O# w'(O#4w'(O#Ew'(O#Xw'(O#vw'(O#w'(O#w'(O$w'(O$w'(O$w'(O $x'(O)$x'(O2$2x'(O>$Kx'(OJ$cx'(OV$yx'(Ob$x'(On$x'(Oz$x'(O$x'(O$x'(O$x'(O$y'(O$y'(O$$y'(O$>y'(O$Vy'(O$hy'(O$zy'(O$y'(O
%y'(O%y'(O"%y'(O.%y'(O:%y'(OF%y'(OR%
z'(O^%z'(Oj%-z'(Ov%Nz'(O%gz'(O%wz'(O%z'(O%z'(O%z'(O%z'(O%z'(O%z'(O%z'(O%
{'(O%{'(O&${'(O&:{'(O&V{'(O*&h{'(O6&x{'(OB&{'(ON&{'(OZ&{'(Of&{'(Or&{'(O~&{'(O&R)O&R9(O&R@(P&RG(Q&RR'S'{@(S%'{@(T9'C@O(UC'O(VP'sX(Wl'C@X(Yx'{X(['|X(]'j[H_'_X(|_`(|_i(9m`w()|`(Kma(;|a(cmb(S|b(tmc(d|c(md(|d(me)|e)mf%)|f4)mgB)|gQ)mh_)|hn)ni})|i)'nj)}j)<nk),}k)Pnl)@}l)onm)_}m	*nn*q}n(*no7*}oG*npV*}pf*nqu*}q*nr*}r*os*}s*ot*~t*6ou*&~u+Pov+@~v +bow/+R~w?+qoxN+a~x^+oym+s~y}+oz+~z+o{+~{+o|+~|+o}+~}+o~,~~,o',~7,pF,V,(pe,u,;p,+,Jp,:,`p,P,~p,n,p--p-/-p>-N-p]-m-p|--p--q--)q--Cq-3.Yq.I'.hq6.XF.yqU.ie.qt.w.q..q..q..q.ɀ/q/ր/r./>/rM/]/+rl/|/Dr/4/Zr/J/mr/]/r/r/r00r&060rE0ʁU0rd0ꁌt0s00s00;s0+0Rs0B0ns0^1s1y.1s=1M1s\1l1s{1Ƃ1s1ق1s1邌1t11,t12<t2,&2Pt52@E2btT2Rd2xts2h2t22t22t22t2ƃ2t3փ3t-3탌=3uL3\33uk3#{3Bu323Ru3B3au3Q3ru3b3u4x4u%454uD4T4uc4Ąs4u4ل4v44v44"v444v4$5Cv53-5Rv<5BL5av[5Qk5yvz5i5v5|5v55v55v56v6҅%6v46ㅌD6	wS6c6 wr664w6$6Ew656Xw6H6vw6f6w
7w7w,7<7wK7[7wj7Ȇz7w7ن7x77x772x7"7Kx8;!8cx38SF8yxX8ik8x}88x88x88x88x9Ї$9x69އI9y[9n9y99$y99>y9.9Vy9F:hy:X':zy9:jL:y^:xq:y::y::y::y:̈;y;߈*;y<;툌O;
za;t;z;	;-z;;Nz;>;gz;W<wz<g-<z?<yR<zd<w<z<<z<<z<ω<z<݉=z=퉌0=
{B=U={g=z=${==:{=*=V{	=F	=h{
=X
>x{ >h3>{E>rX>{
j>}
}>{>>{>>{>>{>Š?K%jEwE!EbEEËE싌E-EIE}EFь!F6F2CFWXFeFzF덈FFLFqFFĎFFGFGf$G1GʏFG SG  hGQ!uGk!G"G"G#G2#Gy$G$GՑ%G%H9&H]&4HRn('CH|;u((KHc{((THs()pHC@(+|H"m(-H/m(/H1H9m(1Hcm(1Htm(1Hm(1Hm(1Hm(1Hm(1Hn(1H'n(1Hn(1In(1
In(1Io(1Io(1(I6o(11IPo(1:Ibo(1CIo(1LIo(1UIo(1^Io(1gIp(1pI(p(1yI;p(1I`p(1Ip(1Ip(1Ip(1Iq(1ICq(1IYq(1Ihq(1Iyq(1Iq(1Iq(1Iq(1Iq(1Iq(1Jr(1	Jr(1J+r(1JDr(1$JZr(1-Jr(16Jr(1?Jr(1HJs(1QJns(1ZJs(1cJs(1lJs(1uJs(1~Js(1J<t(1Jbt(1Jxt(1Jt(1Jt(1Jt(1Jt(1Jt(1J3u(1JBu(1JRu(1Jau(1Ju(1Ju(1Ku(1Ku(1Kv(1 Kv(1)K"v(12K4v(1;KCv(1DKRv(1MKyv(1VKv(1_Kv(1hKv(1qKv(1zKv(1K	w(1K w(1K4w(1Kw(1Kw(1Kw(1Kw(1K2x(1KKx(1Kcx(1Kyx(1Kx(1Kx(1Kx(1Ly(1
L$y(1L>y(1LVy(1%Lhy(1.Lzy(17Ly(1@Ly(1ILy(1RLy(1[Ly(1dL
z(1mLgz(1vLwz(1Lz(1Lz(1Lz(1Lz(1Lz(1Lz(1Lz(1L
{(1L{(1L:{(1LV{(1L{(1L{(1L{(1L{(1M{(1MR)1MR(1 MR(20MR(3oMR4M5M{(5M{(6MC@(7M(8Ms(9MC@(;M{(=N|(?!Nj[HA(NAN|AN|AN9mBN)|B
OcmCOS|C'OtmD5Od|DDOmERO|EaOmFoO|F~OmGO|GOmHO|HOnIO|IO'nJO}JOnKPq}KPnL P}L0PnM?P}MOPoN^P}NnPoO}P~OP6oPP&~PPPoQP@~QPboRPR~RPoSP~S	QoTQ~T(QoU7Q~UGQoVVQ~VfQpWuQWQ(pXQXQ;pYQ+YQ`pZQPZQp[Q[Rp\R\ Rp]/R]?Rq^NR^^RCq_mR3_}RYq`RI`RhqaRXaRyqbRibRqcRwcRqdSdSqe'Se7SqfFSɀfVSqgeSրguSrhShSriSiS+rjSjSDrkS4kSZrlTJlTrmTm/Trn>TʁnNTro]TꁌomTsp|TpTnsqT^qTsrTyrTssTsTstTtUsuUƂu'Usv6UقvFU<twUU,weUbtxtURxUxtyUhyUtzUzUt{U{Ut|U|Vt}Vƃ}Vt~.V탌~>V3uMV#]VBulV2|VRuVBVauVQVuVVuVVuWĄWu&Wل6WvEWUWvdWtW"vWW4vW$WCvW3WRvWBWyvWiXvX|.Xv=XMXv\XlXv{X҅XvXㅌX	wXX wXX4wX$YwYw&Yw5YEYwTYdYwsYنY2xY"YKxY;YcxYSYyxYiYxZZx-Z=ZxLZއ\ZykZ{Z$yZZ>yZ.ZVyZFZhyZXZzy[j[y%[5[yD[T[yc[̈s[y[߈[y[툌[
z[[gz[W[wz[g\z\y-\z<\L\z[\k\zz\\z\ω\z\݉\z\퉌\
{\]{]%]:{4]*D]V{S]Fc]{r]r]{]}]{]]{]]{]Š^K%mmmZmv	nnЕ+n8n?MnZnon|nnMninnǗnn(nsoo蘈&o;oBHof]ojooo%ooooٚoo@ocppʛ)p6p"KpYXpxmpzpŜpppSpsppɝpqqW$qy9qFqឌ[q%hqH}qqqƟqޟqq$qQqirr'r⠈4rIr+VrBkrsxrrȡr塌rr4rdr}rs̢s"s7sJDsbYsfs{sңs꣌s%sLL@M>v>>>>>ĬȬĬάĬȬȬ







$$






QQ\QQ\

hpx$$$$$$

> L @ LQek}wMwMwMwMwMe?SJTTwM'h}eӱױe47=BFY=BFY=Bhn~FYnnnwMWBFLLӱ}ӱwMeRBF\f}pw\"+eMFLZF{-0@-SǹvǹҹvwMwMҹZeeeĬĬĬeĬĬeĬWWWWYeĬeeeĬeeeĬeeeĬjpTxC?SúúúǺ˺Ĭ
eĬĬeeĬYi"9wM999wM99wM9˻лջ?M"4ջ˻˻0wM9;AwM9wM9wM9wM9wM9GOwM9BMXdwM9wM9wM9wM9wM9wM9wM9wM9wM9wM9wM9wM9?wM99wMfi?MBMWZMeMlMwM?MBMZMeMlMwM?MBMMMĬBM4H?SfK׾BMwM++(9(9 wM)5<>I5<>wMbGGGW47n   %wM944wM9wM9wMBM^Rf^f^}ĬQBMQ;;FPFPFPFP[dlsdddd[d[d[d[d;;FPFPFPFP[dlsdddd[d[d[d[d	
!!%)1

AEIa@L)R-1R-9R-AR-IR-QR-YR-aR(qR-yR-RRR-R-R-R-R-R(RsR)R-	R)R)R)))5)sHY)Y)f)X)	|>))))))))))R)**	**&*-*	H
 ''.'4';26*	R)IR)sHIJ<*>
>>>> >'J.J4J;W*W*]*c*i*p*x*****]***R*!)*	*''*/@@*E*M*c*R-01R);*R*1U1F1]*=1q*i:a@)X)1=+q+Z@
R)9@Hq]+1ۮd+9j+1r+1x+1%+15+qE+9+1u+q+QR+1>+QkD+	̯+C@+Z@+iLi|;L1sFL9@Hq.f1@HyR,yi,%,%,H(-)C@R)lӰ6,<,C@6R+QOK,C@1s[,Z@~,@@qR)@=*qU9@H쮗,R),Y,1]&=˱,`,1v,"1SR)C@++iβir;6	iڲ,1 ,U-[-R)b-`1AR)AӰ6,A(-4-C@-AG-8?	XAN-C@-1R)yc-R)m---ϳ-|;e,1ڳ-IsH!.-(.IJ0.9R.IQs.Q.Q.Qȴ.q޴q
#)q#)	.QR.QR.)R.1R-aR.q.q.q.9)Q.Q#.`.IR)Q[q9lQ.fRI/YdR/Q9laR4iR)1qԶb1qb1y`Ri11H1"H2p1q>b1qPz11yfy1y|;ylQ1R-R1;1R-x9).1>1R)RsC@2!	2IJ2	M	HR(2:	W.2	B22a2IRs`Sa@)2iR)iL-i_E-i
ii(i92iF2q]*1x2yLy39@H`SϺ2׺2{2<U-`2S=3Z@
β	R-`c	4i3|;co3RR)R3jT3黙3`3!)|;3Z@
13/3R3Ri1Ri1C@3i(49`.4AHA>5499@HIP4W4Q]$^4QRc4Qw4R-&Y~4Y	qR)4=3yϽ5yR-߽5轵c"51R(5IR1>x9)M*Ili5*R)R)UC@~55);0˾X>	X))x9)i=i:R~6C@646ASlQeRIYT6jzl6ɿ6ؿ66ؿ6'QH1QRQ0ssX)X)QHPR97Q`*7Ui3HRoRhR17)H)sH1F11	Rs		`h	7	~L		7770!71w7R8&89ϳ89Z@
ϳ$8ARB8R)R4\;zp8Qw8h\Q:Y8\M\_![R8M#÷8Y.!R8	Z@
#(-2; $@(,E0J4O<@@DHPTX\\dhl@t@x|@q@@ $(@048<@DOLPTX\`dhlpt|@@@@@@ $(@048<@@DJLPT\`dlpt@x@JE;\@@@J $(,48<@D@HPTX\@dhlpt@x|JE;@@@JE;\glq $(,@04J<@D@HLPTJXE\`gdqhlptx|O@@J@J@$(,0@8<@D@LPT\`hltx|@@JE;\@JE;\glq *$/,048<@HLPX\`@dlptx@@@@JE;\g@J@ @(,08x<z@|D~LxPzX\`d@lpt|@@@	J	E	;		\	g	l	q 	*$	/(	q,	0	4	8	<	@	D	H	L	P	T	X	\	`	d	h	l	p	t	x	|														;					@		J	E	;		\	g	l	q


@



@$
(
,
0
@8
<
@
D
@H
L
JT
X
\
`
d
l
p
t
x
|











@

J
E
;
@



J


@



 $(,;48<k@DqLPT@X`dhptx|@JE;\g@@048l








S
j

 
$
/(
lp@]JE;\glq*/q $(,048<@DHLPTX\`dhlptx|bglqv{@JE;\glq*/ @$(J,E0;48\<g@lDqH*L/PqTX\`dhlpt 6 [    )!R!u!!!!"0"M"d"""""
#*#K####$:$M$z$$$$$ %$$%(1%,J%0[%4h%8%<%@%D%TX\`@dhJlEp;tx\|glq*/qbglqv{ $(,048<@DH]LPTX\&`&d#h &lp-t%&x*&|/&4&9&>&C&H&M&(R&W&\&a&2f&k&p&u&z&&&&&&O&&&&&&&&&&&& &$&(&,&0&4&8&<&@&D'H'L'PTX'\'`'d'h$'l)'p.'t3'x8'|='B'G'L'Q'V'['`'e'j'o't'y'~''''''''''''''''''''''''''(|@JE;\glq*/q $(b,g0l4q8v<{@DHLPTX\`dhlp]tx|&&# &-%&*&/&4&9&>&C&H&M&(R&W&\&a&2f&k&p&u&z&&&&&&O&&& $&(&,&0&4&8&<&@&D&H&L&P&T&X&\&`&d&h&l'.@T.l.9.	:.+8:.3:.;:.C:.S*.[:.c:.k*.{*.*.*.:.W<.=.?.@.A._C.D.5F.G.H.]J.K.M.qN.O.Q.R.U.EW.X.EZ.[.F].^.?`.a.3c.d. f.g.i.j.l.m.o.p.r.s.t.|v.w.oy.z.v|.}.t.߀.Y.Ӄ.T.Ά.P.։.;............
........ݨ.5...g.ů.+...X..6...{..B...h..?..E..G..1...P...`..,...P..#...R.......s..c..[..?..#..
.x..d..Z.cC)ck*k*k*k*k*+`/333{3{+/	3	{#	3
3c
3:/:/:/#3
3c333+}0#3c333ck*k*k*k*k*k*#k*Ck*ck*k*k*k*k*#k*Ck*ck*k*k*k*k*k*Ck*c)ck*k*k*k*#k*Ck*ck*k*k*k*k*#k*Ck*k*k*k*C)k*Ck*3I8C	c	C	/:0/:0/:)00:=0!0:R0A0:i0AU:0aU:0U:0U:1U:
1U:1V:51$j{d{)))**C*L*R*******++#+/+5+B++++++	,),B,Q,c,,,,,,,,-@-j----...7.L.Y.g.q.......//// /&/,/9/@/Z/U11111112282T2X2g2o2x22222222233'373C3N3X3b3u333333334444=4h444444444444445505q555555566=6C6W6c6j666677$787C7M7W7e7m7y777777777+88888882989C9"$&*<JLMOPSV^adfhnpqrxz}[%*/!l'--2228<!B,F8MI8b8B8M!"/-8"8'","B9"B99899B-:6:	9/	Z:	3(B:B:&	:&	%(B;8;B;8;B;8;8<A	@;E	<8<8!<K	3/B}$B'<B,<B1<8A<P	<B<B81<8	<	l	Z:	<	<	<				=	A<P	0=	7BK=B%(Bw=Bz=B=	=	0=B=B>&	}$B:B!>B+>8D>B=BA<P	0B>&	A<P	w>B>&	>&	0=B>&	*(B>B>&	@8 @84@8e
=h@/
@
}$B=3/B
BBBB,<B9B=e
B8=B&	D&	D&	D&	-E8E/%EV/EV>E8=	0=B3/BE8=w=B>&	 @8G
H-!BH8H8H8H/H/H8HBH8H8H8KI0BH8H8H8%(Bw=/./B?M/BM/NBNB&NB%(B1N/=/vO8O>&	xR/~R8R/R/R/,F[[/H8,Fx\B`{``a(a>aQama}aaaaaaaa666M(,66%
bbb'b.b:bIbYbkb`{3/-(b3(b3(b3(b3(b3(c3(c3(2c3(Mc3(fc3(zc3(c3(c3(c3(c3(c3(c3(
d3(d3(5d3(Jd3(]d3(sd3(d3(d3(d3(d3(d3(d3(d3(d3(d3(e3(e3(.e3(9e3(Ke3(ee3(e3(e3(e3(e3(e3(e3(e3(e3(f3(f3(#f3(0f3(:f3(Df3(Wf3(pf3(|f3(f3(W3(V3(f3(W3(W3(f3(f3(#W3(f3(f3(2W3(6Z3(g3(2g3(Eg3(]g3(rW3(tg3(g3(cW3(g3(g3(g3(g3(g3(g3(W3(h3(h3(.h3(W3(W3(>h3(W3(Qh3(W3(W3(W3(X3(dh3(vh3(0X3(h3(h3(X3("X3(>X3(h3(JX3(h3(UX3(h3(h3(`X3(h3(i3(
i3(!i3(.i3(@i3(Si3(ci3(pi3(i3(i3(i3(i3(i3(i3(i3(j3(j3(5j3(Jj3(^j3(pj3(j3(j3(j3(j3(j3(j3(j3(j3(j3(
k3(!k3(/k3(=k3(Gk3(Xk3(qk3(k3(k3(k3(k3(k3(k3(k3(k3(k3(l3(l3(.l3(=l3(Nl3(Zl3(dl3(pl3(yl3(l3(l3(l3(l3(l3(l3(l3(l3(l3(l3(m3(m3([/8b8b8b8b8b8c8c82c8Mc8fc8zc8c8c8c8c8c8c8
d8d85d8Jd8]d8sd8d8d8d8d8d8d8d8d8d8e8e8.e89e8Ke8ee8e8e8e8e8e8e8e8e8f8f8#f80f8:f8Df8Wf8pf8|f8f8W8V8f8W8W8f8f8#W8f8f82W86Z8g82g8Eg8]g8rW8tg8g8cW8g8g8g8g8g8g8W8h8h8.h8W8W8>h8W8Qh8W8W8W8X8dh8vh80X8h8h8X8"X8>X8h8JX8h8UX8h8h8`X8h8i8
i8!i8.i8@i8Si8ci8pi8i8i8i8i8i8i8i8j8j85j8Jj8^j8pj8j8j8j8j8j8j8j8j8j8
k8!k8/k8=k8Gk8Xk8qk8k8k8k8k8k8k8k8k8k8l8l8.l8=l8Nl8Zl8dl8pl8yl8l8l8l8l8l8l8l8l8l8l8m8m888Ē888858V8o8888ؓ888+8A8\88883/(b(b(b(b(c(c(2c(fc(zc(c(c(d(5d(Jd(]d(sd(d(d(d(d(d(e(e(.e(Ke(e(e(e(e(f(f(#f(0f(:f(Wf(pf(|f(f(W(V(f(W(W(f(f(2W(g(]g(rW(tg(g(cW(g(g(W(h(h(.h(W(W(W(W(W(W(X(0X(h(h(X("X(>X(h(JX(h(UX(h(`X(h(
i(!i(.i(@i(Si(ci(i(i(i(i(5j(Jj(^j(pj(j(j(j(j(j(
k(!k(/k(=k(Xk(k(k(k(k(k(k(l(l(.l(=l(Nl(Zl(dl(pl(yl(l(l(l(l(l(l(m(m([/8b8b8b8b8c8c82c8fc8zc8c8c8d85d8Jd8]d8sd8d8d8d8d8d8e8e8.e8Ke8e8e8e8e8f8f8#f80f8:f8Wf8pf8|f8f8W8V8f8W8W8f8f82W8g8]g8rW8tg8g8cW8g8g8W8h8h8.h8W8W8W8W8W8W8X80X8h8h8X8"X8>X8h8JX8h8UX8h8`X8h8
i8!i8.i8@i8Si8ci8i8i8i8i85j8Jj8^j8pj8j8j8j8j8j8
k8!k8/k8=k8Xk8k8k8k8k8k8k8l8l8.l8=l8Nl8Zl8dl8pl8yl8l8l8l8l8l8l8m8m8s888Ǥ888+8C8b888¥8888?8_8~888Ѧ888868O8m888§8֧8888,8?8Y8r8888Ψ888
8	k	j	mln
o
pqrsutwvxy{|~!#%')+-/1135579
;;
==??AACC%E&G(I)K+M,O-Q.S0U1W2Y3[4]5_6a7c8e9g:i;k<m=o>q?s@uAwCyD{E}FGHIJKLMNOPRSUWX[^_`bcdfghijklnpqrz{|		

!!##%%'-)0+5-6/7183;5=7k9l;m=v?~ACEEGGIIKKMMOOQQSSUUWWYY[[]_acegikmoq	qsu w(y3{4{5}6789:;<=>?@ABCDEFGHIJKLMNOPQRSTfelstuvwxyz{|}~	
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}	

	
 !"#!$#3%5'6'7)8):+9+<-;-=/>/?1@1A3B3D5C5F7E7G9H9J;I;K=L=N?M?PAOAQCRCTESEVGUGWIXIYKZK\M[M]O^O_Q`QaSbSdUcUfWeWgYhYi[j[k]l]n_m_paoaqcrcseteugvgxiwizkyk{m|m}o~oqqssuuwwyy{{}}
	
		

 !"#$%&('*)+,.-/!0!2#1#4%3%5'6'7)8)9+:+<-;->/=/?1@1B3A3C5D5F7E7H9G9I;J;L=K=N?M?OAPAQCRCTESEUGVGWIXIYKZK\M[M^O]O_Q`QaSbScUdUfWeWhYgYi[j[k]l]m_n_paoarcqcseteugvgwixizkyk|m{m}o~oqqssuuwwyy{{}}	
!#%')+-	/
135
79;=?ACEGIKMOQSUWY[ ]!_"a#c$e%g&i'k(m)o*q+s,u-w.y/{0}123456789:;<=>?@ABCDEFGHIJY[\]^_`bacdfeghjilkmnopqrtsvuwxyz{|~}		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aa	c
cee
ggiikkmmooqqssuuwwy y!{"{$}#}&%'()*+,.-0/12435687:9;<=>?@BADCEFHGIJLKNMOPRQTSUVXY[Z\]_^`acbedfghijkmlonpqsrtuwvyxz{}|~		T
17!7
(٫}

8
{@؛xH
@ؿ1Ts( `pX$0&X(*&,51?P7L<Yh`jtx}h(XL
Vt+}@Vc vм`P8<A0S.V:PZF ^Oxa^8domrv؍ؕءxxx8*P< Pl+/x9A(E0TXXx[&`3@qD}PYxh`uX%<&R@*n0145>Hp]i	pv0?xO`\iHzPXh%EYvh(p(@489X;oADM\80	(%	5I ]@vX)?BH_(j
3h3	GK	\_	up	q	t		(		X	
0	!h	,	9	M`	d	u(			X					8
h
#
8$
L'
`K
tQ
S
X
]
a
g
j
l
) n
;r
Mw
ez
x
P

h
@
`

`
2
JX
[8
g8
`

0
X	(&.;3Z6vP:(=BHP@V@]
^hg=hpYhsjz|}ؔ0 %6HHcx|` @*Fh[ lx~@
<Module>Microsoft.SqlServer.SqlEnum.dllSqlSecureStringMicrosoft.SqlServer.Management.Smo.InternalSqlObjectBaseMicrosoft.SqlServer.Management.SmoSqlObjectDatabaseLevelSqlServerStatementBuilderExecuteSqlDatabaseCategoryFileGrowthTypeIndexKeyTypeLockEscalationTypeSpatialIndexTypeSpatialGeoLevelSizePermissionStateBackupDeviceTypeUserDefinedFunctionTypeServerLoginModeLockRequestStatusRecoveryModelCategoryClassMediaTypesLoginTypeUserTypeWindowsLoginAccessTypeDatabaseUserAccessProviderAuthenticationTypeMappedClassTypeCollationVersionCompatibilityLevelDatabaseStatusSnapshotIsolationStateRangeTypeDataCompressionTypeAssemblySecurityLevelExecutionContextServerDdlTriggerExecutionContextDatabaseDdlTriggerExecutionContextActivationExecutionContextAssemblyAlterOptionsImplementationTypeUserDefinedTypeFormatResourceUsageFullTextCatalogUpgradeOptionStopListOptionRestoreTypeCatalogPopulationStatusCatalogPopulationActionIndexPopulationActionBackupSetFlagBackupSetTypeIndexPopulationStatusChangeTrackingReplicationOptionsPrincipalTypePrivateKeyEncryptionTypeSymmetricKeyEncryptionAlgorithmAsymmetricKeyEncryptionAlgorithmCreateDispositionTypeSymmetricKeyEncryptionTypeDatabaseEncryptionAlgorithmSynonymBaseTypeDatabaseEncryptionTypeDatabaseEncryptionStateObjectClassPageVerifyMirroringRoleMirroringSafetyLevelMirroringOptionMirroringStatusMirroringWitnessStatusRetentionPeriodUnitsHttpPortTypesEndpointStateXmlFormatOptionXsdSchemaOptionResultFormatMethodXsdSchemaOptionWsdlGeneratorOptionHttpAuthenticationModesLogReuseWaitStatusXmlTypeKindRepairOptionsRepairStructureXmlTypeDerivationSecondaryXmlIndexTypeEndpointTypeEndpointEncryptionEndpointEncryptionAlgorithmEndpointAuthenticationOrderProtocolTypeServerMirroringRoleForeignKeyActionXmlDocumentConstraintNSActivationStateMethodLoginTypeAuditLevelPerfMonModeWorkloadGroupImportanceFileStreamLevelPlanGuideTypeAuditDestinationTypeAuditFileSizeUnitOnFailureActionAuditStatusTypeAuditActionTypeActivationOrderMicrosoft.SqlServer.Management.Smo.AgentAgentLogLevelsAgentMailTypeAgentSubSystemAlertTypeCategoryTypeCompletionActionCompletionResultFrequencyRelativeIntervalsFrequencySubDayTypesFrequencyTypesJobExecutionStatusJobOutcomeJobServerTypeJobStepFlagsJobTypeNotifyMethodsOSRunPriorityStepCompletionActionTargetServerStatusWeekDaysMonthlyRelativeWeekDaysPolicyHealthStateMicrosoft.SqlServer.Management.DmfDiskFileXmlReadXmlReadRepeatedXmlReadDocXmlReadPropertiesXmlReadIncludeXmlReadPropertyXmlReadSettingsXmlReadParentLinkXmlRequestParentSelectXmlReadSimpleParentLinkXmlRequestParentSelectFieldXmlReadMultipleLinkLinkFieldTypeXmlReadLinkFieldsXmlReadPropertyLinkXmlReadConditionedStatementXmlReadConditionedStatementPrefixXmlReadConditionedStatementFailConditionXmlReadConditionedStatementPostfixXmlReadConditionedStatementPostProcessXmlReadOrderByRedirectXmlReadSpecialQueryUtilConditionedSqlConditionedSqlListConditionedSqlListEnumeratorSqlPropertyLinkJoinTypeSqlObjectPropertySqlConditionedStatementSqlConditionedStatementPrefixSqlConditionedStatementPostfixSqlConditionedStatementFailConditionParentLinkSqlRequestSqlEnumResultPrimaryFileLinkFieldLinkMultipleSqlPostProcessPostProcessPostProcessTextPostProcessBodyTextPostProcessParamPostProcessCreateDateTimePostProcessCreateDatePostProcessCreateTimePostProcessCreateDateSeconds1990PostProcessCreateTimeSpanHMSPostProcessPermissionCodePostProcessOwnObjectsPostProcessSplitFourPartNamePostProcessFragmentationPostProcessIPAddressPostProcessIP6AddressPostProcessJobActivityPostProcessStatisticStreamPostProcessCreateSqlSecureStringPostProcessDatabaseInsideAttribsPostProcessAutoClosePropertiesPostProcessFilePropertiesPostProcessAuditPropertiesPostProcessUserSqlTypeConvertIDKeySqlEnumDependenciesSingletonServerDbSchemaNameSqlEnumDependenciesRequestParentSelectSqlSupportRestorePlanDataProviderRetriveModeColumnDataManipulationDdlTextParserHeaderInfoDdlTextParserSingletonDdlTextParserDatabasePermissionSetValueObjectPermissionSetValueServerPermissionSetValuePermissionDecodeDatabaseOptionSqlObjectUnionEventSetBasePostProcessDdlEventsPostProcessDatabaseDdlTriggerEventsPostProcessServerDdlTriggerEventsAvailableSQLServersPostProcessVersionPostProcessXmlToListLocDisplayNameAttributeEnumToLocResConverterJobExecutionStatusConverterRecoveryModelConverterMirroringStatusConverterStringSqlEnumeratorMicrosoft.SqlServer.Management.Smo.SqlEnumResServerDdlTriggerEventValuesServerDdlTriggerEventServerDdlTriggerEventSetDatabaseDdlTriggerEventValuesDatabaseDdlTriggerEventDatabaseDdlTriggerEventSetmscorlibSystemObjectICloneableIComparableIComparable`1IDisposableMicrosoft.SqlServer.Management.Sdk.SfcEnumObjectISqlFilterDecoderCallbackISupportInitDatabaseEngineDataISupportVersionsISupportDatabaseEngineTypesEnumSystem.CollectionsIEnumeratorObjectPropertyRequestEnumResultIEnumDependenciesSystem.DataIDataReaderIDataRecordValueTypeSystem.ComponentModelDisplayNameAttributeEnumConverterSystem.SecuritySecureStringdatalengthempty.cctor.ctorDisposeget_Itemget_Emptyget_LengthCloneCompareStringComparisonSystem.GlobalizationCultureInfoCompareOrdinalCompareToConcatContainsCopyEndsWithEqualsFormatIFormatProviderGetHashCodeIndexOfIndexOfAnyInsertJoinLastIndexOfLastIndexOfAnyop_Equalityop_Inequalityop_AdditionPadLeftPadRightRemoveReplaceSplitStringSplitOptionsStartsWithStringArrayToSqlSecureStringArraySubstringToBstrToLowerToLowerInvariantToSecureStringToStringToUpperToUpperInvariantTrimTrimEndTrimStartop_Explicitop_ImplicitSystem.Data.SqlTypesSqlStringItemEmptyLengthm_sbm_parentLinkm_conditionedSqlListm_propertyLinkListm_postProcessListm_RequestParentSelectSortedListm_OrderByRedirectm_SpecialQueryArrayListm_LinkFieldsm_distinctget_StatementBuilderset_StatementBuilderget_ParentLinkset_ParentLinkget_RequestParentSelectset_RequestParentSelectget_OrderByRedirectget_SpecialQueryget_ConditionedSqlListset_ConditionedSqlListget_PropertyLinkListset_PropertyLinkListget_PostProcessListset_PostProcessListget_Distinctset_DistinctUrnSetUrnget_SqlRequestget_ObjectNameObjectPropertyUsagesGetSqlPropertyResultTypeget_ResultTypesAddRequestPropertyRegisterPostProcessHitsAddRequestPropertiesAddFilterPropertyAddOrderByPropertyAddLinkPropertyAddConditionalsJustPropDependenciesAddConditionalsRetrieveParentRequestLinksPropagateRequestedParentPropertiesRetrieveParentRequestAddLinkPropertiesAddParentLinkPropertiesAddParentLinkPropertiesParentAddParentLinkPropertiesLocalIntegrateParentResultAddXpathFilterPrepareGetDataGetDataBuildStatementSystem.ReflectionAssemblyget_ResourceAssemblyAddSpecialQueryAddSpecialQueryToResultBuildResultFillDataWithUseFailureSystem.Collections.SpecializedStringCollectionFillDataClearHitsAddPropertyForFilterAddConstantForFilterget_SupportsParameterizationAddLinkFieldsget_CalculateParentRequestResolveLocalLinkLinksAddPostProcessTriggersStoreInitialStateRestoreInitialStateGetRequestedParentSelectFillPrefixPostfixResolveComputedFieldGetAliasPropertyNameAddOrderByInDatabaseAddOrderByAcrossDatabasesAddOrderByDatabaseOrderByDirectionGetFixedFilterValueOrderByRedirectSpecialQueryPropertyLinkListPostProcessListDistinctObjectNameResultTypesResourceAssemblySupportsParameterizationCalculateParentRequestXPathExpressionBlockInitializeMicrosoft.SqlServer.ConnectionInfoMicrosoft.SqlServer.Management.CommonServerVersionDatabaseEngineTypeLoadInitDataLoadInitDataFromAssemblyLoadInitDataFromAssemblyInternalLoadAndStoreLoadIncludeFilem_PropertyNameForDatabasem_XmlAssemblym_bLastDatabaseLevelm_bForChildrenget_NamePropertyDataTableGetRequestedDatabasesIsDatabaseNameOrDerivateCleanupFilterNamePropertyGetServerVersionGetDatabaseEngineTypeSystem.TextStringBuilderm_urnm_prefixm_fieldsm_fromm_wherem_postfixm_orderBym_ParentPropsm_NonTriggeredPropsm_conditionm_postProcessm_bDistinctm_bStoredPropsAddedm_InternalSelectbFirstJoinIsClassicget_ParentPropertiesSetInternalSelectget_NonTriggeredPropertiesget_IsFirstJoinIsEmptyget_Fromset_FromAddElementAddUrnAddPrefixAddConditionAddPostfixAddFieldsAddFromAddJoinAddWhereAddOrderByAddPropertyAddPostProcessMergeInternalSelectget_SqlStatementget_SqlPostfixClearPrefixPostfixMakeCopyStoreParentPropertyGetSqlNoPrefixPostfixAddStoredPropertiesGetOrderByClearOrderByGetCreateTemporaryTableSqlConnectAddColumnSelectAndDropClearFailConditionParentPropertiesNonTriggeredPropertiesIsFirstJoinFromSqlStatementSqlPostfixServerConnectionm_conctxbHasConnectedm_MessagesSqlExecutionModesm_semInitialSystem.Data.SqlClientSqlInfoMessageEventHandlerm_ServerInfoMessagedatabaseNameInitServerConnectionWithDatabaseNameConnectDisconnectInitConnectionStartCaptureSqlInfoMessageEventArgsRecordMessageClearCaptureExecutionFailureExceptionTryToReconnectExecuteImmediateExecuteWithResultsSqlDataReaderGetDataReaderSqlCommandExecuteImmediateGetMessageGetDataProviderExecutevalue__PublishedSubscribedMergePublishedMergeSubscribedKBPercentNoneDriPrimaryKeyDriUniqueKeyTableDisableAutoGeometryGridGeographyGridLowMediumHighDenyRevokeGrantGrantWithGrantCDRomDiskFloppyAFloppyBPipeTapeUnknownInlineScalarNormalIntegratedMixedGrantedConvertingWaitingSimpleBulkLoggedFullJobAlertOperatorAllFixedDiskFloppySharedFixedDiskWindowsUserWindowsGroupSqlLoginCertificateAsymmetricKeyNoLoginNonNTLoginUndefinedSingleRestrictedMultipleWindowsBasicOtherCryptographicProviderVersion80Version90Version100Version105Version60Version65Version70RestoringRecoveryPendingRecoveringSuspectOfflineStandbyShutdownEmergencyModeAutoClosedInaccessibleDisabledEnabledPendingOffPendingOnLeftRightRowPageSafeExternalUnrestrictedCallerOwnerExecuteAsUserSelfExecuteAsLoginNoChecksTransactSqlSqlClrNativeUserDefinedSerializedDataSerializedDataWithMetadataBackgroundBelowNormalAboveNormalDedicatedAlwaysRebuildAlwaysResetImportWithRebuildOffNameDatabaseFileFileGroupVerifyOnlyIdleCrawlinProgressPausedThrottledIncrementalUpdatingIndexDiskFullPauseNotificationUpdateMinimalLogDataWithSnapshotReadOnlyDatabaseSingleUserModeDatabaseLogFileOrFileGroupManualPausedOrThrottledAutomaticLoginServerRoleUserDatabaseRoleApplicationRoleNoKeyMasterKeyPasswordProviderCryptographicProviderDefinedRC2RC4DesTripleDesDesXAes128Aes192Aes256TripleDes3KeyRsa512Rsa1024Rsa2048CreateNewOpenExistingSymmetricKeyViewSqlStoredProcedureSqlScalarFunctionSqlTableValuedFunctionSqlInlineTableValuedFunctionExtendedStoredProcedureReplicationFilterProcedureClrStoredProcedureClrScalarFunctionClrTableValuedFunctionClrAggregateFunctionServerCertificateServerAsymmetricKeyUnencryptedEncryptionInProgressEncryptedEncryptionKeyChangesInProgressDecryptionInProgressObjectOrColumnSchemaSqlAssemblyUserDefinedTypeSecurityExpressionXmlNamespaceMessageTypeServiceContractServiceRemoteServiceBindingServiceRouteFullTextCatalogServerServerPrincipalEndpointFullTextStopListTornPageDetectionChecksumPrincipalMirrorSuspendResumeRemoveWitnessFailoverForceFailoverAndAllowDataLossSuspendedDisconnectedSynchronizingPendingFailoverSynchronizedConnectedMinutesHoursDaysSslClearStartedStoppedXmlFormatSqlFormatStandardAllResultsRowSetsDefaultDefaultProcedureProcedureAnonymousDigestNtlmKerberosNothingCheckpointLogBackupBackupOrRestoreTransactionMirroringReplicationSnapshotCreationLogScanAnyAnySimplePrimitiveListUnionComplexSimpleComplexElementModelGroupElementWildcardAttributeAttributeGroupAttributeWildcardAllErrorMessagesExtendedLogicalChecksNoInformationMessagesTableLockEstimateOnlyPhysicalOnlyDataPurityExtensionRestrictionSubstitutionPathValuePropertySoapTSqlServiceBrokerDatabaseMirroringSupportedRequiredAesAesRC4RC4AesNegotiateNtlmCertificateKerberosCertificateNegotiateCertificateCertificateNtlmCertificateKerberosCertificateNegotiateHttpTcpNamedPipesSharedMemoryViaPartnerWitnessNoActionCascadeSetNullSetDefaultContentDocumentEnablePendingDisablePendingSuccessFailureContinuousOnDemandTSqlAccessTSqlLocalFileSystemAccessTSqlFullFileSystemAccessSqlTemplateSecurityLogApplicationLogMbGbTbContinueFailedApplicationRoleChangePasswordGroupAuditChangeGroupBackupRestoreGroupBrokerLoginGroupDatabaseChangeGroupDatabaseMirroringLoginGroupDatabaseObjectAccessGroupDatabaseObjectChangeGroupDatabaseObjectOwnershipChangeGroupDatabaseObjectPermissionChangeGroupDatabaseOperationGroupDatabaseOwnershipChangeGroupDatabasePermissionChangeGroupDatabasePrincipalChangeGroupDatabasePrincipalImpersonationGroupDatabaseRoleMemberChangeGroupDbccGroupDeleteFailedLoginGroupFullTextGroupLoginChangePasswordGroupLogoutGroupReceiveReferencesSchemaObjectAccessGroupSchemaObjectChangeGroupSchemaObjectOwnershipChangeGroupSchemaObjectPermissionChangeGroupSelectServerObjectChangeGroupServerObjectOwnershipChangeGroupServerObjectPermissionChangeGroupServerOperationGroupServerPermissionChangeGroupServerPrincipalChangeGroupServerPrincipalImpersonationGroupServerRoleMemberChangeGroupServerStateChangeGroupSuccessfulLoginGroupTraceChangeGroupFirstLastErrorsWarningsInformationalSqlAgentMailDatabaseMailActiveScriptingCmdExecSnapshotLogReaderDistributionQueueReaderAnalysisQueryAnalysisCommandSsisPowerShellSqlServerEventSqlServerPerformanceConditionNonSqlServerEventWmiEventLocalJobMultiServerJobNeverOnSuccessOnFailureAlwaysSucceededRetryCancelledInProgressSecondThirdFourthHourMinuteOnceAutoStartDailyMonthlyMonthlyRelativeOneTimeOnIdleWeeklyExecutingWaitingForWorkerThreadBetweenRetriesWaitingForStepToFinishPerformingCompletionActionStandaloneTsxMsxAppendToLogFileAppendToJobHistoryLogToTableWithOverwriteAppendToTableLogAppendAllCmdExecOutputToJobHistoryProvideStopProcessEventLocalMultiServerNotifyEmailPagerNetSendNotifyAllTimeCriticalQuitWithSuccessQuitWithFailureGoToNextStepGoToStepSuspectedOfflineBlockedSundayMondayTuesdayWednesdayThursdayFridaySaturdayEveryDayWeekEndsCriticalHealthyNoPolicySystem.XmlXmlTextReaderm_readerm_aliasm_closedm_versionm_databaseEngineTypeget_Readerset_Readerget_Closedset_Closedget_DatabaseEngineTypeset_DatabaseEngineTypeget_Versionset_Versionget_Aliasset_AliasCloseSkipIsElementWithCheckVersionGetAliasStringGetFieldsGetTextOfElementReaderClosedVersionAliasNextSystem.IOStreamm_fsLoadFileReadUnionget_Settingsget_PropertiesSettingsPropertiesget_Propertyget_IncludeIncludeget_Fileget_TableAliasget_RequestedFieldsget_ROAfterCreationTableAliasRequestedFieldsROAfterCreationget_Nameget_ReadOnlyget_ClrTypeget_ExtendedTypeget_DbTypeget_Expensiveget_ReadOnlyAfterCreationget_KeyIndexPropertyModeget_PropertyModeget_Castget_Hiddenget_Usageget_Valueget_Tableget_Linkget_Sizeget_HasPropertyLinkget_MultipleLinkReadOnlyClrTypeExtendedTypeDbTypeExpensiveReadOnlyAfterCreationKeyIndexCastHiddenUsageLinkSizeHasPropertyLinkMultipleLinkget_MainTableget_AdditionalFilterget_FailConditionget_PropertyLinkget_Prefixget_Postfixget_PostProcessMainTableAdditionalFilterFailConditionPropertyLinkPrefixPostfixget_SimpleParentLinkSimpleParentLinkget_FieldFieldget_Localget_ParentParentget_Noget_Expressionget_LinkFieldsNoExpressionLinkFieldsComputedFilterget_Typeget_DefaultValueTypeDefaultValueget_Fieldsget_InnerJoinget_ExpressionIsForTableNameget_LeftJoinget_FilterFieldsInnerJoinExpressionIsForTableNameLeftJoinget_Sqlget_ClassNameget_TriggeredFieldsClassNameTriggeredFieldsget_RedirectFieldsRedirectFieldsget_Databaseget_QueryQueryDbTypeToClrTypeDataSetTransformToRequestEscapeStringMakeSqlStringLoadAssemblyCreateObjectInstanceUnEscapeStringSplitNamesEscapeLikePatternm_usedm_LinkMultiplem_colsSetFieldsget_IsUsedIsHitTestHitIsDefaultget_AcceptsMultipleHitsget_UsedMarkHitClearHitget_LinkMultipleset_LinkMultipleAddLinkMultipleAddHitIsUsedAcceptsMultipleHitsUsedget_CountAddAddHitsAddDefaultGetEnumeratorCountbaseEnumeratorSystem.Collections.IEnumerator.get_Currentget_CurrentMoveNextResetSystem.Collections.IEnumerator.Currentm_tablem_filterm_bExpressionIsForTableNamem_joinTypeAddAllset_TableGetTableNameWithAliasGetFilterClassicInnerm_valuem_dbTypem_sizem_Aliasm_SessionValuem_bCastset_ValueGetValueGetTypeWithSizeGetValueWithCastInitSessionValueget_SessionValueset_SessionValueget_DBTypeSessionValueDBTypem_sqlGetLocalSqlInitm_listLinkFieldm_PrefixPostfixFieldsm_bResolveDatabasesSetLinkFieldsset_ResolveDatabasesget_ResolveDatabasesget_PrefixPostfixFieldsset_PrefixPostfixFieldsMergeLinkFiledsResolveDatabasesPrefixPostfixFieldsm_databasesm_SchemaPrefixesm_NamePropertiesm_SchemaPrefixPropertiesm_LastDbLevelSetm_PostProcessFieldsdbTypeget_PostProcessFieldsget_NamePropertiesset_NamePropertiesget_SchemaPrefixPropertiesset_SchemaPrefixPropertiesget_LastDbLevelSetset_LastDbLevelSetget_Levelget_Databasesset_Databasesget_SchemaPrefixesset_SchemaPrefixesDataRowGetSqlGetUseSubstituteSchemaPrefixget_MultipleDatabasesIsDatabaseListEqualBuildSqlGetSingleDatabaseSqlPostProcessFieldsNamePropertiesSchemaPrefixPropertiesLastDbLevelSetLevelDatabasesSchemaPrefixesMultipleDatabasesm_fieldm_typeset_Typeset_Fieldm_nom_expressionm_listLinkget_HasLinkFieldsset_NoGetSqlExpressionSetSqlExpressionHasLinkFieldsm_classNamem_assemblym_triggeredFieldsm_HitFieldsGetPostProcessInstanceRegisterm_cim_objectNamem_reqbLookUpOrdinalDonem_triggeredColumnsIdLookupget_ConnectionInfoset_ConnectionInfoget_HitFieldsset_HitFieldsGetIsFieldHitset_ObjectNameget_Requestset_RequestIsLookupInitget_SupportDataReaderCheckDataReaderSupportInitNameBasedLookupUpdateFromNameBasedToOrdinalLookupDataRowCollectionBinarySearchBinarySearchSetOnFirstIsNullGetTriggeredObjectGetTriggeredInt32GetTriggeredBoolGetTriggeredStringGetColumnDataCleanRowDataConnectionInfoHitFieldsSupportDataReaderm_textm_btextSetm_dtTextGetTextForAllRowsGetTextForObjectget_IsTextSetSetTextGetTextFor90IsTextSetm_idxm_idxEndget_IdxStartget_IdxEndget_HasParantesisget_TableVariableNameIdxStartIdxEndHasParantesisTableVariableNamesSingleLineCommentSqlsSingleLineCommentCsNestedMultiLineCommentsNestedMultiLineCommentOptimizedsSingleQuotedStringSqlsDoubleQuotedStringsBraketedWordsWordsNumbersHexNumbersParamValueQIsParamValuesCommasParanthesissEqsDelimsParamsGrammarQIsGrammarm_textListSystem.Text.RegularExpressionsRegexm_rsRegexQIsRegexParseParamsGetTextIsProcessedGetParamGetDateTimeGetSmoCodeFromSqlCodeShilohToYukonPermissionGetDatabaseLevelGetUrnm_listNamescalledUseDBisInitDataRowcontigDataInitRowDatadtm_bytesPerPagem_querym_rowResultsnoaccessget_BytesPerPageGetRowResultsBuildCommonSqlBuildSqlStatementMoreEqual90BuildSqlStatementLess90AddDbChainingGetPathBytesPerPagem_rowAutoCloseDataCalculateAutoCloseMissingPropsmaximumFileSizeInAcceptedRangemaximumFileSizeUnitGetMaximumFileSizeGetMaximumFileSizeUnitGetMaximumFileSizeInMegaBytesGetMaxFileSizeValueInAcceptedRangeAndUnitConvertFileSizeToAcceptedFormat1uSidfirstTimestrExecuteQuerym_typeNamem_typeNom_pathset_Nameget_Pathset_Pathm_idget_idset_idget_typeset_typeidtypem_typeConvertTableserverNamedbNameschemaNamenameStringComparersvrComparerdbComparerget_ServerNameset_ServerNameget_DatabaseNameset_DatabaseNameget_SchemaNameset_SchemaNameget_Idset_IdServerNameDatabaseNameSchemaNameIdm_serverm_databasem_tempDependenciessqlEnumDependenciesSingletonm_targetVersionisCloudget_IsDbCloudset_IsDbCloudget_TypeConvertTableTypeToNoDependencyChainCollectionDependencyRequestEnumDependenciesGetStringCultureFindByNoBuildIDKeyBuildKeyDumpRowResolveDeferredLinksGetUrnByQueryBuildUrnGetUseStringIsDbCloudTypeConvertTablem_FieldsCompareOptionsGetCompareOptionsFromCollationm_execSqlm_dataReadernonTriggeredPropertiesCountrowDatarowDataManipulationm_bHasTypeCastm_bHasPostProcessm_RetriveModem_nCurentCachePosm_commandSetConnectionAndQueryInitRowDataManipulationInitSchemaTableGetTrigeredValueGetDataFromStorageSetDataInStorageReadInternalManipulateRowDataPostProcessManipulateRowDataTypeManipulateRowDataget_Depthget_IsClosedget_RecordsAffectedGetSchemaTableNextResultReadGetTableget_TableRowCountget_FieldCountAdjustIndexGetBooleanGetByteGetBytesGetCharGetCharsGetDataTypeNameDateTimeDecimalGetDecimalGetDoubleGetFieldTypeGetFloatGuidGetGuidGetInt16GetInt32GetInt64GetNameGetOrdinalGetStringGetValuesIsDBNullDepthIsClosedRecordsAffectedTableRowCountFieldCountRetriveDataReaderRetriveDataTabletargetTypesourceTypepostProcessscriptForCreateindexCreateindexNameStartindexNameEndobjectTypeschemadatabaseprocedureNumberindexNameStartSecondaryindexNameEndSecondaryschemaSecondarynameSecondarydatabaseSecondaryhasParanthesisreturnTableVariableNameregexm_r_endsProcNumbersSingleQuotedStringsDotsPharanthesissExecsReturnssReturnsTablesReturnsDelim1sDelim2ddlTextParserSingletonMatchReadNameFromDdlReadFullNameFromDdlCheckDdlHeaderParseDdlHeadersNestedMultiLineCommentOptimized_endsSpace_endsWord_endsEol_endsSingleLineComment_endsReject_endParseCheckOptionAlterAlterAnyAsymmetricKeyAlterAnyApplicationRoleAlterAnyAssemblyAlterAnyCertificateAlterAnyDatabaseAuditAlterAnyDataspaceAlterAnyDatabaseEventNotificationAlterAnyFulltextCatalogAlterAnyMessageTypeAlterAnyRoleAlterAnyRouteAlterAnyRemoteServiceBindingAlterAnyContractAlterAnySymmetricKeyAlterAnySchemaAlterAnyServiceAlterAnyDatabaseDdlTriggerAlterAnyUserAuthenticateBackupDatabaseBackupLogControlConnectReplicationCreateAggregateCreateAsymmetricKeyCreateAssemblyCreateCertificateCreateDatabaseCreateDefaultCreateDatabaseDdlEventNotificationCreateFunctionCreateFulltextCatalogCreateMessageTypeCreateProcedureCreateQueueCreateRoleCreateRouteCreateRuleCreateRemoteServiceBindingCreateContractCreateSymmetricKeyCreateSchemaCreateSynonymCreateServiceCreateTableCreateTypeCreateViewCreateXmlSchemaCollectionShowplanSubscribeQueryNotificationsTakeOwnershipViewDefinitionViewDatabaseStateImpersonateSendViewChangeTrackingAdministerBulkOperationsAlterAnyServerAuditAlterAnyCredentialAlterAnyConnectionAlterAnyDatabaseAlterAnyEventNotificationAlterAnyEndpointAlterAnyLoginAlterAnyLinkedServerAlterResourcesAlterServerStateAlterSettingsAlterTraceAuthenticateServerControlServerConnectSqlCreateAnyDatabaseCreateDdlEventNotificationCreateEndpointCreateTraceEventNotificationViewAnyDefinitionViewAnyDatabaseViewServerStateExternalAccessAssemblyUnsafeAssemblyToDatabasePermissionSetValueEnumToObjectPermissionSetValueEnumToServerPermissionSetValueEnumm_listObjectsProcessStatementBuilderBitArraym_storageget_Storageset_Storageget_NumberOfElementsSetBitAtGetBitAtSetValueFitsMaskHasCommonBitsStorageNumberOfElementsm_dtEventsGetEventsForAllRowsGetTriggerEventsDatabaseDdlTriggerEventOffsetFromEventStringServerDdlTriggerEventOffsetFromEventStringConvertToValidVersionget_DisplayNameDisplayNameITypeDescriptorContextCanConvertFromLocalizedStringToEnumValueConvertFromEnumValueToLocStringConvertToget_Cultureset_Cultureget_IncorectVersionTagget_NullVersionOnLoadingCfgFileget_EnumObjectTagNotFoundget_InvalidConnectionTypeget_OnlyPathOrFullNameget_DatabaseNameMustBeSpecifiedget_UnknownOperatorget_TooManyDbLevelsget_InvalidConfigurationFileget_NotDbObjectget_NotSingleDbget_NoClassNamePostProcessget_SqlServer90Nameget_SqlServer80Nameget_SmoSQLCLRUnAvailableget_Executingget_WaitingForWorkerThreadget_BetweenRetriesget_Idleget_Suspendedget_WaitingForStepToFinishget_PerformingCompletionActionget_Unknownget_rmFullget_rmBulkLoggedget_rmSimpleget_msNoneget_msSuspendedget_msDisconnectedget_msSynchronizingget_msPendingFailoverget_msSynchronizedFailedToLoadResFileUnsupportedTypeDepDiscoveryQueryNotSupportedPostProcessFailedToLoadAssemblyFailedToCreateUrnPropMustBeSpecifiedInvalidUrnForDependsCouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersionInvalidSqlServerDatabaseNameMustBeSpecifiedinTheUrnCouldNotGetInfoFromDependencyRowCultureIncorectVersionTagNullVersionOnLoadingCfgFileEnumObjectTagNotFoundInvalidConnectionTypeOnlyPathOrFullNameDatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevelsInvalidConfigurationFileNotDbObjectNotSingleDbNoClassNamePostProcessSqlServer90NameSqlServer80NameSmoSQLCLRUnAvailablermFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedSystem.ResourcesResourceManagerresourceManager_cultureAddRoleMemberAddServerRoleMemberAddSignatureAddSignatureSchemaObjectAlterApplicationRoleAlterAssemblyAlterAsymmetricKeyAlterAuthorizationDatabaseAlterAuthorizationServerAlterBrokerPriorityAlterCertificateAlterCredentialAlterCryptographicProviderAlterDatabaseAlterDatabaseAuditSpecificationAlterDatabaseEncryptionKeyAlterEndpointAlterEventSessionAlterExtendedPropertyAlterFulltextCatalogAlterFulltextIndexAlterFulltextStoplistAlterFunctionAlterIndexAlterInstanceAlterLinkedServerAlterLoginAlterMasterKeyAlterMessageAlterMessageTypeAlterPartitionFunctionAlterPartitionSchemeAlterPlanGuideAlterProcedureAlterQueueAlterRemoteServerAlterRemoteServiceBindingAlterResourceGovernorConfigAlterResourcePoolAlterRoleAlterRouteAlterSchemaAlterServerAuditAlterServerAuditSpecificationAlterServiceAlterServiceMasterKeyAlterSymmetricKeyAlterTableAlterTriggerAlterUserAlterViewAlterWorkloadGroupAlterXmlSchemaCollectionBindDefaultBindRuleCreateApplicationRoleCreateBrokerPriorityCreateCredentialCreateCryptographicProviderCreateDatabaseAuditSpecificationCreateDatabaseEncryptionKeyCreateEventNotificationCreateEventSessionCreateExtendedProcedureCreateExtendedPropertyCreateFulltextIndexCreateFulltextStoplistCreateIndexCreateLinkedServerCreateLinkedServerLoginCreateLoginCreateMasterKeyCreateMessageCreatePartitionFunctionCreatePartitionSchemeCreatePlanGuideCreateRemoteServerCreateResourcePoolCreateServerAuditCreateServerAuditSpecificationCreateSpatialIndexCreateStatisticsCreateTriggerCreateUserCreateWorkloadGroupCreateXmlIndexDenyDatabaseDenyServerDropApplicationRoleDropAssemblyDropAsymmetricKeyDropBrokerPriorityDropCertificateDropContractDropCredentialDropCryptographicProviderDropDatabaseDropDatabaseAuditSpecificationDropDatabaseEncryptionKeyDropDefaultDropEndpointDropEventNotificationDropEventSessionDropExtendedProcedureDropExtendedPropertyDropFulltextCatalogDropFulltextIndexDropFulltextStoplistDropFunctionDropIndexDropLinkedServerDropLinkedServerLoginDropLoginDropMasterKeyDropMessageDropMessageTypeDropPartitionFunctionDropPartitionSchemeDropPlanGuideDropProcedureDropQueueDropRemoteServerDropRemoteServiceBindingDropResourcePoolDropRoleDropRoleMemberDropRouteDropRuleDropSchemaDropServerAuditDropServerAuditSpecificationDropServerRoleMemberDropServiceDropSignatureDropSignatureSchemaObjectDropStatisticsDropSymmetricKeyDropSynonymDropTableDropTriggerDropTypeDropUserDropViewDropWorkloadGroupDropXmlSchemaCollectionGrantDatabaseGrantServerLogonRenameRevokeDatabaseRevokeServerUnbindDefaultUnbindRuleUpdateStatisticsop_BitwiseOrBitwiseOrget_AddRoleMemberget_AddServerRoleMemberget_AddSignatureget_AddSignatureSchemaObjectget_AlterApplicationRoleget_AlterAssemblyget_AlterAsymmetricKeyget_AlterAuthorizationDatabaseget_AlterAuthorizationServerget_AlterBrokerPriorityget_AlterCertificateget_AlterCredentialget_AlterCryptographicProviderget_AlterDatabaseget_AlterDatabaseAuditSpecificationget_AlterDatabaseEncryptionKeyget_AlterEndpointget_AlterEventSessionget_AlterExtendedPropertyget_AlterFulltextCatalogget_AlterFulltextIndexget_AlterFulltextStoplistget_AlterFunctionget_AlterIndexget_AlterInstanceget_AlterLinkedServerget_AlterLoginget_AlterMasterKeyget_AlterMessageget_AlterMessageTypeget_AlterPartitionFunctionget_AlterPartitionSchemeget_AlterPlanGuideget_AlterProcedureget_AlterQueueget_AlterRemoteServerget_AlterRemoteServiceBindingget_AlterResourceGovernorConfigget_AlterResourcePoolget_AlterRoleget_AlterRouteget_AlterSchemaget_AlterServerAuditget_AlterServerAuditSpecificationget_AlterServiceget_AlterServiceMasterKeyget_AlterSymmetricKeyget_AlterTableget_AlterTriggerget_AlterUserget_AlterViewget_AlterWorkloadGroupget_AlterXmlSchemaCollectionget_BindDefaultget_BindRuleget_CreateApplicationRoleget_CreateAssemblyget_CreateAsymmetricKeyget_CreateBrokerPriorityget_CreateCertificateget_CreateContractget_CreateCredentialget_CreateCryptographicProviderget_CreateDatabaseget_CreateDatabaseAuditSpecificationget_CreateDatabaseEncryptionKeyget_CreateDefaultget_CreateEndpointget_CreateEventNotificationget_CreateEventSessionget_CreateExtendedProcedureget_CreateExtendedPropertyget_CreateFulltextCatalogget_CreateFulltextIndexget_CreateFulltextStoplistget_CreateFunctionget_CreateIndexget_CreateLinkedServerget_CreateLinkedServerLoginget_CreateLoginget_CreateMasterKeyget_CreateMessageget_CreateMessageTypeget_CreatePartitionFunctionget_CreatePartitionSchemeget_CreatePlanGuideget_CreateProcedureget_CreateQueueget_CreateRemoteServerget_CreateRemoteServiceBindingget_CreateResourcePoolget_CreateRoleget_CreateRouteget_CreateRuleget_CreateSchemaget_CreateServerAuditget_CreateServerAuditSpecificationget_CreateServiceget_CreateSpatialIndexget_CreateStatisticsget_CreateSymmetricKeyget_CreateSynonymget_CreateTableget_CreateTriggerget_CreateTypeget_CreateUserget_CreateViewget_CreateWorkloadGroupget_CreateXmlIndexget_CreateXmlSchemaCollectionget_DenyDatabaseget_DenyServerget_DropApplicationRoleget_DropAssemblyget_DropAsymmetricKeyget_DropBrokerPriorityget_DropCertificateget_DropContractget_DropCredentialget_DropCryptographicProviderget_DropDatabaseget_DropDatabaseAuditSpecificationget_DropDatabaseEncryptionKeyget_DropDefaultget_DropEndpointget_DropEventNotificationget_DropEventSessionget_DropExtendedProcedureget_DropExtendedPropertyget_DropFulltextCatalogget_DropFulltextIndexget_DropFulltextStoplistget_DropFunctionget_DropIndexget_DropLinkedServerget_DropLinkedServerLoginget_DropLoginget_DropMasterKeyget_DropMessageget_DropMessageTypeget_DropPartitionFunctionget_DropPartitionSchemeget_DropPlanGuideget_DropProcedureget_DropQueueget_DropRemoteServerget_DropRemoteServiceBindingget_DropResourcePoolget_DropRoleget_DropRoleMemberget_DropRouteget_DropRuleget_DropSchemaget_DropServerAuditget_DropServerAuditSpecificationget_DropServerRoleMemberget_DropServiceget_DropSignatureget_DropSignatureSchemaObjectget_DropStatisticsget_DropSymmetricKeyget_DropSynonymget_DropTableget_DropTriggerget_DropTypeget_DropUserget_DropViewget_DropWorkloadGroupget_DropXmlSchemaCollectionget_GrantDatabaseget_GrantServerget_Logonget_Renameget_RevokeDatabaseget_RevokeServerget_UnbindDefaultget_UnbindRuleget_UpdateStatisticsSetBitResetBitop_SubtractionSubtractdirtyget_Dirtyset_Dirtyset_AddRoleMemberset_AddServerRoleMemberset_AddSignatureset_AddSignatureSchemaObjectset_AlterApplicationRoleset_AlterAssemblyset_AlterAsymmetricKeyset_AlterAuthorizationDatabaseset_AlterAuthorizationServerset_AlterBrokerPriorityset_AlterCertificateset_AlterCredentialset_AlterCryptographicProviderset_AlterDatabaseset_AlterDatabaseAuditSpecificationset_AlterDatabaseEncryptionKeyset_AlterEndpointset_AlterEventSessionset_AlterExtendedPropertyset_AlterFulltextCatalogset_AlterFulltextIndexset_AlterFulltextStoplistset_AlterFunctionset_AlterIndexset_AlterInstanceset_AlterLinkedServerset_AlterLoginset_AlterMasterKeyset_AlterMessageset_AlterMessageTypeset_AlterPartitionFunctionset_AlterPartitionSchemeset_AlterPlanGuideset_AlterProcedureset_AlterQueueset_AlterRemoteServerset_AlterRemoteServiceBindingset_AlterResourceGovernorConfigset_AlterResourcePoolset_AlterRoleset_AlterRouteset_AlterSchemaset_AlterServerAuditset_AlterServerAuditSpecificationset_AlterServiceset_AlterServiceMasterKeyset_AlterSymmetricKeyset_AlterTableset_AlterTriggerset_AlterUserset_AlterViewset_AlterWorkloadGroupset_AlterXmlSchemaCollectionset_BindDefaultset_BindRuleset_CreateApplicationRoleset_CreateAssemblyset_CreateAsymmetricKeyset_CreateBrokerPriorityset_CreateCertificateset_CreateContractset_CreateCredentialset_CreateCryptographicProviderset_CreateDatabaseset_CreateDatabaseAuditSpecificationset_CreateDatabaseEncryptionKeyset_CreateDefaultset_CreateEndpointset_CreateEventNotificationset_CreateEventSessionset_CreateExtendedProcedureset_CreateExtendedPropertyset_CreateFulltextCatalogset_CreateFulltextIndexset_CreateFulltextStoplistset_CreateFunctionset_CreateIndexset_CreateLinkedServerset_CreateLinkedServerLoginset_CreateLoginset_CreateMasterKeyset_CreateMessageset_CreateMessageTypeset_CreatePartitionFunctionset_CreatePartitionSchemeset_CreatePlanGuideset_CreateProcedureset_CreateQueueset_CreateRemoteServerset_CreateRemoteServiceBindingset_CreateResourcePoolset_CreateRoleset_CreateRouteset_CreateRuleset_CreateSchemaset_CreateServerAuditset_CreateServerAuditSpecificationset_CreateServiceset_CreateSpatialIndexset_CreateStatisticsset_CreateSymmetricKeyset_CreateSynonymset_CreateTableset_CreateTriggerset_CreateTypeset_CreateUserset_CreateViewset_CreateWorkloadGroupset_CreateXmlIndexset_CreateXmlSchemaCollectionset_DenyDatabaseset_DenyServerset_DropApplicationRoleset_DropAssemblyset_DropAsymmetricKeyset_DropBrokerPriorityset_DropCertificateset_DropContractset_DropCredentialset_DropCryptographicProviderset_DropDatabaseset_DropDatabaseAuditSpecificationset_DropDatabaseEncryptionKeyset_DropDefaultset_DropEndpointset_DropEventNotificationset_DropEventSessionset_DropExtendedProcedureset_DropExtendedPropertyset_DropFulltextCatalogset_DropFulltextIndexset_DropFulltextStoplistset_DropFunctionset_DropIndexset_DropLinkedServerset_DropLinkedServerLoginset_DropLoginset_DropMasterKeyset_DropMessageset_DropMessageTypeset_DropPartitionFunctionset_DropPartitionSchemeset_DropPlanGuideset_DropProcedureset_DropQueueset_DropRemoteServerset_DropRemoteServiceBindingset_DropResourcePoolset_DropRoleset_DropRoleMemberset_DropRouteset_DropRuleset_DropSchemaset_DropServerAuditset_DropServerAuditSpecificationset_DropServerRoleMemberset_DropServiceset_DropSignatureset_DropSignatureSchemaObjectset_DropStatisticsset_DropSymmetricKeyset_DropSynonymset_DropTableset_DropTriggerset_DropTypeset_DropUserset_DropViewset_DropWorkloadGroupset_DropXmlSchemaCollectionset_GrantDatabaseset_GrantServerset_Logonset_Renameset_RevokeDatabaseset_RevokeServerset_UnbindDefaultset_UnbindRuleset_UpdateStatisticsddlauthorizationservereventseventsget_DdlAuthorizationServerEventsEventsset_DdlAuthorizationServerEventsEventsddlcredentialeventseventsget_DdlCredentialEventsEventsset_DdlCredentialEventsEventsddlcryptographicprovidereventseventsget_DdlCryptographicProviderEventsEventsset_DdlCryptographicProviderEventsEventsddldatabaseeventseventsget_DdlDatabaseEventsEventsset_DdlDatabaseEventsEventsddlendpointeventseventsget_DdlEndpointEventsEventsset_DdlEndpointEventsEventsddleventsessioneventseventsget_DdlEventSessionEventsEventsset_DdlEventSessionEventsEventsddlextendedprocedureeventseventsget_DdlExtendedProcedureEventsEventsset_DdlExtendedProcedureEventsEventsddlgdrservereventseventsget_DdlGdrServerEventsEventsset_DdlGdrServerEventsEventsddllinkedservereventseventsget_DdlLinkedServerEventsEventsset_DdlLinkedServerEventsEventsddllinkedserverlogineventseventsget_DdlLinkedServerLoginEventsEventsset_DdlLinkedServerLoginEventsEventsddllogineventseventsget_DdlLoginEventsEventsset_DdlLoginEventsEventsddlmessageeventseventsget_DdlMessageEventsEventsset_DdlMessageEventsEventsddlremoteservereventseventsget_DdlRemoteServerEventsEventsset_DdlRemoteServerEventsEventsddlresourcegovernoreventseventsget_DdlResourceGovernorEventsEventsset_DdlResourceGovernorEventsEventsddlworkloadgroupeventsget_DdlWorkloadGroupEventsset_DdlWorkloadGroupEventsddlresourcepooleventsget_DdlResourcePoolEventsset_DdlResourcePoolEventsddlserverauditeventseventsget_DdlServerAuditEventsEventsset_DdlServerAuditEventsEventsddlserverauditspecificationeventseventsget_DdlServerAuditSpecificationEventsEventsset_DdlServerAuditSpecificationEventsEventsddlserverleveleventseventsget_DdlServerLevelEventsEventsset_DdlServerLevelEventsEventsddlserversecurityeventseventsget_DdlServerSecurityEventsEventsset_DdlServerSecurityEventsEventsddlservicemasterkeyeventseventsget_DdlServiceMasterKeyEventsEventsset_DdlServiceMasterKeyEventsEventsDirtyDdlAuthorizationServerEventsEventsDdlCredentialEventsEventsDdlCryptographicProviderEventsEventsDdlDatabaseEventsEventsDdlEndpointEventsEventsDdlEventSessionEventsEventsDdlExtendedProcedureEventsEventsDdlGdrServerEventsEventsDdlLinkedServerEventsEventsDdlLinkedServerLoginEventsEventsDdlLoginEventsEventsDdlMessageEventsEventsDdlRemoteServerEventsEventsDdlResourceGovernorEventsEventsDdlWorkloadGroupEventsDdlResourcePoolEventsDdlServerAuditEventsEventsDdlServerAuditSpecificationEventsEventsDdlServerLevelEventsEventsDdlServerSecurityEventsEventsDdlServiceMasterKeyEventsEventsddlapplicationroleeventseventsget_DdlApplicationRoleEventsEventsset_DdlApplicationRoleEventsEventsddlassemblyeventseventsget_DdlAssemblyEventsEventsset_DdlAssemblyEventsEventsddlasymmetrickeyeventseventsget_DdlAsymmetricKeyEventsEventsset_DdlAsymmetricKeyEventsEventsddlauthorizationdatabaseeventseventsget_DdlAuthorizationDatabaseEventsEventsset_DdlAuthorizationDatabaseEventsEventsddlremoteservicebindingeventseventsget_DdlRemoteServiceBindingEventsEventsset_DdlRemoteServiceBindingEventsEventsddlcertificateeventseventsget_DdlCertificateEventsEventsset_DdlCertificateEventsEventsddlcontracteventseventsget_DdlContractEventsEventsset_DdlContractEventsEventsddlcryptosignatureeventseventsget_DdlCryptoSignatureEventsEventsset_DdlCryptoSignatureEventsEventsddldatabaseleveleventseventsget_DdlDatabaseLevelEventsEventsset_DdlDatabaseLevelEventsEventsddldatabaseauditspecificationeventseventsget_DdlDatabaseAuditSpecificationEventsEventsset_DdlDatabaseAuditSpecificationEventsEventsddlmasterkeyeventseventsget_DdlMasterKeyEventsEventsset_DdlMasterKeyEventsEventsddldatabasesecurityeventseventsget_DdlDatabaseSecurityEventsEventsset_DdlDatabaseSecurityEventsEventsddldefaulteventseventsget_DdlDefaultEventsEventsset_DdlDefaultEventsEventsddldatabaseencryptionkeyeventseventsget_DdlDatabaseEncryptionKeyEventsEventsset_DdlDatabaseEncryptionKeyEventsEventsddleventnotificationeventseventsget_DdlEventNotificationEventsEventsset_DdlEventNotificationEventsEventsddlextendedpropertyeventseventsget_DdlExtendedPropertyEventsEventsset_DdlExtendedPropertyEventsEventsddlfulltextcatalogeventseventsget_DdlFulltextCatalogEventsEventsset_DdlFulltextCatalogEventsEventsddlfulltextstoplisteventseventsget_DdlFulltextStoplistEventsEventsset_DdlFulltextStoplistEventsEventsddlfunctioneventseventsget_DdlFunctionEventsEventsset_DdlFunctionEventsEventsddlgdrdatabaseeventseventsget_DdlGdrDatabaseEventsEventsset_DdlGdrDatabaseEventsEventsddlindexeventseventsget_DdlIndexEventsEventsset_DdlIndexEventsEventsddlmessagetypeeventseventsget_DdlMessageTypeEventsEventsset_DdlMessageTypeEventsEventsddlsymmetrickeyeventseventsget_DdlSymmetricKeyEventsEventsset_DdlSymmetricKeyEventsEventsddlpartitioneventseventsget_DdlPartitionEventsEventsset_DdlPartitionEventsEventsddlplanguideeventseventsget_DdlPlanGuideEventsEventsset_DdlPlanGuideEventsEventsddlbrokerpriorityeventseventsget_DdlBrokerPriorityEventsEventsset_DdlBrokerPriorityEventsEventsddlpartitionfunctioneventseventsget_DdlPartitionFunctionEventsEventsset_DdlPartitionFunctionEventsEventsddlpartitionschemeeventseventsget_DdlPartitionSchemeEventsEventsset_DdlPartitionSchemeEventsEventsddlqueueeventseventsget_DdlQueueEventsEventsset_DdlQueueEventsEventsddlroleeventseventsget_DdlRoleEventsEventsset_DdlRoleEventsEventsddlrouteeventseventsget_DdlRouteEventsEventsset_DdlRouteEventsEventsddlruleeventseventsget_DdlRuleEventsEventsset_DdlRuleEventsEventsddlschemaeventseventsget_DdlSchemaEventsEventsset_DdlSchemaEventsEventsddlserviceeventseventsget_DdlServiceEventsEventsset_DdlServiceEventsEventsddlssbeventseventsget_DdlSsbEventsEventsset_DdlSsbEventsEventsddlstatisticseventseventsget_DdlStatisticsEventsEventsset_DdlStatisticsEventsEventsddlprocedureeventseventsget_DdlProcedureEventsEventsset_DdlProcedureEventsEventsddlsynonymeventseventsget_DdlSynonymEventsEventsset_DdlSynonymEventsEventsddltableeventseventsget_DdlTableEventsEventsset_DdlTableEventsEventsddltablevieweventseventsget_DdlTableViewEventsEventsset_DdlTableViewEventsEventsddltriggereventseventsget_DdlTriggerEventsEventsset_DdlTriggerEventsEventsddltypeeventseventsget_DdlTypeEventsEventsset_DdlTypeEventsEventsddlusereventseventsget_DdlUserEventsEventsset_DdlUserEventsEventsddlvieweventseventsget_DdlViewEventsEventsset_DdlViewEventsEventsddlxmlschemacollectioneventseventsget_DdlXmlSchemaCollectionEventsEventsset_DdlXmlSchemaCollectionEventsEventsDdlApplicationRoleEventsEventsDdlAssemblyEventsEventsDdlAsymmetricKeyEventsEventsDdlAuthorizationDatabaseEventsEventsDdlRemoteServiceBindingEventsEventsDdlCertificateEventsEventsDdlContractEventsEventsDdlCryptoSignatureEventsEventsDdlDatabaseLevelEventsEventsDdlDatabaseAuditSpecificationEventsEventsDdlMasterKeyEventsEventsDdlDatabaseSecurityEventsEventsDdlDefaultEventsEventsDdlDatabaseEncryptionKeyEventsEventsDdlEventNotificationEventsEventsDdlExtendedPropertyEventsEventsDdlFulltextCatalogEventsEventsDdlFulltextStoplistEventsEventsDdlFunctionEventsEventsDdlGdrDatabaseEventsEventsDdlIndexEventsEventsDdlMessageTypeEventsEventsDdlSymmetricKeyEventsEventsDdlPartitionEventsEventsDdlPlanGuideEventsEventsDdlBrokerPriorityEventsEventsDdlPartitionFunctionEventsEventsDdlPartitionSchemeEventsEventsDdlQueueEventsEventsDdlRoleEventsEventsDdlRouteEventsEventsDdlRuleEventsEventsDdlSchemaEventsEventsDdlServiceEventsEventsDdlSsbEventsEventsDdlStatisticsEventsEventsDdlProcedureEventsEventsDdlSynonymEventsEventsDdlTableEventsEventsDdlTableViewEventsEventsDdlTriggerEventsEventsDdlTypeEventsEventsDdlUserEventsEventsDdlViewEventsEventsDdlXmlSchemaCollectionEventsEventsAssemblyInformationalVersionAttributeAssemblyFileVersionAttributeAssemblyVersionAttributeAssemblyTrademarkAttributeAssemblyCopyrightAttributeAssemblyProductAttributeAssemblyCompanyAttributeSqlClientPermissionAttributeSystem.Security.PermissionsSecurityActionAssemblyKeyNameAttributeNeutralResourcesLanguageAttributeCLSCompliantAttributeSystem.Runtime.InteropServicesComVisibleAttributeAssemblyCultureAttributeAssemblyConfigurationAttributeAssemblyDescriptionAttributeAssemblyTitleAttributeSystem.Runtime.CompilerServicesInternalsVisibleToAttributeSystem.DiagnosticsDebuggableAttributeDebuggingModesCompilationRelaxationsAttributeRuntimeCompatibilityAttributeMicrosoft.SqlServer.SqlEnumDefaultMemberAttributeArgumentNullExceptionStringToCharArrayAppendCharsecureStringbstrIntPtrZeroMarshalPtrToStringAutoindexget_CharsstrAstrBignoreCasecomparisonTypecultureInfoindexAindexBobjotherargsParamArrayAttributevalueformatargumentsformatProviderstartIndexcountanyOfseparatorArgumentOutOfRangeExceptionAppendtotalWidthpaddingCharoldCharnewCharoldValuenewValueoptionsculturearraySecureStringToBSTRSecurityPermissionSecurityPermissionFlagCodeAccessPermissionAssertPtrToStringBSTRZeroFreeBSTRtrimCharssqlSecureStringget_IsNullget_OrdinalIComparerurnset_Urnget_UrnfieldusageGetPropertyproptriggeredPropertiesRequestget_ResultTypeoverrideFlagssrget_ParentPropertiesRequestsset_FieldsArrayCopyToPropertyAliasget_PropertyAliasset_PropertyAliasget_OrderByListset_OrderByListset_ParentPropertiesRequestsRequestFieldsTypesset_RequestFieldsTypesset_ResultTypelftlinkFieldserParentFilterDecoderFilterNodeGetExecutingAssemblyqueryresultIDictionaryEnumeratorDictionaryEntryget_KeyConnectionManagerget_ServerVersionget_MajorsqlresultresultTypeExceptionget_InnerExceptionSqlExceptionget_Classget_Stateget_NumbersqlconnectionInfosbget_InvariantCultureset_LocaleDataTableCollectionget_TablesResultTypeNotSupportedEnumeratorExceptionconstantValueQueryParameterizationModeget_ParameterizationModelinkfieldsGetPropertiesStringEnumeratorEnumeratorProcessfieldNameerChildrenbAcrossDatabasesget_DirdirbHiddenFieldget_FixedPropertiesFilterNodeConstantObjectTypeget_ObjTypeget_ValueAsStringciblockfileverdatabaseEngineTypeassemblyObjectaliasrequestedFieldsstoreroAfterCreationxrdassemblyHashtableset_Itemset_ReadOnlyAfterCreationContainsKeyset_UsagexriresInt32serParentGetFixedStringPropertyDataColumnCollectionget_ColumnsGetTypeDataColumnNewRowget_Rowsinit_dataXmlDocumentLoadXmlXmlElementget_DocumentElementXmlNodeXmlAttributeCollectionget_AttributesXmlAttributeget_ItemOfset_FilterconnsdelimStartdelimEnddelimElemsorderByValueGetRangeICollectionInsertRangeAddRangesopbTriggeredset_LengthtableNamesqlCreatebFirstbUseAliassOrderByconIsNullOrEmptyGetDatabaseConnectionget_SqlExecutionModesset_SqlExecutionModesget_IsOpenSqlConnectionInfoWithConnectionget_ServerConnectionSqlConnectionInfoSqlConnectionSqlDirectConnectionget_SqlConnectionInternalEnumeratorExceptionadd_InfoMessagesendereremove_InfoMessageget_SqlConnectionObjectSystem.Data.CommonDbConnectionOpenExecutionTypesExecuteNonQuerycommandOutAttributeExecuteReaderrmServerInformationRuntimeTypeHandleGetTypeFromHandleIsDefinedTypeConverterAttributeFlagsAttributeComputeFixedPropertiesxmlReaderversionserverAliasXmlUtilitySelectNextElementSelectNextElementOnLevelelemNameXmlReaderParseget_Minorget_BuildNumberop_LessThanSelectNextSiblingIsElementfieldsCharget_IsEmptyElementXmlNodeTypeget_NodeTypeastrFileMicrosoft.SqlServer.SqlClrProviderMicrosoft.SqlServer.Smo.UnSafeInternalsManagementUtilLoadResourceFromAssemblyInvalidConfigurationFileEnumeratorExceptionset_ProhibitDtdInvalidVersionEnumeratorExceptionBooleanInt16strDBType<PrivateImplementationDetails>{13F3EA59-BAD7-4234-9D79-498D34CADFB3}CompilerGeneratedAttributeSystem.Collections.GenericDictionary`2$$method0x6000185-1TryGetValuedsescapeCharacterassemblyNameget_FullNameAssemblyNameSystem.Security.PolicyEvidenceBindingFlagsBinderCreateInstanceescapedValuestartEscapeCharescapeCharpartSeperatorpatternxrmplienumeratorxrplxrpxrslistset_Expensiveset_ReadOnlyset_ExtendedTypeset_KeyIndexset_PropertyModeoisTriggeredxrcsxrsplreqUserget_RequestFieldsTypesreqobget_Dataset_DataInternalDataCollectionBasedbsdb1db2get_NowMinValueTimeSpanget_TotalMillisecondsDoubleGetKeyexprxrppasemblyget_KeysIEnumerableQueryNotSupportedEnumeratorExceptiontriggeredFieldstriggeredColumnsAliasNameLookupcolobjectIdentifiercolumnNamedpsObjectIdentifierRegexOptionssKeytextbQIGroupCollectionget_GroupsGroupget_SuccessCaptureNextMatchsDatabasenumberDBNullsParamNameoDateoTimesqlCodepermTypebWithSchematentativeParent$$method0x6000255-1SqlErrorCollectionget_ErrorsSqlErrorget_Message$$method0x600025e-1Int64System.NetIPAddress$$method0x6000264-1$$method0x6000274-1sFullNameGetDirectoryNameArgumentExceptionmaxFileSizeConnectionFailureExceptionnopathInvalidArgumentException$$method0x60002ab-1get_ValuesrdMicrosoft.SqlServer.ServerSqlContextget_IsAvailableget_UrnsGetNameForTypeGetAttributeAppendLineget_ParentDependenciesStreamReaderTextReaderReadToEndcEscget_InvariantCultureIgnoreCaseAppendFormatDependencyset_IsSchemaBoundget_LinksReverserowforParentInvalidCastExceptionget_CaptiondeferredLinkidkxrrpscollationexecSqlComponentDbCommandCancelDbDataReaderparentPropertiespostProcessListget_IsEnumToObjectIConvertibleget_IsPrimitiveget_CurrentCultureToTypeConstructorInfoCallingConventionsParameterModifierGetConstructorInvokeMethodInfoGetMethodMethodBaseRemoveAtMarshalByValueComponentidxBytefieldOffsetbufferbufferoffsetfieldoffsetget_DataTypevaluesStructLayoutAttributeLayoutKindmuseQuotedIdentifierheaderInfoget_IndexobjectTextddlText$$method0x60002f9-1$$method0x60002fa-1$$method0x60002fb-1sereventSetBaseOrNotAndmaskoptionsCompareevtdesc$$method0x600031a-1$$method0x600031d-1System.Data.SqlSqlDataSourceEnumeratorget_InstanceDbDataSourceEnumeratorGetDataSourcesFilterNodeFunctionget_FunctionTypeEnvironmentget_MachineNamemajorminorbuildrevisionXmlNodeListget_ChildNodesAttributeUsageAttributeAttributeTargetscontextenumTypeMemberInfoGetMembersGetCustomAttributesenumMemberNamedestinationTypefileNameobjTypesuppListpropListobjCodeobjNamesectionproductNamerowInformationkeyarg0arg1Moduleget_Moduleget_AssemblyeventValueeventLefteventRighteventSetanEventeventsstoragePhysicalPartition.xmlMicrosoft.SqlServer.Management.Smo.SqlEnum.StringSqlEnumerator.resourcesDatabase.xmlFileGroup.xmlFile.xmlLogFile.xmlAudit.xmlServerAuditSpecification.xmlServerAuditSpecificationDetail.xmlDatabaseAuditSpecification.xmlDatabaseAuditSpecificationDetail.xmlServerRole.xmlLogin.xmlDatabaseMappings.xmlUser.xmlDatabaseRole.xmlApplicationRole.xmlFixedDrive.xmlRemoteDrive.xmlRemovableDrive.xmlCdromDrive.xmlDrive.xmlDiskFile.xmlLanguage.xmlLinkedServer.xmltable.xmlView.xmlStoredProcedure.xmlLinkedServerLogin.xmlLinkedServerCatalog.xmlLinkedServerTable.xmlLinkedServerView.xmlMember.xmlJobServer.xmlIndex.xmlIndexedColumn.xmlJobStep.xmlJobStepOutputLog.xmlagent_jobschedule.xmlSchedule.xmlSharedSchedule.xmlPrimaryFile.xmlOLEDBProvider.xmlOLEDBProvProp.xmlPrimaryChildren.xmlCheck.xmlTrigger.xmlUDF.xmlColumn.xmlOrderColumn.xmlJob.xmlAditionalParameters.xmlDatabaseRoleMember.xmlNTGroup.xmlNTLogin.xmlRule.xmlRuleColumn.xmlRuleDataType.xmlConfiguration.xmlAffinityInfo.xmlDefault.xmlUddt.xmlUserDefinedTableType.xmlForeignKey.xmlUDFParams.xmlBoundColumn.xmlConnection.xmlsdt.xmlBackupDevice.xmlXStoredProcedure.xmlDefaultColumn.xmlDefaultDataType.xmlinc_sql_module_JustText.xmlinc_sql_module.xmlinc_urn_schema.xmlinc_urn.xmlinc_server.xmlinc_ruledef80.xmlinc_objprop_table_view.xmlDefaultConstrain.xmlText.xmlStatistic.xmlCollation.xmlDatabaseLocks.xmlErrorLog.xmlErrorLogText.xmlProcess.xmlLock.xmlTapeDevice.xmlinc_text.xmlinc_DbFile.xmlbackupset.xmlrestorehistory.xmlrestorefile.xmlrestorefilegroup.xmlbackupfile.xmlbackupmediafamily.xmlbackupmediaset.xmlagent_alert.xmlagent_operator.xmlagent_targetserver.xmlagent_alertsystem.xmlagent_targetservergroup.xmlagent_targetservermember.xmlinc_fulltext.xmlagent_jobalert.xmlagent_jobhistory.xmlagent_jobtargetservers.xmlagent_ErrorLog.xmlagent_ErrorLogText.xmlAvailableMedia.xmlStatisticColumn.xmlUserOption.xmlInformation.xmlSettings.xmlFKColumn.xmlComputedText.xmlinc_object.xmlinc_system_object.xmlinc_system_table_view_sp_udf.xmlinc_constraint.xmlPartitionSchemeParameter.xmlPartitionFunction.xmlPartitionFunctionParameter.xmlPartitionFunctionRangeValue.xmlPartitionScheme.xmlPartitionSchemeFileGroup.xmlinc_storage.xmlinc_type.xmlExtendedProperty.xmlinc_shilohExtendedProperty.xmlLevel0ExtendedProperty.xmlLevel1ExtendedProperty.xmlLevel2ExtendedProperty.xmlLevel2IndexExtendedProperty.xmlinc_level2SupportProperties.xmlDbExtendedProperty.xmlinc_type_reference.xmlinc_column_reference.xmlsql_module_link.xmlmixed_module_link.xmlrestore_plan.xmlAlertNotification.xmlOperatorNotification.xmlOperatorJobNotification.xmlSqlAssembly.xmlSqlAssemblyFile.xmlUserDefinedType.xmlUserDefinedAggregate.xmlUserDefinedAggregateParameter.xmlFullTextService.xmlFullTextCatalog.xmlFullTextStopList.xmlSchema.xmlFullTextIndex.xmlFullTextIndexColumn.xmlKatmaiDependency.sqlCloudDependency.sqlYukonDependency.sqlShilohDependency.sqlYukonuserownedobject.xmlYukonuserownedobjectSchema.xmlFullTextLanguage.xmlPerfInfo.xmlAgentPerfInfo.xmlServerActiveDirectory.xmlDatabaseActiveDirectory.xmlColumnPerm.xmldbfixedroleperm.xmlDBPerm.xmlinc_perm.xmlShilohYukonPerm.xmlSrvYukonObjectPerm.xmlSrvYukonPerm.xmlTablePerm.xmlYukonObjectPerm.xmlYukonSchemaObjectPerm.xmlDBObjectPerm.xmlSrvObjectPerm.xmlsysmessage.xmlusermessage.xmlsynonym.xmlinc_IndexFrag.xmlIndexFragFast.xmlIndexFragSampled.xmlIndexFragDetail.xmlinc_urn_message.xmlDatabaseOptions.xmlSPParams.xmlinc_urn_soapmethod.xmlMaintenancePlan.xmlMaintenanceSubPlan.xmlMaintSubPlanLog.xmlMaintSubPlanLogDetail.xmlMaintenancePlanDeprecated.xmlRemoteMaintenancePlan.xmlRemoteSubPlan.xmlRemotePlanLog.xmlRemotePlanLogDetail.xmlLogMarkHistory.xmlProxyAccount.xmlAgentSubsystems.xmlProxyAccountPrincipals.xmlcertificate.xmlOLEDBProviderSetting.xmlfulltext_ErrorLog.xmlfulltext_ErrorLogText.xmlDatabaseMirroringWitnessRole.xmlXmlSchemaCollection.xmlXmlNamespace.xmlXmlType.xmlinc_urn_collate_default.xmlCredential.xmlCryptographicProvider.xmlPlanGuide.xmlMailProfile.xmlMailAccount.xmlConfigurationValue.xmlMail.xmlinc_named_object.xmlDatabaseDdlTrigger.xmlServerDdlTrigger.xmlinc_server_sql_module_link.xmlDatabaseDdlTriggerEvent.xmlinc_ddl_trigger_event.xmlServerDdlTriggerEvent.xmlMailProfileAccounts.xmlMailProfilePrincipals.xmlMailServer.xmlendpoint.xmlsoap_endpoint.xmlinc_urn_single.xmldatabase_mirroring_endpoint.xmlservice_broker_endpoint.xmlvia_endpoint.xmlhttp_endpoint.xmltcp_endpoint.xmlsoap_endpoint_method.xmlsymmetrickey.xmlasymmetrickey.xmltemp_table.xmlparameter.xmludfcolumn.xmlNumberedStoredProcedure.xmlNumberedSPParams.xmlFullTextFile.xmlKeyEncryption.xmlagent_alert_categories.xmlagent_job_categories.xmltransaction.xmlagent_operator_categories.xmlServerProxyAccount.xmlServiceMasterKey.xmlDatabaseMasterKey.xmlMasterKeyEncryption.xmlDatabaseDiagram.xmlMail_ErrorLog.xmlinc_policy_health_state.xmlResourceGovernor.xmlResourcePool.xmlWorkloadGroup.xmlDatabaseEncryptionKey.xmlServer.xml#empty_resultiselect * from #empty_result
DROP TABLE #empty_resultParentSelectNType
N'{0}'	Name{}db_name()[{}].=System.String<d  />db_namexmlassemly	last+'/'+
()or,
and,	 ASC DESC[{0}]{1} AS [{0}]SELECT
distinct 
FROM

WHERE

ORDER BY
if 
begin

return
end

create table )
[{0}] {1} NULL'[{0}] {1}({2}) NULL*drop table qdeclare @Path nvarchar(255)
declare @Name nvarchar(255)
	PathFullName-select @Path = N'{0}'
-select @Name = N'{0}'
min_majorcloud_min_majorcloud_max_majorcloud_min_minorcloud_max_minorcloud_min_buildcloud_max_buildmax_majormin_minormax_minormin_buildmax_buildversionEnumObjectunionsettingspropertiespropertyinclude	filealiasfor#ro_after_creation	nameread_only
access	readUrnIDCreateDate
Schemareport_typeGMicrosoft.SqlServer.Management.Smo.report_type2	typeexpensive1read_only_after_creationkey_index	mode
DESIGN
DEPLOY	cast
hiddenusagerequest
filterordernotusagetable	link	sizelink_multiplemain_table!aditional_filterdistinctparent_linkfail_condition+request_parent_selectproperty_link
prefixpostfixpost_process!orderby_redirectspecial_queryfieldlocal
parentnoexpressionlink_fieldcomputeddefault_value
fields	join9expression_is_for_table_nameleft_joinclass_name!triggered_fieldsredirect_fields!redirect_orderbydatabasequerynvarcharvarcharsysnamenchar	charntext	textint
bigintbit	long	realfloatdatetimedatetime2	datedatetimeoffset	timetimespantinyintsmallint!uniqueidentifiernumericdecimal
binaryimagevarbinarysql_variantSystem.Int32System.Int64System.BooleanSystem.DoubleSystem.DateTime+System.DateTimeOffsetSystem.TimeSpanSystem.ByteSystem.Int16System.GuidSystem.DecimalSystem.Byte[]System.ObjectN''

[]	 AS ) AND (!LEFT OUTER JOIN INNER JOIN  ON {0}{0}({1})!CAST({0} AS {1}) AND {{{0}}}={{{1}}}	use [SchemaPrefix][#unify_temptbl insert into PrimaryFileudeclare @fileName nvarchar(255)
select @fileName = N'{0}'
PostProcess ,use [{0}]
System.DBNull/Text!ObjectIdentifier	Text1	ViewTextBodyBodyStartIndex-HasColumnSpecification#TableVariableNameq(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|("(("")|[^"])*")|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))O(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))delimeqcommavalparam7select c.definition,convert(bit,OBJECTPROPERTY(c.object_id,N'ExecIsQuotedIdentOn')) from [{0}].sys.sql_modules c where c.object_id = <msparam>{1}</msparam>}select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> and c.number = <msparam>{2}</msparam> order by c.colid1select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> order by c.colidPermission
ServerDatabaseRF	CRFNSLINDLUP	CRTB	CRDB	CRVW	CRPREX	BADB	CRDF	BALO	CRRUSServer[@Name='{0}']/Database[@Name='{1}']G/{0}[@Name='{1}' and @Schema='{2}']#/{0}[@Name='{1}']ASSEMBLY
SCHEMA	UDDTUDTXMLSCHCOLAFC D F PKP PCFNFSFTR SNSQTATRIFTFS U UQV X SqlAssembly'UserDefinedDataTypeUserDefinedType'XmlSchemaCollection)UserDefinedAggregateCheckTableDefaultForeignKeyIndexStoredProcedure'UserDefinedFunction	RuleSynonym5ServiceBroker/ServiceQueueTrigger/ExtendedStoredProcedureBaseSchemaBaseDatabaseBaseServerGUSE [{2}] DBCC SHOWCONTIG({0}, {1})3DBCC SHOWCONTIG({0}, {1})..:PagesExtentsExtentSwitchesScanDensity)LogicalFragmentation'ExtentFragmentation!AverageFreeBytes%AveragePageDensityOexec msdb.dbo.sp_help_job @job_id='{0}'3exec msdb.dbo.sp_help_job-CurrentRunRetryAttempt!CurrentRunStatusCurrentRunStepHasScheduleHasServerHasStepLastRunDateLastRunOutcomeNextRunDate#NextRunScheduleIDJobType+current_retry_attempt1current_execution_status-current_execution_stephas_schedulehas_targethas_steplast_run_datelast_run_time!last_run_outcomenext_run_datenext_run_time)next_run_schedule_id+DBCC SHOW_STATISTICS(, ') WITH STATS_STREAMStats_Streamselect convert(float,low/1024.) from master.dbo.spt_values where number = 1 and type = 'E'IsDbAccessAdmin9is_member(N'db_accessadmin')%IsDbBackupOperator?is_member(N'db_backupoperator')IsDbDatareader7is_member(N'db_datareader')IsDbDatawriter7is_member(N'db_datawriter')IsDbOwner-is_member(N'db_owner')#IsDbSecurityAdmin=is_member(N'db_securityadmin')IsDbDdlAdmin3is_member(N'db_ddladmin')%IsDbDenyDatareader?is_member(N'db_denydatareader')%IsDbDenyDatawriter?is_member(N'db_denydatawriter')DboLoginUserNameuser_name()SpaceAvailable	Size
DbSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in ( 0, 2, 4 ) )SpaceUsed%SUM(a.total_pages)LogSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in (1, 3))DataSpaceUsageIndexSpaceUsageSUM(CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END)IndexSpaceTotal#SUM(a.used_pages)IsMailHost(select count(1) from sys.services where name ='InternalMailService')DefaultSchema(select default_schema_name from sys.database_principals where name = user_name())Asys.allocation_units AS a INNER JOIN sys.partitions AS p ON (a.type = 2 AND p.partition_id = a.container_id) OR (a.type IN (1,3) AND p.hobt_id = a.container_id)!DefaultFileGroup(select top 1 ds.name from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FG' )3IsManagementDataWarehouse(select count(1) from sys.extended_properties where name = 'Microsoft_DataCollector_MDW_Version')5DefaultFileStreamFileGroup](select case when t1.c1 > 0 then t1.c2 else N'' end from (select top 1 count(*) c1, min(ds.name) c2 from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FD') t1)(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 = 0))(select sum(convert(float,reserved)) from dbo.sysindexes where indid in (0, 1, 255))(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 <> 0))=((select sum(convert(float,dpages)) from dbo.sysindexes where indid < 2) + (select isnull(sum(convert(float,used)), 0) from dbo.sysindexes where indid = 255))(select sum(convert(float,used)) from dbo.sysindexes where indid in (0, 1, 255))(select top 1 fg.groupname from dbo.sysfilegroups as fg where fg.status & 0x10 <> 0)3DatabaseOwnershipChainingscreate table #tmpdbchaining( name sysname , dbc sysname )insert into #tmpdbchaining exec dbo.sp_dboption N'{0}', 'db chaining'
	declare @DBChaining bit
set @DBChaining = null
select @DBChaining = case LOWER(dbc) when 'off' then 0 else 1 end from #tmpdbchaining@DBChaining3drop table #tmpdbchainingPrimaryFilePath9SELECT dtb.collation_name AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.compatibility_level AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', dtb.collation_name) AS bit) AS [CaseSensitive] FROM master.sys.databases AS dtb where name = db_name()SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.cmptlevel AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255))) AS bit) AS [CaseSensitive] FROM master.dbo.sysdatabases AS dtb where name = db_name()  CREATE TABLE #tempspace (value BIGINT) 

 IF (OBJECT_ID(N'msdb.sys.sp_getVolumeFreeSpace',  N'P')) is null 

 INSERT INTO #tempspace VALUES(-1) ELSE 

 INSERT INTO #tempspace EXEC msdb.sys.sp_getVolumeFreeSpace {0},{1} 

 SELECT TOP 1 value  as [freebytes] from #tempspace   as [freebytes] 

 DROP TABLE #tempspace 

freebytesMaximumFileSize'MaximumFileSizeUnitLoginOwnerUserType[Select name from sys.sql_logins where sid={0}
masterTable/TriggerPartitionScheme#PartitionFunction)UserDefinedTableType!UnresolvedEntityDdlTriggerPlanGuide
MASTER!CREATE TABLE #tempdep (objid int NOT NULL, objname sysname NOT NULL, objschema sysname NULL, objdb sysname NOT NULL, objtype smallint NOT NULL)
CREATE TABLE #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
#BEGIN TRANSACTION
Column#DefaultConstraint	null+INSERT INTO #tempdep WINSERT INTO #tempdep(objid,objtype) VALUES(%COMMIT TRANSACTION'CloudDependency.sql)ShilohDependency.sql'YukonDependency.sql)KatmaiDependency.sqldeclare @find_referencing_objects int
set @find_referencing_objects = {0}
USE [master]oSELECT collation_name FROM sys.databases where name={0}SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [collation_name] FROM master.dbo.sysdatabases AS dtb WHERE(dtb.name={0})	_CS_schema_boundrelative_idobject_idobject_typerelative_typerelative_svrobject_svrrelative_dbobject_dbrelative_schemaobject_schemarelative_nameobject_name .mServer[@Name='{0}']/Database[@Name='{1}']/{2}[@ID={3}]SServer/Database[@Name='{0}']/{1}[@ID={2}]UServer[@Name='{0}']/Database[@Name='{1}']/;Server/Database[@Name='{0}']/o{0}[@Name='{1}' and @Schema='{2}']/Trigger[@Name='{3}']!{0}[@Name='{1}']E{0}[@Name='{1}' and @Schema='{2}'])Server[@Name='{0}']/Server/-Database[@Name='{0}']/pschemapnameptypeCIAIKSWSBIN	BIN2DECLARE @db_name              sysname ,@restore_to_datetime  datetime 
DatabaseNameBackupStartDate3select @db_name = N'{0}'
Qselect @restore_to_datetime = GETDATE()
Kselect @restore_to_datetime = N'{0}'
wMicrosoft.SqlServer.Management.Smo.Internal.SqlSecureStringqMicrosoft.SqlServer.Management.Common.DatabaseEngineTypeParse(--[^
]*)(//[^
]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)U(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|	\*/)!('(('')|[^'])*)'=(?<quoted_word>"(("")|[^"])*")G(?<braket_word>\[((\]\])|[^\]])*\])(?<dot>\.)M(?<parant_open>\()|(?<parant_close>\))Q(?:(?<param>@[\w_@#][\w\d_$$@#]*)((\s)|()|())*(AS){0,1}))(?<exec>\bEXECUTE\b)/(?<returns>\bRETURNS\b)K(?<returns_table>\bRETURNS\s+TABLE\b)+(?<return>\bRETURN\b))(?<delim1>\bAS\b\s*))(?<delim2>\bBEGIN\b)([ \t]+)+(?<word>[a-zA-Z0-9]+)(?<eol>\n)(?<slcomm>--)(?<reject>.)|i|(?<word>[\w_@#][\w\d_$$@#]*)|(?<number_proc>;[\d]+)	wordbraket_wordquoted_wordnumber_procdot
createalterTRIGGERONparant_closeparant_open
delim1
delim2	execreturnsreturns_table
return
optioncheck	with
reject
slcommeolAL	ALAK	ALAR	ALAS	ALCF	ALDA	ALDS	ALED	ALFT	ALMT	ALRL	ALRT	ALSB	ALSC	ALSK	ALSM	ALSV	ALTG	ALUS	AUTHCLCO	CORPCP	CRAG	CRAK	CRAS	CRCF	CRED	CRFT	CRMT	CRQU	CRRL	CRRT	CRSB	CRSC	CRSK	CRSM	CRSN	CRSV	CRTY	CRXS	SPLN	SUQNTOVW	VWDSIMRC	VWCT	ADBO	ALAA	ALCD	ALCO	ALDB	ALES	ALHE	ALLG	ALLS	ALRS	ALSS	ALST	ALTR	COSQ	CRDE	CRHE	CRTE	SHDN	VWAD	VWDB	VWSSXAXU
UNION

/Event)EventTypeDescriptionADD_ROLE_MEMBERADD_SIGNATURE7ADD_SIGNATURE_SCHEMA_OBJECT-ALTER_APPLICATION_ROLEALTER_ASSEMBLY)ALTER_ASYMMETRIC_KEY9ALTER_AUTHORIZATION_DATABASE+ALTER_BROKER_PRIORITY#ALTER_CERTIFICATEEALTER_DATABASE_AUDIT_SPECIFICATION;ALTER_DATABASE_ENCRYPTION_KEY/ALTER_EXTENDED_PROPERTY-ALTER_FULLTEXT_CATALOG)ALTER_FULLTEXT_INDEX/ALTER_FULLTEXT_STOPLISTALTER_FUNCTIONALTER_INDEX!ALTER_MASTER_KEY%ALTER_MESSAGE_TYPE1ALTER_PARTITION_FUNCTION-ALTER_PARTITION_SCHEME!ALTER_PLAN_GUIDEALTER_PROCEDUREALTER_QUEUE9ALTER_REMOTE_SERVICE_BINDINGALTER_ROLEALTER_ROUTEALTER_SCHEMAALTER_SERVICE'ALTER_SYMMETRIC_KEYALTER_TABLEALTER_TRIGGERALTER_USERALTER_VIEW7ALTER_XML_SCHEMA_COLLECTIONBIND_DEFAULTBIND_RULE/CREATE_APPLICATION_ROLECREATE_ASSEMBLY+CREATE_ASYMMETRIC_KEY-CREATE_BROKER_PRIORITY%CREATE_CERTIFICATECREATE_CONTRACTGCREATE_DATABASE_AUDIT_SPECIFICATION=CREATE_DATABASE_ENCRYPTION_KEYCREATE_DEFAULT3CREATE_EVENT_NOTIFICATION1CREATE_EXTENDED_PROPERTY/CREATE_FULLTEXT_CATALOG+CREATE_FULLTEXT_INDEX1CREATE_FULLTEXT_STOPLISTCREATE_FUNCTIONCREATE_INDEX#CREATE_MASTER_KEY'CREATE_MESSAGE_TYPE3CREATE_PARTITION_FUNCTION/CREATE_PARTITION_SCHEME#CREATE_PLAN_GUIDE!CREATE_PROCEDURECREATE_QUEUE;CREATE_REMOTE_SERVICE_BINDINGCREATE_ROLECREATE_ROUTECREATE_RULECREATE_SCHEMACREATE_SERVICE)CREATE_SPATIAL_INDEX#CREATE_STATISTICS)CREATE_SYMMETRIC_KEYCREATE_SYNONYMCREATE_TABLECREATE_TRIGGERCREATE_TYPECREATE_USERCREATE_VIEW!CREATE_XML_INDEX9CREATE_XML_SCHEMA_COLLECTIONDENY_DATABASE+DROP_APPLICATION_ROLEDROP_ASSEMBLY'DROP_ASYMMETRIC_KEY)DROP_BROKER_PRIORITY!DROP_CERTIFICATEDROP_CONTRACTCDROP_DATABASE_AUDIT_SPECIFICATION9DROP_DATABASE_ENCRYPTION_KEYDROP_DEFAULT/DROP_EVENT_NOTIFICATION-DROP_EXTENDED_PROPERTY+DROP_FULLTEXT_CATALOG'DROP_FULLTEXT_INDEX-DROP_FULLTEXT_STOPLISTDROP_FUNCTIONDROP_INDEXDROP_MASTER_KEY#DROP_MESSAGE_TYPE/DROP_PARTITION_FUNCTION+DROP_PARTITION_SCHEMEDROP_PLAN_GUIDEDROP_PROCEDUREDROP_QUEUE7DROP_REMOTE_SERVICE_BINDINGDROP_ROLE!DROP_ROLE_MEMBERDROP_ROUTEDROP_RULEDROP_SCHEMADROP_SERVICEDROP_SIGNATURE9DROP_SIGNATURE_SCHEMA_OBJECTDROP_STATISTICS%DROP_SYMMETRIC_KEYDROP_SYNONYMDROP_TABLEDROP_TRIGGERDROP_TYPEDROP_USERDROP_VIEW5DROP_XML_SCHEMA_COLLECTIONGRANT_DATABASE
RENAMEREVOKE_DATABASEUNBIND_DEFAULTUNBIND_RULE#UPDATE_STATISTICS-ADD_SERVER_ROLE_MEMBER5ALTER_AUTHORIZATION_SERVER!ALTER_CREDENTIAL9ALTER_CRYPTOGRAPHIC_PROVIDERALTER_DATABASEALTER_ENDPOINT'ALTER_EVENT_SESSIONALTER_INSTANCE'ALTER_LINKED_SERVERALTER_LOGINALTER_MESSAGE'ALTER_REMOTE_SERVER=ALTER_RESOURCE_GOVERNOR_CONFIG'ALTER_RESOURCE_POOL%ALTER_SERVER_AUDITAALTER_SERVER_AUDIT_SPECIFICATION1ALTER_SERVICE_MASTER_KEY)ALTER_WORKLOAD_GROUP#CREATE_CREDENTIAL;CREATE_CRYPTOGRAPHIC_PROVIDERCREATE_DATABASECREATE_ENDPOINT)CREATE_EVENT_SESSION3CREATE_EXTENDED_PROCEDURE)CREATE_LINKED_SERVER5CREATE_LINKED_SERVER_LOGINCREATE_LOGINCREATE_MESSAGE)CREATE_REMOTE_SERVER)CREATE_RESOURCE_POOL'CREATE_SERVER_AUDITCCREATE_SERVER_AUDIT_SPECIFICATION+CREATE_WORKLOAD_GROUPDENY_SERVERDROP_CREDENTIAL7DROP_CRYPTOGRAPHIC_PROVIDERDROP_DATABASEDROP_ENDPOINT%DROP_EVENT_SESSION/DROP_EXTENDED_PROCEDURE%DROP_LINKED_SERVER1DROP_LINKED_SERVER_LOGINDROP_LOGINDROP_MESSAGE%DROP_REMOTE_SERVER%DROP_RESOURCE_POOL#DROP_SERVER_AUDIT?DROP_SERVER_AUDIT_SPECIFICATION/DROP_SERVER_ROLE_MEMBER'DROP_WORKLOAD_GROUPGRANT_SERVERLOGONREVOKE_SERVERInstanceIsClusteredVersionIsLocalInstanceNameMSSQLSERVERServerName\No%IncorectVersionTag7NullVersionOnLoadingCfgFile+EnumObjectTagNotFound+InvalidConnectionType%OnlyPathOrFullName7DatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevels1InvalidConfigurationFileNotDbObjectNotSingleDb-NoClassNamePostProcessSqlServer90NameSqlServer80Name)SmoSQLCLRUnAvailableExecuting-WaitingForWorkerThreadBetweenRetries	IdleSuspended-WaitingForStepToFinish5PerformingCompletionActionUnknown
rmFullrmBulkLoggedrmSimple
msNonemsSuspendedmsDisconnectedmsSynchronizing#msPendingFailovermsSynchronized'FailedToLoadResFile7UnsupportedTypeDepDiscovery9QueryNotSupportedPostProcess)FailedToLoadAssembly#FailedToCreateUrn'PropMustBeSpecified)InvalidUrnForDepends-CouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersion!InvalidSqlServerGDatabaseNameMustBeSpecifiedinTheUrnACouldNotGetInfoFromDependencyRow: Y׺4ByI4߳z\V4]̀̑Y   Y    	]
a
]
a      a  ]	]	e           	       	 i
 i	 i
 i  a Y  YYmm((lqu       q l l   y  |}  |    9 <u = ==   	   u	 ((((q(l((((( 
 
        u   
    |(u(      
   u((,	
 $(c,048@<DRGW@dDH	LPTX\`dhlptx<AFPZ| >
e,-i $(,048<@?DH
LPTX\`dhlptx|!"#$%&'()*     
 (((  $ ($(   ( ( (   } 8(((}(8 ( P , D L T X \ `(((P(,(D(L(T(X(\(` 0(0 4(4 @(@< <(<
 =	    8 ( h  h 1(h1 1(x D   $	lD	l 	l$    H	lL	lT	lP ( 0 9
     	 ( <	 X lX9 q   ( ( ( ( ((9 ( ((--[^
]*)(//[^
]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/),(N{0,1}'(('')|[^'])*)' ("(("")|[^"])*")*(\[((\]\])|[^\]])*\]) ([\w_][\w;\d_]*)((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1})(0x[0-9a-f]+)B(?<val>(((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))h(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))(?<comma>,)(\([\d, ]*\))(?<eq>=)<(?<delim>\b((AS)|(RETURNS))\b)Z(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})p(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|("(("")|[^"])*")|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))N(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\)) 	     (	 ( (
 
 ((
 ( ( 
( 
   	  q	    	 	   y y yq , 0, ,   uq      	 

	 

 E   
     
 ((8(?<word>[\w_@#][\w\d_$$@#]*),(?<number_proc>;[\d]+)84	4@=+,-./0123456789:;DH@DH    X X  X X(  		 	 
 	 
a  
aaaa$IncorectVersionTag6NullVersionOnLoadingCfgFile*EnumObjectTagNotFound*InvalidConnectionType$OnlyPathOrFullName6DatabaseNameMustBeSpecified&FailedToLoadResFile6UnsupportedTypeDepDiscovery8QueryNotSupportedPostProcess(FailedToLoadAssembly"FailedToCreateUrnUnknownOperator&PropMustBeSpecified(InvalidUrnForDependsTooManyDbLevels,CouldNotInstantiateObjNotDerivedFromUnknownType0InvalidConfigurationFileMissingSectionNotDbObjectNotSingleDb,NoClassNamePostProcessInvalidVersion InvalidSqlServerFDatabaseNameMustBeSpecifiedinTheUrn@CouldNotGetInfoFromDependencyRowSqlServer90NameSqlServer80Name(SmoSQLCLRUnAvailableExecuting,WaitingForWorkerThreadBetweenRetriesIdleSuspended,WaitingForStepToFinish4PerformingCompletionActionUnknownrmFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizing"msPendingFailovermsSynchronizedaBCEHIJKLMNOQSTUVXY[\]^_`abfghjklmnopqrstuvwxyz{|}~  (      (     5 a$$RSA1''6n_1:fl/y2}/R4H<=\]Ǽ(k,Q\$+Au2IRmRo{l؂O1
ˢ#V{-Pb왹J|};(	Item  ]a	
]a a ]]e        i	 i i	 iY a  Ymm  y 5}	1  }|||1
hh|111          |1     
    a 	1 5}
hh5|115 |1  =9	9 
 
  } 5<$(P,DLTXh\` |1 e|tt= 	    =9   
|1 
1|1 u   
	|1
|1     
  	
  u !   u ( ()-)>9Microsoft.SqlServer.Management.Smo.RecoveryModelConverter
rmSimplermBulkLoggedrmFull@;Microsoft.SqlServer.Management.Smo.MirroringStatusConvertermsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedC>Microsoft.SqlServer.Management.Smo.JobExecutionStatusConverter	ExecutingWaitingForWorkerThreadBetweenRetries	Idle	SuspendedWaitingForStepToFinishPerformingCompletionAction 							 E	 e ]}aa    e	i	 mqa 	h1
h1
  808	 1
y 
y
@1 
1	1	 y
9     1		  y
y
y		   ]	u1
e
e 
	

	1			

	


 1 yy 8
yy   011
1
19	y!y4q|1  |1 e mq 
  



  
	4	
111 	=95	  &51    1 %&T	InheritedT
AllowMultiple ) )t))Q) a - 
1N
,10.50.2500.0.)10.50.2500.0 ((KJ_PCU_Main).110617-0026 )MHMicrosoft SQL Server is a registered trademark of Microsoft Corporation.)$Microsoft Corp. All rights reserved.Microsoft SQL ServerMicrosoft Corporation
en-US_YDBMirroringTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTSMOCLRTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTBckDevTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoWMIEnumTest_ServiceAdvancedProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_WMIEnumTest_Service, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8pjWMIEnumTest_SCProtocolProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8hbWMIEnumTest_SCProtocol, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdWMIEnumTest_SCNetLibInfo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^WMIEnumTest_SAlias, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZWMIEnumTest_MC, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XOLAPEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSTestAll, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8XRPerfTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WSQLEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.ResourceGovernorUITasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736AD6E5F9586BAC2D531EABC3ACC666C2F8EC879FA94F8F7B0327D2FF2ED523448F83C3D5C5DD2DFC7BC99C5286B2C125117BF5CBE242B9D41750732B2BDFFE649C6EFB8E5526D526FDD130095ECDB7BF210809C6CDAD8824FAA9AC0310AC3CBA2AA0523567B2DFA7FE250B30FACBD62D4EC99B94AC47C7D3B28F1F6E4C8Microsoft.VisualStudio.Data.Providers.SqlEverywhere, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293]Wenumbvt4vsd, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]Wenumbvt4sql, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.TestLauncher, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Express.ObjectExplorerReplication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.Express.ConflictViewer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8zMicrosoft.SqlServer.Express.ReplConflictViewer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.NewSubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Express.Replication.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.Express.ReplicationDialog, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.Express.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Express.Rmo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.Express.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Express.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Express.RegSvrEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.Reports, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Express.SqlToolsVsNativeHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.Express.VSIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.Express.LanguagePackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{Microsoft.SqlServer.Express.SqlWorkbenchProject, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.AppIDPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.Express.ObjectExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Express.SqlEditors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.Express.ConnectionDlg, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.SqlManagerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.SqlMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.Express.ActivityMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.SqlScriptPublishModel, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.SqlScriptingEngine, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Management.Reports, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.VisualStudio.TeamSystem.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293yMicrosoft.VisualStudio.TeamSystem.Data.Common, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293xrMicrosoft.CompactFramework.Design.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293zMicrosoft.SqlServer.NotificationServices.Rules, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.NotificationServicesEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]DisableDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[CreatePubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.DtsObjectExplorerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8lfMicrosoft.SqlServer.DTEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.DataTransformationServices.Design, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.DataTransformationServices.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.DatatransformationServices.DTSExecUI.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferStoredProceduresTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferStoredProceduresTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.TransferObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.TransferLoginsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferLoginsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferJobsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.TransferJobsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{Microsoft.SqlServer.TransferErrorMessagesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.TransferErrorMessagesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.TransferDatabasesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferDatabasesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.UI.RSUserInterface, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTPROFILER, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8VPXMQE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WXMDocuments, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8b\ObjectExplorerXM, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgUpgradeMaintenancePlanUTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLManager, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ObjectExplorerCore, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ActivityMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[LanguagePackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_SqlWorkbenchProject, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XAppIDPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.SqlTools.VSIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8keObjectExplorerReplication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnObjectExplorerNotificationServices, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZObjectExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^DatabaseMailWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YMSXTSXDialogs, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UManageSSB, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ManageLinkedServer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ManageEndpoints, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icDBMaintenanceProperties, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdDBMaintenancePlanHistory, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.MaintenancePlanWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.MaintenancePlanTasksUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.MaintenancePlanTasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferSqlServerObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferSqlServerObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^CopyDatabaseWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XSqlManagerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YSQLEditors.VS, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLEditors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTDTAShell, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8UODTA, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UDTAClient, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlToolsVSNativeHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YConnectionDlg, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlWorkbench.Interfaces, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSSqlMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\Vsqllogship, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Replication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XNewSubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8gaReplication.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WDBMirroring, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_ConfigureDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ReplicationMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]ReplicationDialog, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8nhMicrosoft.SqlServer.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.VisualStudio.vspManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServerCe.Express.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnMicrosoft.SqlServerCe.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.VisualStudio.vspEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServerCe.Express.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8rlMicrosoft.SqlServerCe.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.VisualStudio.vspServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspWmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspSqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8oiMicrosoft.VisualStudio.vspSmo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.VisualStudio.vspSmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.SmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.VisualStudio.vspSqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.SqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8TWrapNonExceptionThrows.System.Data.SqlClient.SqlClientPermissionAttribute, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089TUnrestricted8M8X=X-RSDSs^.I.ѰxNMicrosoft.SqlServer.SqlEnum.pdb=> >_CorDllMainmscoree.dll% .0HX@4VS_VERSION_INFO2
	2
	?DVarFileInfo$TranslationStringFileInfo000004b0LCompanyNameMicrosoft Corporation,FileDescription t*FileVersion10.50.2500.0 ((KJ_PCU_Main).110617-0026 )` InternalNameMicrosoft.SqlServer.SqlEnum.dllp%LegalCopyrightMicrosoft Corp. All rights reserved.ILegalTrademarksMicrosoft SQL Server is a registered trademark of Microsoft Corporation.h OriginalFilenameMicrosoft.SqlServer.SqlEnum.dllLProductNameMicrosoft SQL Server@
ProductVersion10.50.2500.0<	Assembly Version10.0.0.00 >`0S	*H
D0@10	+0h
+7Z0X03
+70% <<<Obsolete>>>0!0	+o
hU@%26Cf@b10`0L
.P\0	+0p1+0)U"Copyright (c) 1997 Microsoft Corp.10UMicrosoft Corporation1!0UMicrosoft Root Authority0
070822223102Z
120825070000Z0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA0"0
	*H
0
y}]E941%5IwEqFԌkLRbMIl/$>e#HuEP%+
#A$bEJͳ/"J-|o;99ݽ)f;-2'Hlc\򸔣8P'N0==l9.4.
}bxfs
 Oc,2EJ;PSfQyV>Pn5{$Rf=N+~3nGўJnS00U%0
+0U0[pir#Q~Mˡr0p1+0)U"Copyright (c) 1997 Microsoft Corp.10UMicrosoft Corporation1!0UMicrosoft Root Authority<<>c@0U00Uvp[NQD.Dc0U0	+{~J&μNtX't*uLxMi|CʇSŸVocDDȚ
)}s9=j8m҈#i	4|.)Bk(q8
]hͽAkf4|zB{
p֒O8|-=4b7j#\cZ9`U3;_,˫ 0 
*RA^0(ip΀Brv0z0b
a0
	*H
0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA0
110221205312Z
120521205312Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR10UMicrosoft Corporation0"0
	*H
0
qtۜ/cpG*ZM;!}|?v%:ܠO rCql%]7.ū`q'3֓U˃caFc7<WH SXʶFl
:Φݪp[?٤n:J,Av	lg 1>k@p00羌/Ԇ?Zh|JnYC HELb΢%б${|\Ng00U%0
+0Urb_ݣt_A[C&0U0U#0vp[NQD.Dc0DU=0;09753http://crl.microsoft.com/pki/crl/products/CSPCA.crl0H+<0:08+0,http://www.microsoft.com/pki/certs/CSPCA.crt0
	*H
``'|0IGA7<^u6H,X|m0!cAFׯ(K6}@T`bi_Ň|Y}ۈwx$dNQD(,T(r=,'oѥab:N/g}cC?;zx@x· `R\vxcukFYR{,~01KZx~`
1r>g889s;4߃Ҝd_.2%vi%Ս5#%D00jO%EXzg0
	*H
0p1+0)U"Copyright (c) 1997 Microsoft Corp.10UMicrosoft Corporation1!0UMicrosoft Root Authority0
060916010447Z
190915070000Z0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Timestamping PCA0"0
	*H
0
7nBJqH>S,2ORȃ>3I1(dPKuǨծipfx'f趷Y")/@VvmdmJT޿ǀL7VhGv\/}%V[jc|<%M9wt]\؆7,u9	|vlnz>q_*Ob`2҃N+"\hE/Pl%ׅvs6ƕz`3[AXn,HoCj&k(0$0U%0
+0U0[pir#Q~Mˡr0p1+0)U"Copyright (c) 1997 Microsoft Corp.10UMicrosoft Corporation1!0UMicrosoft Root Authority<<>c@0	+70UoN?4K;AC0	+7
SubCA0U0U00
	*H
M1|PapEsT?	-QS9Vތ;ɷQ!oi~k"Flm|"Fӄ6~p]Eݎ*|ɮ2Շc6!v;s!شTeJ(&`;exHϭ:ObX099!dcC/{FeJtn̝(a|H!8Ŗ2@S=f7"̰wTQ:rD#00
a-	0
	*H
0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Timestamping PCA0
080725190217Z
130725191217Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher DSE ESN:7A82-688A-9F921%0#UMicrosoft Time-Stamp Service0"0
	*H
0

 BQzٕ܇7(vMPv*GVi~MquۻCloq+|Δź~a-0&-v?F؉7[hd֋=vP'`]),<ϥZ5O8a?=6Vw;]7'c,HUl+~w$*p*$Ţ"KLYwTrC>dݓXI	63~Ly2Y)<?F;00U(;ڔ}F~0U#0oN?4K;AC0DU=0;09753http://crl.microsoft.com/pki/crl/products/tspca.crl0H+<0:08+0,http://www.microsoft.com/pki/certs/tspca.crt0U%0
+0U0
	*H
҈f)Z~\$Ykׇ˵v"ʴA7H7p3(t(u*	Oߘ?4ܺdNP;L%ՖKA]W}vzo _0$~a))I:CՃO,5;AAIB{-])ᾍv`'ocB(X:;@̒WFVk˒MV0@EN(Qw&	:E1000y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA
a0	+0	*H
	1
+70
+710
+70#	*H
	1rA950c42Hb%0X
+71J0H&$SQL Server 2008 R2http://www.microsoft.com/sql0
	*H
h+se)V`u+)8'ıInbh~҅Ytm^2Q<
Ƙc<FeoTXj}D꾺W+eRʸbbQ+<Y'cKzڽ<&2M˦3sr~$yq#ӆ_{z:ӎɆ>Џ3s|1yn<~UgZMY	JcMɕmY!	9Xf0	*H
	1000y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Timestamping PCA
a-	0+]0	*H
	1	*H
0	*H
	1
110617101446Z0#	*H
	1U(_/9KaQmD0
	*H
x_<T{4#dq-XO'¤yE9A%^A}Rp%16k0™b2/2'H֒a(=x!R.}	yK^Q)/|.AnR^yAq2*^2(/3	2oH<wZv7Jq?AMФIɎFVP0
Wd,:{sTK	~tL2FQ'čY

Anon7 - 2022
AnonSec Team